2.0 KiB
Raw Blame History

Contract: 银行文件传输配置合同

目标

定义本轮 feature 允许承接的文件传输配置结构,作为 backend 实施与文档回写的共同约束。

作用域模型

支持以下四级作用域:

  1. DEFAULT
  2. CHANNEL
  3. TENANT
  4. TENANT_CHANNEL

优先级从高到低为:

TENANT_CHANNEL > TENANT > CHANNEL > DEFAULT

支持协议

  • SFTP
  • FTP

说明:

  • 正式设计优先推荐 SFTP
  • FTP 仅作为兼容协议表达能力保留

连接字段最小集合

  • protocol
  • host
  • port
  • username
  • credentialRef
  • passiveModeFTP 可选)
  • enabled

说明:

  • 仓库工件与正式文档不得写入明文密码、密钥、证书
  • 真实凭据通过环境配置或配置中心引用承接
  • 命中协议下要求 host/port/username/credentialRef 齐备,否则立即阻断当前文件动作

目录字段最小集合

  • sendDir
  • backDir
  • reconcileDir
  • archiveDir
  • localTempDir

业务类型约束

  • businessType

说明:

  • 本轮统一使用 WITHHOLDING
  • 合同保留该字段,便于后续托收链路平移时复用同一解析器

固定变量白名单

仅允许以下变量:

  • {tenantId}
  • {companyId}
  • {channelCode}
  • {yyyyMMdd}
  • {yyyyMM}
  • {batchNo}
  • {fileName}

禁止:

  • 自由表达式
  • 任意脚本化拼装
  • 未声明变量

推荐 extParams 承接结构

{
  "scopeType": "CHANNEL",
  "tenantId": "optional",
  "businessType": "WITHHOLDING",
  "protocol": "SFTP",
  "host": "example-host",
  "port": 22,
  "username": "config-ref-user",
  "credentialRef": "bank.transfer.xxx",
  "sendDir": "/withholding/{companyId}",
  "backDir": "/withholding/{companyId}/back",
  "reconcileDir": "/withholding/{companyId}/reconcile",
  "archiveDir": "/withholding/{companyId}/archive",
  "localTempDir": "/data/tmp/withholding/{yyyyMMdd}",
  "enabled": true
}

说明:

  • 示例仅用于字段结构表达,不代表真实配置值
  • 真实 host、账户、凭据引用名应由运行环境承接