从 app.core.connectors 导入 Connector、ConnectorManifest、OperationRequest、
OperationResult 和 ConnectorRegistry。连接器声明唯一 connector_id、语义版本、固定
sdk_version=1.0、能力清单与 additionalProperties: false 的配置 Schema,实现八个统一方法,
然后调用 registry.register(connector)。不要修改 runtime 或采集 dispatcher。
配置由 JSON Schema Draft 2020-12 递归校验,包括嵌套对象、数组、上下界、组合规则和未知字段。
非 dry-run 机器运行不得出现调用方 config 字段,即使值为 {} 也拒绝。Oracle、SQL Server、REST
均须先由管理员创建版本化 source binding,再将 principal 绑定到同一 connector/version/source/
domain/environment;runtime 只使用服务端批准的完整配置,包括非 REST 的 credential reference。
配置只能保存连接信息与秘密引用。秘密字段必须命名为 *_ref,值使用 env:、vault: 或
secret: 引用;不得把 password、token、API key、Authorization 或私钥放入配置、manifest、
异常、日志或 evidence。
OperationResult 返回不可变 records、cursor、checkpoint 和安全 evidence。增量和恢复必须
使用已持久化的 cursor/checkpoint。大型 snapshot checkpoint 应保存有界 hash/count 摘要;若没有
足够信息精确重建 added/removed/changed,就明确 details_materialized=false,不得伪造明细。evidence 超过
32 KiB 时拒绝;records、cursor 和 checkpoint 也分别受 10,000 条/1 MiB、32 KiB、256 KiB
上界。所有通道在持久化前递归脱敏,列表只暴露 checkpoint/cursor 摘要。OperationResult.status 只能是 succeeded;不得返回 running、failed
或 cancelled 让 runtime 写入悬挂状态。dry-run 状态由 runtime 产生。受控 REST Catalog 是参考实现。生产 transport 必须使用首次验证的公共 IP 建立连接,同时保留
原始 host 用于 TLS SNI、证书 hostname 与 Host 校验;不得跟随重定向,也不得在 DNS 重解析后
更换目标。响应必须流式限长;秘密解析器只能将解析值送入 Authorization,不得写入配置或证据。
默认环境解析器仅接受 env:DATAOPS_CONNECTOR_*;vault: 和 secret: 必须在部署方显式注入
后端解析器,否则稳定失败关闭。
人工管理接口仅用于显式 dry-run;execute/resume 均不得调用真实 operation、secret resolver 或 I/O。
真实非 dry-run 采集必须使用 connector principal 的一次性
短期凭证,并同时匹配 connector/version/source/business-domain/environment、操作及资源 scope。
execute 与 resume 共用单个运行的五次总 attempt 上限;resume 失败必须落回 failed 并保留原
checkpoint,不能停留在 resumable。持久化适配器的状态更新必须返回显式 CAS ownership 结果;
每次 attempt 使用不可复用 lease token,只有 exact attempt + lease 的 acquired=true 调用方可提交
终态。竞争失败方必须返回冲突或 already-running,
不得把“读取到当前行”解释成已获得运行权,也不得追加重复 attempt。
取消是协作式协议:先持久化运行取消标志,再由连接器在 I/O 边界探测;最长响应时间受数据库驱动 query timeout 与 REST read timeout 限制。不要用 connector 实例的 source 级内存标志,否则会把 同一来源的其他运行误取消。REST 分页还必须拒绝重复/倒退 cursor,并设置页数和总记录数上界。
SQL Server 连接默认启用加密并验证服务器证书。可信 environment 必须从已认证 source binding 传给
连接管理器,禁止在 tls_options 中自报 development。staging/production 不允许
TrustServerCertificate=yes 或 Encrypt=no;development 例外必须显式声明,仅用于本地验证并留警告。