后续v0.4生命周期维护和版本行为见生命周期升级与验收及界面说明。
2026-10-22。本次把企业侧接入、私有资产编目、快照、加工与共享产品发布接成一条实际流程。平台存储仍仅用 PostgreSQL;读取企业外部数据库不受这个平台存储选型限制。
数据如何进入目录
企业侧白名单配置 → 门户登记配置引用 → 连接器发现资源 → 企业私有资产目录
→ 企业侧生成固定快照 → 可选加工及质量检查 → 数据集版本
→ 提供方核对来源/字段/范围 → 发布产品到空间目录 → 双方签约与受控聚合
企业私有目录按 party_id 隔离,不因同处一个逻辑空间而开放。平台接入/加工接口只接收元数据、质量报告、血缘和签名回执;原始记录及快照 CSV 留在企业连接器的数据根目录中。合约执行后的聚合结果仍走原有加密存储、提供方审核和授权交付流程。
新增产品必须通过 datasetVersionId 绑定质量通过的数据集版本,不能在门户或新建产品 API 中直接填写未经核验的 CSV 引用。已有 v0.1 白名单 CSV 产品继续执行;底层兼容创建函数仅供初始化/回归,不再由 HTTP 新建产品入口直接开放。
企业侧接入配置
先在提供方设备准备文件与只读数据库账号,把凭据放在该设备的进程环境或企业秘密管理系统中。门户仅填写连接器、类型及 connections 的键;平台不保存这些 DSN、密码或 API 认证头。
{
"root": "/srv/enterprise-data",
"files": {},
"connections": {
"erp_pg": {
"kind": "postgres",
"dsnEnv": "ERP_READONLY_DSN",
"readOnlyConfirmed": true,
"tables": ["business.orders"]
},
"erp_mysql": {
"kind": "mysql",
"dsnEnv": "MYSQL_READONLY_DSN",
"readOnlyConfirmed": true,
"tables": ["business.orders"]
},
"erp_mssql": {
"kind": "sqlserver",
"dsnEnv": "MSSQL_READONLY_DSN",
"readOnlyConfirmed": true,
"tables": ["dbo.orders"]
},
"suppliers_excel": {"kind": "excel", "path": "suppliers.xlsx"},
"orders_csv": {"kind": "csv", "path": "orders.csv"},
"dictionary_json": {"kind": "json", "path": "regions.json"},
"documents": {"kind": "file", "path": "specification.pdf"},
"logistics_api": {
"kind": "api",
"url": "https://api.example.com/orders",
"headersEnv": {"Authorization": "LOGISTICS_API_AUTH"},
"itemsPath": "data",
"pageParam": "page",
"sizeParam": "size",
"pageSize": 100,
"maxPages": 20
}
}
}
启动连接器时使用上述配置,命令形式与 v0.1 相同:
./bin/connector -key /secure/connector.key -id-file /secure/connector-id -sources /secure/sources.json -platform https://data.example.com
| 来源 | 当前行为与边界 |
|---|---|
| PostgreSQL | 白名单表/视图、原始数据库类型、固定快照;额外使用只读事务,视图中的写操作也会失败 |
| MySQL | 已实现驱动、标识符引用和只读事务路径;本次没有真实 MySQL 服务端联调 |
| SQL Server | 已实现官方驱动与白名单表/视图读取;必须实际配置只读账号,本次没有真实 SQL Server 服务端联调,也未自动证明账号权限 |
| CSV | UTF-8、逗号分隔、有表头;严格列数、字段唯一,拒绝无效编码和越界路径 |
| JSON | UTF-8 标量对象数组;不自动猜测嵌套对象/数组的业务展开方式 |
| Excel | .xlsx 工作表分别编目,空白表只编目不能生成数据集;公式不计算,读取发现公式时要求先导出固定值副本;不承诺旧 .xls 格式 |
| API | GET、固定地址、认证头环境引用、对象数组或 itemsPath;支持从第1页开始的页码分页,达到上限仍可能有数据时拒绝截断;不跟随重定向 |
| 其他文件 | 只编目,使用内容摘要识别资源版本;未实现 OCR、文档内容抽取或文件交付 |
非回环 API 必须 HTTPS。仅合成试点通过 allowLoopbackHTTP: true 明确允许回环 HTTP。当前文件通过企业侧目录放置/挂载提供,没有浏览器向企业连接器直传文件的入口。
数据库每次是单个受控 SELECT,平台不会接受任意 SQL。读取保留为标准文本,数据库原始类型另存 sourceType;这不是任意数据库类型的无损转换承诺。多个源的快照分别生成,没有跨库分布式事务或统一业务时点的承诺。
加工和质量
门户“企业资产 → 加工任务”选择1至2个质量通过的输入版本。关联必须位于同一企业连接器;右表关联键必须唯一且非空,当前支持 inner/left 关联。右表字段增加 right_ 前缀,可在后续步骤重命名。可以先执行前 N 个清洗步骤再关联,处理编号空白等常见问题。
可按顺序配置:去首尾空白、保留/删除字段、重命名、整数/有限数值/日期转换、等值筛选、去重、固定值遮盖及 SHA-256 替代标记。当前最多30步;不执行远程脚本、任意 SQL 或自定义插件代码。
质量门禁支持最少记录数、必填字段、组合唯一键;同时记录各字段空值数。质量失败保存为 quarantined,可以查验问题,不能继续加工或发布。类型转换失败等输入错误将任务置为失败,不生成可用版本。基线快照默认只要求至少1行,不能把基线通过解释为所有业务质量规则通过;门禁配置在质量报告/加工血缘中可查。
敏感候选识别基于字段名,不能替代企业人工分类或证明匿名化。删除字段或固定值遮盖后可生成受限输出;哈希仍保留敏感标记,重命名也不能清除标记。平台会按固定输入和加工规则重新核对输出字段结构及敏感标记,不能仅靠回执把标记改为不敏感。含候选敏感字段的版本阻止发布,产品分类继承输入分类。
每次输入快照和加工输出最多64 MiB、10万行、200字段。单个共享产品最多100字段,更多字段需先选择性加工。快照保存在企业根目录 .datanous/datasets/<SHA256>.csv,权限为0600,缓存目录0700。重新读取或计算时复查摘要,产品版本固定引用数据集版本和内容摘要,源文件或后续版本不会静默替换已签产品的输入。
任务可靠性和版本
发现、快照、加工均由企业连接器领取,使用30秒租约和8秒续租;同一对象同类活动任务去重。任务取消、租约过期和连接器撤销会拒绝后续回执。网络重试必须发送同一签名回执,不能重复生成版本;失败/不明任务不自动重新执行。
固定输入、规则、工作摘要、输出摘要与租约绑定在 Ed25519 回执中。数据库事务保存结果、版本和审计事件;原始行不在回执中。连接器签名仍是企业信任域中的提交证明,没有新增 TEE 或抵御宿主机管理员的证明。
v0.2 使用事务迁移2新增数据源/资产/版本/加工/任务表,并给产品增加可空数据集外键;保留既有用户、产品、合约及签名。部署前备份数据库与平台密钥,平台与连接器同步升级;不支持直接把数据库回滚给旧二进制后继续发布新型产品。
合成试点复现
在已初始化的本地合成试点、专用回环 PostgreSQL 中执行:
source .runtime/database.env
DATANOUS_ALLOW_DEMO=true ./bin/source-demo
DATANOUS_ALLOW_DEMO=true ./bin/source-demo -mode serve-api
另一个终端启动连接器:
source .runtime/demo/sources-v2.env
./bin/connector -key .runtime/demo/connector.key -id-file .runtime/demo/connector-id -sources .runtime/demo/sources-v2.json
再执行以下命令可登记6种合成源、发现并生成私有快照,不会发布产品:
DATANOUS_ALLOW_DEMO=true python3 scripts/demo-register-sources.py
初始化器生成独立随机 PostgreSQL schema 及只有 SELECT 权限、默认只读事务的账号;不改已有表、真实账号或客户数据库。秘密保存在 .runtime/demo/sources-v2-secrets.json 和 sources-v2.env(0600),不打印到终端。首次已初始化后重用这些文件,不重复覆盖。
登录企业提供方,在加工任务选择 ERP 订单及“供应商”工作表:先 trim supplier_id,再关联,按 order_id 去重,删除 phone/right_supplier_id,将 right_region 重命名为 region,要求至少6行、order_id/region 必填、order_id 唯一。得到6行4列合格版本后,提交发布申请,由另一位有权限的审核员在“企业治理 → 发布审核”填写意见后发布;使用方再按正常签约流程使用。
v0.3 发布职责
新数据集产品由数据管理员或企业管理员准备并提交,另一位审核员批准后才进入共享目录。创建人和申请人不能自审,普通状态API不能绕过此流程;退回后可重新申请。现有已发布产品保留兼容。人员、空间及模板操作见 企业治理界面说明.md。