1.0.0-rc.3 更新:工作台新增“我的工作台”角色任务首页和“原件交付”;业务菜单与管理入口分组。公开角色与五条多格式演示见 在线导览。原件包需独立审核、明确许可和短期领取,参见 受控原件包交付。下方既有截图用于对应操作,最新界面以在线演示为准。
1.0发行补充:客户离线包以《1.0交付说明》、顶层README和《企业连接器安装与运维》为准;候选schema61,所选模块使用显式组合。下文旧版本阶段步骤不构成客户自动升级指令。
适用版本:0.5.2-dev 本地候选源码,编写日期:2026-10-28。适用对象:企业管理员、业务人员、连接器运维。本文说明已实现的操作与边界;集中验收结论见末章,不以文档完成代替产品验收。
原运行实例与候选版本分开管理。 原 8090 服务没有因本手册而升级;本文中的候选端口、路径均为示例。操作前核对实际二进制、前端、数据库迁移版本及实例地址,不能把候选源码能力当作原实例已有功能。当前支持范围以支持矩阵与依赖清单为准。
培训入口: 新学员先阅读角色培训快速指南(图文版),或打开可离线转发的单文件HTML版。包含六种内置角色、运维岗位、实际界面截图、成功标准和55分钟课堂练习。本文保留完整配置与操作细节。
产品组合操作: 候选版本新增实例级产品组合。先用 datanous-package resolve/validate 核对依赖及服务声明,再由平台和连接器共同使用各自的 -product-config / -product-catalog 参数。声明检查不探测实际服务,也不授予用户角色。未指定组合时保留原兼容模式;指定后门户、平台API/后台与连接器的入口分别受控。原8090二进制尚未升级,不可直接拿这些新参数操作原实例。
配置与命令详见产品包声明预检、平台及门户组合、连接器组合。采集隔离见SQL worker、CDC worker。新增的隐私执行契约、外部节点契约和锚定outbox是后端适配接入材料,尚无真实供应商默认值或“已接入成功”门户。
持久组件与独立核验: 互联持久协调SDK、隐私任务持久控制SDK供后端接入;真实平台身份/当前ACL和HTTP/门户工作流仍需开发。独立证据核验服务提供单独的loopback只读HTTP核验入口,不能替代独立信任登记或监管投递。可选SCQL编译组件目前只生成受限计划,不执行引擎。准确验证数、残留本地桥接和环境条件见本轮验证记录。
统一启动入口: 新增 ./run.sh start/restart/stop/status/logs,本地私有构建与Docker正式部署分开管理;首次配置、已有实例交接、空库初始化及新安装数据库角色说明见快速启动与Docker部署。
目录
- 角色与操作约定
- 首次部署与启动
- 账号、权限与签名设备
- 连接器接入与企业数据源
- 企业侧文件上传与抽取复核
- 加工质量、分类分级与独立审批
- 产品发布、合约与计算交付
- 周期调度与追加型增量
- 独立 PostgreSQL CDC 运维
- 监控、值班与升级通知
- 审计投递与机器采集凭据
- 企业 OIDC 登录
- 备份、恢复与升级
- 常见错误与排查
- 验收与交付记录
角色与操作约定
| 读者 | 主要工作 | 建议阅读 |
|---|---|---|
| 企业管理员 | 人员、角色、资源范围、审批、监控和审计授权 | 账号权限、分类审批、监控、审计、OIDC |
| 业务人员 | 数据源目录、固定数据集、加工、产品、合约、结果 | 数据源至计算交付各章 |
| 连接器运维 | 企业白名单、进程与密钥、上传网关、增量/CDC、备份 | 首次部署、连接器、调度、CDC、恢复 |
内置角色为平台运营管理员operator、企业管理员admin、数据管理员steward、合约与发布审核员reviewer、数据使用人员consumer及只读审计员auditor。提供方/使用方是业务身份,运维是岗位。consumer默认没有签约权;人工分类分级的独立审批要求另一位合格管理员,不能把reviewer理解为所有审批的通用身份。具体看按角色培训图解。
门户导航包含“数据目录”“企业资产”“合约协作”“计算任务”“企业连接器”“运行监控”“审计投递”“空间与机构”“企业治理”“履约证据”“接入状态”。入口和写按钮按当前身份与权限显示;看不到按钮时先核对权限,不直接修改数据库绕过。
操作常需当前密码、理由和独立确认。保存成功后重新读取,核对修订、对象编号及状态。发生网络超时或“结果待核对”时,先读取已保存结果;不要因页面未返回就反复提交。运行记录中的“已创建”“已暂存”“已发送”“已确认”是不同阶段。
示例只含虚构域名、邮箱和路径。实际密码、DSN、客户端秘密、机器令牌及私钥存入企业秘密管理;不要粘贴到工单、截图、Git 或本手册。命令中的 /srv/datanous-candidate 等路径须由运维准备,不是项目内已有路径。
首次部署与启动
准备隔离候选环境
- 准备独立 PostgreSQL 数据库、受限数据库账号、平台状态密钥目录和候选前端目录。升级现有数据库前先执行备份章;平台启动会执行版本迁移。
- 使用同一候选版本的平台、连接器及核验 CLI;核对构建摘要和 SBOM。当前 schema 上界为 60,交付时以
internal/platform/store.go与实际迁移记录一致为准。 - 通过秘密管理器注入
DATABASE_URL,或设置DATABASE_URL_FILE指向受保护文件。避免使用命令行-db携带密码;若二者都设置,非空DATABASE_URL优先。 - 生产入口配置准确 HTTPS origin 和可信 TLS 反向代理;回环 HTTP 仅用于本地验证。不要把本地测试配置原样暴露公网。
首次初始化示例(会写入专用候选数据库并创建初始运营账号):
/srv/datanous-candidate/bin/platform init \
-key /secure/datanous-candidate/platform.key \
-name '示例空间运营方' -email 'operator@example.invalid' \
-password-file /secure/datanous-candidate/bootstrap-password
密码文件由秘密管理流程创建并限制属主访问;不在终端命令中填写密码。平台状态密钥同时关联签名与结果解密,创建后立即纳入受保护备份。
本地候选启动示例:
/srv/datanous-candidate/bin/platform serve \
-key /secure/datanous-candidate/platform.key \
-listen 127.0.0.1:18090 -origin http://127.0.0.1:18090 \
-web /srv/datanous-candidate/web-dist
此例故意使用独立端口、密钥和前端目录,不替换原 8090 的二进制或 web/dist。生产环境应由服务管理器管理进程与秘密,不能依赖交互终端长期运行。需要固定平台公钥时,用同一数据库和密钥配置运行 platform public-key;输出为公钥,可信分发渠道仍由部署方建立。
默认关闭的能力
| 启动开关或配置 | 启用条件及效果 |
|---|---|
-ingestion-scheduler | 准备自动调度循环;还须管理员对当前计划、对象和启动代次授权 |
-escalation-dispatch | 准备升级投递循环;还须策略、有效接收端及当前代次执行确认 |
-escalation-maintenance | 仅清理过期升级暂存状态,不发送通知;会更新确认代次 |
-duty-renewal | 准备有界续排/值班自动化;规则与具体告警交接须分别确认 |
-audit-push | 准备审计后台投递;上线后需管理员重新确认,旧意愿不直接授权 |
-oidc-config / DATANOUS_OIDC_CONFIG | 加载显式企业身份配置;未提供时企业 SSO 关闭 |
-scim-config / DATANOUS_SCIM_CONFIG | 默认关闭;绑定当前OIDC快照和单企业映射,接受受限人员查询/单向停用 |
DATANOUS_CHAIN_CONFIG | 可选链模块,涉及真实广播时需另行部署授权与验收 |
DATANOUS_RECOVERY_CONFIG | 独立身份核验信任配置;缺少可信核验条件时不能完成遗失密钥恢复 |
开关打开与业务执行授权是两层控制。重启、改权、对象或配置修订变化后,读取当前状态并按页面要求重新授权;不要恢复旧授权记录绕过检查。
账号权限与签名设备
- 初始运营方在“空间与机构”“企业治理”建立机构、空间与人员关系。此处的机构审核为平台本地审核,不是权威实名认证。
- 新人员按页面要求完成“设置您的正式密码”。修改密码使用“修改登录密码”→“确认改密并重新登录”;忘记密码由有权管理员在“重置人员登录凭据”签发一次性重置凭据,交给本人安全接收。
- 在“角色与人员授权”核对主角色和附加角色;按岗位需要“创建业务角色”“调整附加角色”。归档角色会影响绑定人员,不是删除历史。
- 在“人员可访问范围”分别设置空间和企业数据源范围。“全部”和“选择范围”含义不同,选择范围为空不是全部。角色决定可做什么,范围决定对哪些资源可做;派生数据的固定血缘仍限制访问,不能只授权输出就绕开源范围。
- 人员停用、改密和授权修订会使相关旧会话/挑战失效。执行前应使用重新登录后的当前身份;不要转交管理员会话给采集程序。
合约签名设备与恢复
“我的签名设备”管理浏览器内 Ed25519 签名私钥;私钥保存在该浏览器的 IndexedDB,不上传平台。首次签署按“登记本设备签名公钥”登记,已有钥轮换按页面挑战与确认流程进行,完成后可导出轮换证明。登录密码与合约签名私钥用途不同。
遗失设备时进入“遗失密钥恢复”,核对申请账号、原/候选公钥、到期时间与核验方。流程要求已配置且固定信任的独立核验签名、符合条件的独立审批,再“完成恢复并重新登录”。不能把管理员改公钥或本地测试核验方当作真实身份核验。缺少独立核验环境时保持待处理,不删除旧签名证据。
连接器接入与企业数据源
登记连接器
- 在企业信任域准备已有的私有目录;使用
connector -init -key /secure/enterprise/connector.key显式初始化,保存输出的公钥。普通运行缺钥不会自动创建替代身份。 - 在门户“企业连接器”登记该公钥,将登记编号保存到受保护的编号文件。核对企业和平台 origin。
- 运维维护企业本地
sources白名单;门户只能选择配置引用,不能让远端提交任意路径、SQL 或程序。 - 启动连接器并检查门户最近联系时间、协议能力及任务状态:
/srv/datanous-candidate/bin/connector \
-key /secure/enterprise/connector.key \
-id-file /secure/enterprise/connector.id \
-platform http://127.0.0.1:18090 \
-sources /secure/enterprise/sources.json
仅本机试运行使用上述回环地址;跨主机改为批准的 HTTPS 平台地址。配置变更后受控重启连接器,不依赖热加载。
最小 CSV 白名单示例(示例文件须事先存在):
{
"root": "/srv/enterprise-data",
"enableUploadedObjects": false,
"enableIncrementalPostgres": false,
"files": {},
"connections": {
"orders_csv": {"kind": "csv", "path": "samples/orders.csv"}
}
}
数据库源使用 connections 中的 kind、dsnEnv、精确 tables 白名单和 readOnlyConfirmed;DSN 从指定环境变量读取。readOnlyConfirmed 是操作声明,不会把高权限账号变成只读账号。API 来源同样使用本地受控配置与秘密引用。
从来源到固定版本
- 打开“企业资产”→“数据源”,登记“数据源名称”“来源类型”“企业连接器”“企业配置引用”“数据分类”和业务说明;例如配置引用
orders_csv。 - 提交资源发现,在“运行记录”确认任务完成,再到“内部资产”核对来源、字段、结构与资产版本。
- 对目标资产生成快照,在“数据集版本”检查固定版本、行列信息、质量与血缘。平台保存元数据和证明,原始数据及快照留在企业侧。
- 源结构或配置变化时重新发现、生成新版本;已发布产品和签署合约不自动追随最新数据。停用来源前核对其历史产品/合约引用,不删除内容寻址快照。
支持 PostgreSQL、CSV、JSON、无公式 XLSX、受控 API 及文件元数据;MySQL/SQL Server 已有驱动和有界读取,但真实环境的类型、最小权限和故障恢复需要联调。文件元数据接入不等于已接入 OCR。
固定聚合的可选进程隔离
企业Linux部署可在既有sources.json显式设置aggregateIsolation,固定同版datanous-aggregate-worker及可信摘要,提供专属cgroup v2委派目录。缺省关闭,启用后隔离条件缺失会拒绝启动或执行,不退回原执行方式。完整限额、自检、取消清理和Linux环境验收见固定聚合隔离执行操作。此模式约束可信固定聚合程序,不自动隔离来源SQL/CDC,也不提供网络/文件安全域或硬件证明。
连接器换钥与撤销
换钥前停止所有使用该钥的连接器进程。-rotation prepare 生成并保留候选,管理员创建挑战后用 -rotation complete -rotation-id <挑战编号>;结果未知用 -rotation recover 核对持久证明。离线安装必须使用 -rotation install -rotation-proof <单份完成证明JSON> 及独立固定的平台公钥。abort 用于受控取消恢复,不能以删除本地轮换目录代替。
轮换命令共用 -key、-id-file、-platform、-party、-platform-key 精确绑定;参数按 connector -help 核对。本地轮换事务记录/历史包含私钥材料,按密钥备份,不上传到普通诊断日志。门户撤销连接器会拒绝续租和结果交付;重新接入须登记新连接器,不将撤销作为重试按钮。详见连接器本地换钥说明,其中历史阶段缺口以当前源码与身份连接器核对记录后续证据为准。
企业侧文件上传与抽取复核
运维准备
上传监听默认关闭。连接器须显式提供 -upload-listen、-upload-party、-upload-issuer-key、-upload-origin;需要直接 TLS 时配置 -upload-cert、-upload-tls-key。固定企业、签发公钥与浏览器 origin;企业同源网关将指定路径路由到该连接器。文件直接进入企业域,不经过平台文件存储。启用上传对象接入还需白名单 enableUploadedObjects: true。
业务操作
- 打开“企业侧文件上传”,核对“企业同源上传路径”,选择 CSV、JSON 或无公式 XLSX。
- 首次上传“已有会话编号”留空;续传使用原会话编号并选择同一文件。输入当前密码、上传理由,确认最多 5 分钟短期授权后点“授权并上传或续传”。
- 检查字节进度和 SHA-256。上传字节完成后,还需独立确认并点“确认生成正式对象”;“中止并删除暂存分块”会清理该会话暂存内容,不能当作暂停。
- 正式对象完成后,在“登记到资产目录”核对固定
upload:<摘要>.<扩展名>引用,填数据源名称与分类,点“确认登记数据源”→“提交资源发现任务”。随后按数据源章生成固定数据集版本。 - 用“授权并读取我的上传历史”查询本人记录;“历史范围”可切换近期/已归档。“归档我的已结束会话”每批最多 64 条,仅归档已完成/中止且无暂存分块的会话,正式对象保留,不是删除文件功能。
页面关闭会清除当前授权。授权过期或身份变化后重新读取并授权,不延长或伪造旧令牌。网络结果未知先查历史/进度,不能反复创建新会话规避配额。
固定输出人工复核
在数据集版本的“抽取人工复核”读取冻结来源,核对只读“原文件 SHA-256”。填写实际抽取引擎标识、版本、配置 SHA-256、复核结论、密码、理由和确认,再“保存人工复核”并重新读取修订。
这记录人工核对原文件与固定输出的声明。没有执行真实 OCR 时不能填成 OCR 执行证明;也不能编辑原文件摘要来让不匹配输出通过。真实 OCR 引擎或外部对象存储只有选定并完成接入后才能另行使用。
加工质量分类分级与独立审批
建立加工和业务质量规则
- “企业资产”→“加工任务”,选择固定主输入版本;需要时选择第二个数据集、关联键与关联方式,按顺序设置清洗步骤。
- 在“输出质量门禁”配置必填字段、唯一键字段和最少有效记录数。
- 在“业务质量规则”点“添加业务规则”,填写加工后输出字段,并选择“数值范围”“格式匹配”“允许值”或“字段一致性”。范围包含上下界;格式采用服务端 Go 正则完整匹配;允许值每行一项、最多 100 项;最多 64 条规则。
- “保存规则并运行”,在运行记录检查结果,再在版本详情查看“业务规则检查”和规则摘要。不同规则的失败行数可能重复,不能直接相加为失败记录总数。
- 质量失败输出保持隔离,不能发布。修改源或规则后形成新版本重新运行;不要直接修改状态为 ready。固定值遮盖与 SHA-256 替代标记的敏感标记行为不同,哈希不自动消除敏感性。
人工分类与独立审批
- 管理员先读取“企业发布分类审批策略”。选择“必须分类并独立批准”时,后续发布必须有合格声明与独立审批;“兼容无声明版本”仅兼容未声明版本,已有声明仍须批准。变更不自动下架已有产品。
- 在固定数据集版本打开“分类分级复核”→“记录分类声明”,为每个字段填写分类和 1–4 级;疑似敏感字段不能选低于 2 级。
- 保存并重新读取当前声明修订。声明人不能审批自己的声明;另一位有资格管理员登录后选择“独立审批当前声明”,核对全部字段后批准或拒绝。
- 新声明须重新审批。分类审批不替代质量门禁、抽取复核、产品发布审核或真实业务合规判断。
典型处理:金额 101 不符合 0–100 的规则时,先保留隔离报告并修正来源/规则,再生成新版本;不能让分类审批覆盖质量失败。
产品发布合约与计算交付
- 从可发布固定数据集版本创建产品,选择空间、名称及使用口径;空间成员关系与数据源权限仍需满足。
- 在“数据目录”对草稿“申请发布”,由另一位有权限人员查看发布审核并处理。质量、分类与敏感性等检查均通过后才能发布;不要把保存草稿当作已向空间公开。
- 使用方选择其他机构已发布产品申请使用,填写计算操作、字段、最小分组、结果行数、使用次数、有效期和是否允许导出,创建待签合约。
- 双方在“合约协作”→“查看合约”核对“查看完整签署文档”、版本及摘要后“确认条款并签署”。修订条款后应核对新版本并重新完成所需签署;不能复用旧签名表示同意新条款。
- 有效合约的使用方点击“提交计算”。当前固定操作为
count、sum、group_count;不接受任意代码,也不提供已验收的 MPC/TEE 等隐私计算运行环境。 - 到“计算任务”查看状态。完成后提供方选择“审核并准许交付”或“拒绝交付”;使用方只有获得批准且合约仍有效时才能查看结果。导出还要求合约
allowExport和当前导出权限。 - “查验履约证据”进入“履约证据”,按企业/合约范围读取和导出签名证据。已存本地签名或开发链锚定不等于独立机构存证认证。
“取消任务”针对在途工作;“紧急终止”会撤销合约后续访问,操作前确认业务影响。需要双方解除时使用现有解除申请流程,不以修改数据库代替双方确认。结果未知先查任务和证据,避免重复计算或重复使用额度。
周期调度与追加型增量
计划配置、手动触发和自动执行
数据源有“发现调度”,相应快照/加工对象也有调度入口。进入后:
- “新建调度计划”,填写首次时段(北京时间)、结束时间(不含该时刻)、间隔分钟和补跑策略。“只处理最近到期时段”与“按最早时段逐次补跑”按业务选择。
- 保存“启用计划配置”仅保存计划,不启动自动执行。每企业最多 32 条计划,暂停计划也计数。
- “预览时段”检查计划修订、对象版本、到期时段,再按密码/理由/确认“确认手动触发”。精确时段用于幂等处理,不用更改时间制造重复任务。
- 自动运行需运维启用
-ingestion-scheduler,管理员再点“自动执行授权”,选择“确认当前范围的自动执行”,设置截止时间并“保存执行控制”。授权绑定当前计划、对象及启动代次。 - 暂停计划或停用授权后重新读取;停用自动执行不自动取消已经创建的任务,必要时另查运行记录取消。
PostgreSQL 追加型增量
该模式要求企业连接器白名单显式 enableIncrementalPostgres: true、只读 PostgreSQL 来源及满足追加约定的字段。它不是 CDC:不负责反映旧行更新和删除,也不能宣称跨批次全局 MVCC 快照。
- 在目标资产打开“追加型增量配置”,重新读取来源绑定、当前水位与活动任务。
- 选择“保存并启用当前字段配置”,指定“整数游标字段”和“唯一文本键字段”,确认来源满足追加约定。检查字段/结构冻结信息,不凭名称猜测唯一性。
- 选择“采集下一批(最多64行)”→“创建单批采集任务”。只有有效结果和固定版本成功落库后才推进水位;空窗口、失败、取消和过期回执按状态核对。
- 连续采集可通过“管理当前增量修订的调度计划”建立计划,再单独授予自动执行。计划绑定配置修订,改配置后重新核对。
- “停用并保留水位”保留恢复证据;活动任务通过“取消增量任务”单独处理。取消不推进水位,企业侧已生成缓存可能仍保留。
- 来源变化后需要新基线时,先确认无活动任务,再“重新开始基线(保留旧证据)”。该操作从空水位开始新修订,不表示基线已经采完,也不删除旧版本。
连接器使用有界分页、固定窗口和源端事务预算;锁等待或预算失败不产生可提交水位。业务需要更新/删除捕获时采用下一章的独立 CDC CLI,不切换追加游标伪装完整同步。
独立 PostgreSQL CDC 运维
当前 CDC 交付为显式运行的 datanous-cdc CLI,没有平台 CDC 管理门户、HTTP 配置入口或托管 worker。现有追加型增量按钮不能启动 CDC。来源和目标均须为授权环境;不得为测试修改原业务库 WAL 配置。
配置与执行顺序
- 准备支持 logical WAL 的专属来源、复制权限、固定完整 publication 和专属槽,核对真实 system identifier、database、relation OID、列类型及主键/identity;准备独立可写目标 schema。
- 建立私有配置 JSON。字段包括
source(kind、dsnEnv、tables、readOnlyConfirmed)、destinationDSNEnv、destinationSchema、stream和binding。完整合成模板见PDT016 收尾记录的 synthetic_cli_config_example。其中SystemID、关系 OID 和 generation 是占位值,不能直接用于真实源。 - 源和目标 DSN 由配置所指定的环境变量提供;配置与环境交由秘密管理。先核对配置及支持类型,再执行明确模式。
# 读取已经建立的目标状态;尚未 bootstrap 时不能把失败当作零水位
/srv/datanous-candidate/bin/datanous-cdc -config /secure/cdc/stream.json -mode status
# 写操作:显式创建所配置的专属复制槽并建立一致性初始基线
/srv/datanous-candidate/bin/datanous-cdc -config /secure/cdc/stream.json -mode bootstrap -create-slot
# 写操作:读取一批完整事务并原子持久化目标;默认不确认源 LSN
/srv/datanous-candidate/bin/datanous-cdc -config /secure/cdc/stream.json -mode run-once
# 另行确认消费策略后才使用:目标持久提交之后确认源 LSN
/srv/datanous-candidate/bin/datanous-cdc -config /secure/cdc/stream.json -mode run-once -ack-source
- 每次读取状态并保留操作结果。目标物化行、LSN 和摘要收据原子提交,重复批按持久收据幂等;不能因 CLI 超时猜测数据库没有提交。
- 若由外部调度器周期调用,仍保持有界单次运行和专属流配置,设置失败告警,监视复制槽 WAL 保留量及磁盘容量。
支持范围与失败处置
当前支持 bool/int2/int4/int8/text/varchar/numeric/uuid、普通表、非空主键或 replica identity index、完整无过滤发布及 pgoutput v1 完整提交事务。暂不支持时间/浮点/数组/自定义类型、分区根、FULL identity、TRUNCATE、流式大事务和 DDL 演进。
当前初始/目标最多 5 万行、16 MiB 状态;单行初始快照最多 1 MiB、CDC 单批 8 MiB、单事务 1024 变更。超限或漂移拒绝并保留恢复边界;不是大规模 HA 消费产品。
建槽失败或结果未知时不会自动删除槽。 先核对真实槽与目标持久状态;未知 COMMIT/ACK 按收据恢复,不能删槽、伪造检查点或跳过 LSN。恢复较旧目标且源 WAL 已回收时不能继续假装连续,需要批准的新 generation/新槽和新基线。真实源权限、长时间恢复及吞吐需环境验收。
监控值班与升级通知
日常查看和责任处理
“运行监控”用于查看本企业指标、告警与队列状态。先“刷新监控”,区分连接器离线、业务失败、等待审核和投递状态。确认告警或交接责任应根据页面要求核对事件/发生轮次,保留处理理由;历史通知不是当前已有人处理的证明。
值班排班
- 打开“值班与路由”,建立值班组,添加当前有效的本企业管理员或运营人员。
- 添加班次,按北京时间填写起止时间;起点包含、终点不包含,同组不可重叠,每班最长 31 天。
- 设置告警类型到组的路由,精确类型优先于默认规则。保存“启用后续告警的值班路由”及“保存排班与路由”,按当前页面预览检查具体时刻匹配。
- 持续排班使用“续排规则与执行确认”,先保存排班,再配置规则和执行确认;运维需准备
-duty-renewal。单班不会自行延长,不能只保存一班后假设永久有人值班。
缺班或成员失效仍保留企业告警;路由附带组、班次和人员标识,实际通知由接收端完成。历史事件重试保留原路由,不因修改当前排班重算旧事件。自动续排与具体告警交接的授权分别处理。
接收端、升级策略和执行授权
- “通知接收端”→“登记新接收端”,填写名称、批准的 HTTPS 接收地址、登记状态及确认。新建默认停用,每企业最多 32 个;URL 中不得含令牌。
- 启用接收端只允许策略引用。到“升级策略”配置事件类型、阶段和当前接收端修订;变更地址/状态后重新核对旧策略绑定。
- 运维准备
-escalation-dispatch后,在“升级执行授权”重新读取当前节点和策略,选择本次操作、授权到期时间、密码与理由,确认“当前节点执行授权”。授权最长 24 小时且不超过策略期限。 - 需要自动创建升级任务时,另勾选“额外包含按当前策略自动创建升级任务(不勾选则仅处理已有任务)”;不能把已有任务执行授权理解为允许自动暂存新任务。
- 在“查看升级历史”按“发生轮次”读取,检查阶段、暂存/领取/发送结果及复核状态。网络结果未知时先检查当前记录和远端持久去重结果,不重新构造通知键强发。
本地接收登记、策略、执行循环与 HTTPS 合成接收端验收,不证明邮件、短信、企业微信等任意通道已接入,也不证明真实人员收到。只有确认实际接收端契约、网络与持久确认机制后才能启用真实外发。
审计投递与机器采集凭据
管理审计订阅
- “审计投递”选择当前有权访问的企业/合约范围,创建对应订阅;订阅目录支持分页,状态变化后刷新。
- “查看状态与记录”核对订阅修订、待确认批次、重试与运行状态。新建订阅不等于已经配置目标或自动外发。
- “设置推送目标”填写批准的接收目标,按当前密码、理由与确认提交。存在待确认批次时不能切换目标,须先按协议确认,或撤销订阅后另建。
- 运维准备
-audit-push后,“调整自动投递”绑定当前目标与节点代次;上线或重启后重新核对页面要求的确认状态。 - 到投递记录检查失败/已记录确认。死信时查原因后“恢复死信批次”;该动作重置本轮尝试预算,不代表已发送或接收成功。“撤销此订阅”停止该订阅后续使用并保留历史。
远端必须按签名批次、固定标识和确认协议处理,重复收到要持久去重。HTTP 成功、本地已存确认和第三方独立证据的含义不同;结果未知先对账,不换新幂等键重复发送。
机器指标采集
监控和审计凭据分开管理、不能互换:
| 用途 | 入口 | 机器读取地址 |
|---|---|---|
| 企业监控 | “运行监控”→“机器采集凭据” | GET /api/monitoring/scrape |
| 审计投递指标 | “审计投递”→“审计指标机器凭据” | GET /api/audit/scrape |
- 在对应入口“创建采集凭据”,填写名称、有效期(1 小时至 90 天)、当前账号密码及理由,确认后“创建并显示一次性密钥”。每企业各类受其当前凭据上限约束,审计凭据最多 32 个有效项。
- 密钥默认遮盖,可“显示密钥”/“隐藏密钥”;安全保存到采集系统后勾选已保存,再“清除页面密钥”。丢失则撤销重建,不从数据库恢复明文。
- 采集端在 HTTPS 请求头发送
Authorization: Bearer <专用令牌>,不放查询参数。令牌只允许对应 scrape 接口,不允许/api/me、订阅管理或另一类指标接口;会话保护的/api/audit/metrics也不是机器令牌地址。 - 分企业隔离凭据和采集配置,采集系统自行配置实例标签;页面列出凭据不证明 Prometheus 正在抓取。对 401/403 等错误报警,不能当作成功的全零指标。
- 轮换顺序为创建新凭据→配置采集端→确认真实抓取正常→撤销旧凭据。凭据有独立到期/撤销状态,也绑定签发人的当前身份与授权修订;人员改密/改权/停用后需重新核对。
企业 OIDC 登录
配置
该能力默认关闭。先在 DataNous 建立已批准企业和已有本地账号,再由可信管理员从 IdP 核实精确 sub,显式绑定到本地 partyId/userId。禁止按邮箱自动合并、自动开户或使用上游角色声明自动赋权。
运维准备私有 JSON,文件 0600、父目录建议 0700。以下是 public client 的结构示例,仅当 IdP 注册明确允许 none 时使用;不是可直接运行的身份配置:
{
"issuer": "https://idp.example.invalid",
"clientId": "replace-with-registered-client-id",
"tokenAuthMethod": "none",
"authorizationEndpoint": "https://idp.example.invalid/authorize",
"tokenEndpoint": "https://idp.example.invalid/token",
"jwksUrl": "https://idp.example.invalid/jwks",
"redirectUri": "https://rp.example.invalid/api/oidc/callback",
"bindings": [
{"subject": "replace-with-exact-sub", "partyId": "replace-with-local-party", "userId": "replace-with-local-user"}
]
}
机密客户端使用 tokenAuthMethod: "client_secret_basic",并在私有文件填写 clientSecret;none 时不得设置秘密。固定 issuer、端点及 JWKS;不支持动态 issuer/开放跳转。redirectUri 必须精确等于平台 -origin 加 /api/oidc/callback。正常部署全用 HTTPS,只有数字回环地址允许本地测试 HTTP。
启动时增加 -oidc-config /secure/datanous/oidc.json,或设置 DATANOUS_OIDC_CONFIG;更改配置需受控重启。映射/配置变化使旧 OIDC 会话失效。不要把真实配置提交到代码仓库。
登录、退出和上游信号
- 配置有效后登录页显示“企业 SSO 登录”,点击跳转到固定 IdP,完成身份认证后返回固定 callback。仍须满足本地账号/企业状态与授权,首次改密要求不会被 SSO 绕过。
- 登录使用一次性 state、nonce 和 S256 PKCE;验证签名、issuer、audience、到期等。回调失败重新发起登录,不反复打开旧 callback 链接。会话最长 8 小时且不超过 ID token 到期时间。
- 页面退出调用本地
/api/logout,只注销 DataNous 会话;不会自动退出 IdP。共享设备还应按 IdP 自身流程退出上游。 - 在 IdP 注册
POST https://rp.example.invalid/api/oidc/backchannel-logout,按 OIDC back-channel logout 发送表单logout_token。服务校验签名、固定 issuer/audience、新鲜时间、标准事件及 jti,并撤销匹配的本地 OIDC 会话、阻断短期在途登录复活。 - 标准 logout 信号不是完整人员停用同步。它不自动停用本地账号,也不注销独立密码登录会话;要彻底撤销人员访问,仍须本地停用/撤权,并为真实 IdP 另行约定人员生命周期同步。当前另有须独立配置的受限SCIM停用接口,见下一节;标准logout本身不提供人员停用、任意供应商同步或RP发起的上游注销。
本地 mock IdP 的成功只证明协议实现。真实 IdP 注册、证书/JWKS 更新、logout 信号交付、生产网络与人员同步契约需要环境联调。详见OIDC 本地实现与验收。
上游人员停用同步(受限SCIM)
由身份平台运维和企业管理员共同配置;这是机器接入,不新增普通人员的管理权限。先完成已有人员与OIDC精确主体绑定,再为单个企业准备私有SCIM配置、到期机器Bearer摘要及当前OIDC原文件摘要,显式增加-scim-config。完整配置与HTTP示例见SCIM人员生命周期实施。
- 上游仅查询明确映射的既有人,读取本地
id、active和ETag;不按邮箱猜测合并。 - 对已确认离职/停用人员发送单操作
PATCH active=false,推荐携带刚读取的If-Match;核对响应active=false。 - 本地事务停用该人并撤销密码及OIDC会话、重置凭据、签署/换钥/恢复挑战和附加角色绑定;重复停用不重复新增同代事件。
- 如果返回409,说明会锁死最后一位有效管理员,先由责任人确保独立管理入口;返回412时重读版本,不直接覆盖新状态。
- 本轮不接受开户、组/角色写入或
active=true。人员复职由另一位本地管理员独立审核并显式启用,旧会话和附加角色不会自动恢复;这也不证明上游已激活。 - Token或映射变更须协调所有副本重启;未重新配置的旧进程仍持有其固定快照,不能只改磁盘文件当作撤销完成。
此接口默认关闭,当前完成的是受限标准适配与本地并发测试。真实IdP投递、TLS、时延/失败升级与多副本凭据切换仍须联调;不是完整SCIM供应系统。
备份恢复与升级
使用同一静止检查点备份数据库、密钥、企业固定数据和配置。只备份平台库不能恢复企业原始文件,也不能替代密钥备份。
形成完整恢复集
- 阻止新任务/写入,确认在途任务完成或明确未知结果。停止相关平台自动循环、连接器上传/执行和 CDC 消费;不能只关闭网页。
- 用与 PostgreSQL 主版本匹配的工具备份完整业务 schema;记录版本、配置摘要和各文件 SHA-256。凭据用受保护
PGPASSFILE或秘密管理器,不写进命令行。 - 独立保存平台状态私钥、连接器私钥与轮换历史、固定信任公钥、源/API秘密引用、OIDC配置、链配置与签名钥。
- 企业域保留
.datanous/datasets、.datanous/uploads、.datanous/upload-sessions全部会话/分块/归档、.datanous/upload-audit.jsonl与.datanous/upload-audit-archive前驱链。勿按文件年龄删除历史引用对象。 - CDC 另备份目标状态、收据/检查点,并配套记录源槽、publication、system identifier、generation 和 LSN,按前章核对可连续恢复性。
备份与隔离恢复命令示例:
pg_dump --format=custom --file=/secure/backups/datanous.dump --dbname=datanous_candidate
# 以下会清理目标对象:仅可指向新建、专用、允许销毁的恢复库
pg_restore --clean --if-exists --exit-on-error --single-transaction \
--dbname=datanous_restore /secure/backups/datanous.dump
隔离恢复与回滚
恢复到新数据库、目录和端口,保持外发、链广播、自动调度关闭。核验全表、固定对象摘要、产品/合约历史版本、结果解密及签名证据;缺钥、缺前驱段、摘要不符、schema 不一致或水位不连续就停止。
上传审计历史核验使用独立固定公钥和备份前可信链头:
verify-upload -enterprise-root /isolated/restored-enterprise \
-trusted-keys /secure/pinned-connector-public-keys.json \
-history -expected-head <backup-time-verified-chain-head>
该命令不使用 -rotate;轮换/归档维护是另外的显式写操作。仅保存在同一信任域的链头不构成独立锚定。
升级时同步匹配的平台、连接器和 CLI;旧程序拒绝更高 schema 时不得删除迁移记录绕过。回滚需要旧二进制及其配套的完整旧恢复集,不能只换二进制连接新库。切换后发生过外部确认或新业务写入时,先冻结并对账,不能静默覆盖或重新发送。
当前隔离恢复演练不涵盖异地灾备、真实源 CDC 连续性、生产 TLS、所有新增业务表非空场景或真实回滚。完整清单与证据见运行与备份的“0.5.2-dev 候选版本”章节及隔离恢复记录。旧 check-local-restore.py 依赖旧演示实例,不能当作当前候选隔离恢复工具直接运行。
常见错误与排查
| 现象 | 先检查 | 正确处理 |
|---|---|---|
| 页面没有某管理按钮 | 当前主角色、附加权限、企业状态、空间/数据源范围、是否候选前端 | 管理员核对当前权限,重新登录;不强改前端绕过 |
| 401 / 旧会话失效 | 改密、停用、授权修订、OIDC配置变化、令牌过期 | 用当前身份重新登录/重新签发专用凭据 |
| 403 / 操作不允许 | 权限、来源范围、独立审批人员资格 | 核对精确对象与审批分离,不借用他人账号 |
| 修订冲突或结果待核对 | 页面草稿版本是否过期、请求是否可能已提交 | 重新读取保存结果,清除旧草稿后再决定 |
| 上传 5 分钟授权过期 | 当前身份、文件摘要、原会话和企业网关路径 | 重新授权并查进度,勿更改摘要绕过续传 |
| 上传完成但目录无资产 | 是否确认正式对象、登记数据源、提交发现 | 完成三步并查运行记录;字节到齐不等于资产发布 |
| 质量隔离 / 无法发布 | 业务规则明细、必填唯一性、分类声明审批、敏感标记 | 修正后生成新版本;不改 ready 状态掩盖 |
| 自动调度不启动 | 计划有效期、对象修订、CLI开关、当前代次执行授权 | 逐层核对并重新授权;保存配置不代表授权 |
| 增量锁等待/来源漂移 | 源只读权限、实际表结构、活动任务、冻结上下界 | 解除源阻塞后核对重试;漂移需明确新基线,勿手改水位 |
CDC bootstrap_not_confirmed_inspect_slot_and_destination | 槽是否已创建、目标是否已持久提交 | 保留槽与收据,人工核对恢复;不自动删除 |
CDC run_not_confirmed_inspect_durable_receipts_and_source | 目标收据、源确认位置、完整事务 | 沿持久状态恢复;不因网络错误跳过批次 |
| 任务排队/连接器离线 | 进程、origin、登记编号/公钥、协议能力、白名单、配额与时间同步 | 修复连接后查任务,不替用户签署或跳过合约 |
| 结果不可见或导出不可用 | 提供方审核、合约有效期/终止、allowExport、当前权限 | 按授权流程处理,不直接读取数据库结果 |
| 已有告警但无人收到 | 缺班、路由、接收端状态/修订、策略、节点授权、真实远端确认 | 区分本地暂存与真正通知;未知结果先对账 |
| 审计死信/不能改目标 | 待确认批次、目标变更、资格和重试预算 | 查原因;明确恢复死信或撤销另建,不能跳过确认 |
SSO 按钮消失/oidc_config_failed | 私有文件权限、固定端点、client方式、origin/callback精确匹配 | 修改受控配置并重启;错误日志不应输出秘密 |
oidc_login_failed | 精确issuer/sub映射、本地账号状态、时钟、JWKS、一次性回调 | 新发起登录;不改成邮箱匹配或关闭验签 |
| 密钥损坏/轮换结果未知 | 备份、持久轮换记录、固定信任公钥 | 保留文件按恢复流程处理;不生成替代钥覆盖历史 |
/api/interop/* 返回 external_profile_not_configured | 外部协议适配是否已明确交付 | 当前不能仅填写URL宣称互联;需目标契约与适配开发/联调 |
验收与交付记录
统一结果、通过范围和剩余条件见并行收尾与集中验收,精确测试统计和候选构建摘要见机器记录。本手册对应候选源码,不代表已部署到原8090,也不代表正式测评通过。
目前可查的分范围证据:
- 业务质量与分类审批集中验收
- 企业侧文件与人工复核收尾
- 调度增量与独立 CDC 收尾及5万行边界容量验证
- 监控、升级与审计凭据收尾
- OIDC 本地协议与撤销验收
- 隔离备份恢复
- 外部环境剩余范围
交付现场至少核对:版本/实例一致、两名独立审批账号、受限来源与固定版本、质量拒绝路径、合约双方签署与结果审核、调度独立授权、未知结果恢复、机器凭据撤销以及备份可恢复性。真实身份、外部节点、隐私计算硬件、独立锚定、生产网络/文件系统和正式测评按各自环境条件单独验收,不由合成测试替代。