ADR_P3_WP10_HYBRID_DELIVERY.md 2.3 KB

ADR: P3-WP10 混合交付与租户隔离底座

决定

在外部 multi_tenancy 决策到位前,产品默认且唯一可启用模式是 private_single_tenantshared_control_planesaas 是版本化契约值,不是可自行开启的产品模式;它们必须由书面批准的交付模式、租户数量、隔离等级和容量剖面激活。

TenantContext 只能由服务器批准的默认私有租户或域名/路由映射产生。客户端 payload/query 不选择租户;后台任务和管理员行为必须携带与上下文相同的显式 scope。未知 route、未批准 delivery mode、scope 缺失和范围不相等均拒绝。

数据边界

20260817_501 建立 tenant registry、可计量配额、预约、lifecycle/audit 事实和 hash-only 资源 manifest。tenant-scoped PostgreSQL 表强制 RLS,runtime 需在事务中设置 dataops.tenant_iddataops_app_runtime 无任何 WP10 直写权限,只能执行 fixed-search-path 的 SECURITY DEFINER 闭合 schema 网关。20260817_502 将 freeze/recover/activate 的 DB clock、fence 与幂等 replay 放入单独 gateway。后续 role-init 也必须显式撤销/排除 tenantstenant_* 直 DML。

图、对象存储、缓存和搜索的现有部署尚无可复核的原生 tenant ACL/partition 实现。它们当前使用受控 ASCII namespace + tenant/resource/version 前缀和 digest manifest;namespace escape、URL/path、Unicode 同形与跨 tenant reference 拒绝。这是工程适配契约,不是外部服务隔离验收。

后果与未决项

  • 私有化保持兼容:server approved default tenant 是唯一选择,客户端声明无效。
  • keys/connectors/models/plugins/backup/audit export 只有 default-disabled、hash-only manifest;没有真实 provider、secret、插件仓库或恢复作业。
  • 删除候选/恢复的完整审批、hold、retention、备份恢复演练,以及实际 Neo4j/MinIO/cache/search 隔离,仍需在批准的 SaaS/共享控制面剖面中实施和验收。
  • 当前状态为 ENGINEERING_BASELINE_COMPLETE_MULTI_TENANCY_ACTIVATION_BLOCKED;不是 SaaS、企业 UAT 或生产完成。multi_tenancy、共享控制面/SaaS 决策、网络安全监测、外部存储、备份恢复和 UAT 继续为 TBD_EXTERNAL 或授权跳过范围。