@aipt/idp-deploy 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/docs/application-config-workspace.md +13 -0
  2. package/docs/command-reference.md +10 -0
  3. package/docs/features/bench-deployment-ownership-reception/DESIGN.md +63 -0
  4. package/docs/features/bench-deployment-ownership-reception/IMPLEMENTATION-PLAN.md +35 -0
  5. package/docs/features/cli-package-distribution/DESIGN.md +6 -0
  6. package/docs/features/developer-delivery-environment-model/ACCEPTANCE.md +48 -0
  7. package/docs/features/developer-delivery-environment-model/DESIGN.md +110 -0
  8. package/docs/features/developer-delivery-environment-model/IMPLEMENTATION-PLAN.md +46 -0
  9. package/docs/features/kubernetes-gitops-deployment-backend/DESIGN.md +472 -0
  10. package/docs/features/kubernetes-gitops-deployment-backend/FOUNDATION-ARCHITECTURE.md +201 -0
  11. package/docs/features/kubernetes-gitops-deployment-backend/IMPLEMENTATION-PLAN.md +43 -0
  12. package/docs/features/kubernetes-gitops-deployment-backend/PREIMAGE.json +18 -0
  13. package/docs/features/local-source-compose-deployment/DESIGN.md +74 -0
  14. package/docs/features/local-source-compose-deployment/IMPLEMENTATION-PLAN.md +13 -0
  15. package/docs/features/smartgo-managed-business-profile/DESIGN-ADDENDUM-01-HOST-OCI-LAYOUT-ORAS-FALLBACK.md +78 -0
  16. package/docs/features/smartgo-managed-business-profile/DESIGN-ADDENDUM-02-SMARTGO-BACKUP-RECOVERY-HEALTH.md +57 -0
  17. package/docs/features/smartgo-managed-business-profile/DESIGN-ADDENDUM-03-OCI-CAPABLE-BUILDER.md +35 -0
  18. package/docs/features/smartgo-managed-business-profile/DESIGN.md +131 -0
  19. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-01.md +25 -0
  20. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-02.md +14 -0
  21. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-03.md +16 -0
  22. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-04.md +24 -0
  23. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-05.md +27 -0
  24. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-06.md +22 -0
  25. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-07.md +23 -0
  26. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-08.md +24 -0
  27. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-09.md +25 -0
  28. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-10.md +20 -0
  29. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-11.md +21 -0
  30. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-12.md +20 -0
  31. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-13.md +25 -0
  32. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-14.md +25 -0
  33. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-15.md +25 -0
  34. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-16.md +24 -0
  35. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-17.md +25 -0
  36. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-18.md +22 -0
  37. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-19.md +23 -0
  38. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-20.md +22 -0
  39. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-21.md +40 -0
  40. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-22.md +34 -0
  41. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN-ADDENDUM-23.md +29 -0
  42. package/docs/features/smartgo-managed-business-profile/IMPLEMENTATION-PLAN.md +53 -0
  43. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-01.json +11 -0
  44. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-02.json +10 -0
  45. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-03.json +10 -0
  46. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-04.json +14 -0
  47. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-05.json +10 -0
  48. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-06.json +11 -0
  49. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-07.json +11 -0
  50. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-08.json +11 -0
  51. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-09.json +11 -0
  52. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-10.json +11 -0
  53. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-11.json +11 -0
  54. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-12.json +11 -0
  55. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-13.json +11 -0
  56. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-14.json +11 -0
  57. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-15.json +11 -0
  58. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-16.json +11 -0
  59. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-17.json +11 -0
  60. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-18.json +11 -0
  61. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-19.json +14 -0
  62. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-20.json +21 -0
  63. package/docs/features/smartgo-managed-business-profile/PREIMAGE-ADDENDUM-21.json +13 -0
  64. package/docs/features/smartgo-managed-business-profile/PREIMAGE.json +26 -0
  65. package/docs/features/workbench-readonly-project-bindings/DESIGN.md +17 -0
  66. package/docs/features/workbench-readonly-project-bindings/IMPLEMENTATION-PLAN.md +11 -0
  67. package/docs/features/workspace-application-config-root/DESIGN.md +11 -0
  68. package/docs/troubleshooting.md +10 -0
  69. package/documentation-manifest.json +6 -2
  70. package/package.json +2 -5
  71. package/src/cli.mjs +5 -0
@@ -0,0 +1,24 @@
1
+ # SmartGo BuildKit npmrc 双别名边界 Plan Addendum 08
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:真实 SmartGo 发布构建证明公共 npm 代理与 host 级 Token 共用同一 authority 会让公共依赖请求携带认证,从而形成认证风暴;主任务明确要求只在 `idp-deploy` 的临时 BuildKit Secret 投影中隔离公共与私有 authority。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. `$IDP_CONFIG_DIR/components/smartgo/.env` 声明的 `SMARTGO_NPMRC_FILE` 及其目标文件仍是唯一输入事实;发布器不得修改、替换或输出该文件及 Token。
10
+ 2. 当外部 npmrc 指向宿主回环 Registry 时,权限为 `0600` 的 Runtime staging 副本必须进行双别名投影:
11
+ - 默认公共 `registry` 使用 `host.docker.internal:<port>`,且该 authority 不得持有 `_authToken`。
12
+ - `@aipt`、`@bench` 的 scoped registry 与原 host 级 `_authToken` authority 使用 `smartgo-private-registry.internal:<port>`。
13
+ 3. SmartGo buildx 必须同时传入 `host.docker.internal=host-gateway` 与 `smartgo-private-registry.internal=host-gateway`;其他组件不得继承这些构建网络别名。
14
+ 4. staging 文件只通过 BuildKit `--secret` 传入,构建成功或失败后均立即删除;命令参数和运维输出不得出现 Token。
15
+ 5. Verdaccio 配置、外部 Config Dir、运行时投影、镜像合同和业务源码均不改变。
16
+
17
+ ## Apply 与验证
18
+
19
+ 1. 复验 `PREIMAGE-ADDENDUM-06.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
20
+ 2. 定向测试必须证明公共 registry 与私有 Scope/Token authority 分离、两个 host-gateway 参数存在、外部 npmrc 字节不变、临时文件为 `0600` 且成功后删除,命令参数不泄露 Token。
21
+ 3. 失败路径必须证明临时 Secret 仍被清理;非 SmartGo 构建不得获得双别名。
22
+ 4. 执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
23
+
24
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,25 @@
1
+ # SmartGo BuildKit npmrc 精确白名单 Plan Addendum 09
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:Addendum 08 的双别名投影解决了正常输入的 authority 隔离,但安全审查证明可信外部 npmrc 仍可能夹带额外认证或网络键并被 npm 解释;主任务要求在发布边界独立实施严格白名单并 fail-closed。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. SmartGo 构建 npmrc 除空行和整行 `#`/`;` 注释外,必须且只能各包含一次以下四个有效键:
10
+ - `registry`
11
+ - `@aipt:registry`
12
+ - `@bench:registry`
13
+ - 唯一一个 `//<loopback>:<port>/:_authToken`
14
+ 2. 三个 Registry URL 必须是无凭据、无查询、无片段、根路径且显式端口的 `http`/`https` 回环 URL;协议和端口必须一致。Token authority 必须是同一端口的 `127.0.0.1` 或 `localhost`,Token 必须为非空单行值。
15
+ 3. 未限定 Scope 的 `_authToken`、`_auth`、`_password`、`username`、额外 Scope Registry、`proxy`/`https-proxy`、证书配置、重复键和任意未知有效键必须在创建 staging 文件前失败,错误不得回显行内容或值。
16
+ 4. 通过白名单后才生成 Addendum 08 定义的规范双别名副本;外部文件、Verdaccio 和其他仓库仍不得修改。
17
+
18
+ ## Apply 与验证
19
+
20
+ 1. 复验 `PREIMAGE-ADDENDUM-07.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
21
+ 2. 正向测试证明四键精确合同、注释保留、双别名、Token 不进入命令参数、外部文件字节不变和 staging 清理。
22
+ 3. 表驱动 canary 至少覆盖未限定 `_authToken`、host `_auth`、`username`、`_password`、额外 Scope Registry、代理和未知键;每个 case 均须在 Docker buildx 前失败且不得残留 staging。
23
+ 4. 执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
24
+
25
+ 本 Addendum 不授权读取 SmartGo 实现模块,也不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,20 @@
1
+ # SmartGo BuildKit Registry 固定回环端点 Plan Addendum 10
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:P0 安全复核确认,允许 npmrc 自选协议或端口仍可能把私有 Token 投影到 host-gateway 上的其他服务;主任务冻结本机 Verdaccio 输入为固定 HTTP/4873 回环端点。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. Addendum 09 中“显式端口且三者一致”的宽松事实被本 Addendum 精确替代:三个 Registry URL 只允许 `http://127.0.0.1:4873/`、`http://localhost:4873/` 或 `http://[::1]:4873/`。
10
+ 2. 唯一 Token authority 只允许对应的 `//127.0.0.1:4873/:_authToken`、`//localhost:4873/:_authToken` 或 `//[::1]:4873/:_authToken`。
11
+ 3. staging 输出固定为公共 `http://host.docker.internal:4873/`、私有 `http://smartgo-private-registry.internal:4873/` 和私有 `//smartgo-private-registry.internal:4873/:_authToken`;不得从输入继承协议、端口、路径或 authority。
12
+ 4. HTTPS、其他端口、userinfo、额外路径、查询和片段均必须在 staging 与 Docker buildx 前 fail-closed;IPv6 只接受精确 `[::1]`。
13
+
14
+ ## Apply 与验证
15
+
16
+ 1. 复验 `PREIMAGE-ADDENDUM-08.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
17
+ 2. 正向测试覆盖 IPv4、localhost 和 IPv6 回环的规范化;canary 覆盖 HTTPS、错误端口、userinfo、路径、查询、片段和非回环地址。
18
+ 3. 执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
19
+
20
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,21 @@
1
+ # SmartGo Corepack 冷缓存 Registry 门禁 Plan Addendum 11
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:冷缓存构建在挂载项目 npmrc 之前执行 `corepack prepare`;若它直连公共网络或携带私有凭据,会绕过 Addendum 08–10 的双别名与白名单边界。主任务冻结 Corepack 下载只能走无 Token 的公共宿主代理。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. `smartgo-managed-v1` prebuild 必须验证包含 `corepack prepare` 的同一条 Dockerfile `RUN` 逻辑指令显式设置 `COREPACK_NPM_REGISTRY=http://host.docker.internal:4873`。
10
+ 2. Dockerfile 不得声明或使用 `COREPACK_NPM_TOKEN`、`COREPACK_NPM_USERNAME`、`COREPACK_NPM_PASSWORD`;Corepack 公共代理不得携带任何私有凭据。
11
+ 3. Dockerfile 不得把 `COREPACK_INTEGRITY_KEYS` 设置为 `0`、空单引号或空双引号,也不得以旧式 `ENV COREPACK_INTEGRITY_KEYS 0` 关闭完整性校验。
12
+ 4. 该门禁只验证 SmartGo 已冻结的构建输入事实;`idp-deploy` 不修改业务 Dockerfile,也不替代 BuildKit npmrc Secret 合同。
13
+
14
+ ## Apply 与验证
15
+
16
+ 1. 复验 `PREIMAGE-ADDENDUM-09.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
17
+ 2. 正向测试验证真实 SmartGo Dockerfile满足同一 RUN 指令、固定 Registry、无凭据和 integrity 开启事实。
18
+ 3. canary 必须分别证明缺失/漂移 Registry、Token/用户名密码以及三种 integrity 关闭写法在 Buildx 前失败。
19
+ 4. 等 SmartGo Dockerfile Owner 固化源码后执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
20
+
21
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,20 @@
1
+ # SmartGo Runtime Deploy 离线封装门禁 Plan Addendum 12
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:真实 Docker build 证明依赖安装完成后的 runtime `pnpm deploy` 仍可能触发二次联网;主任务冻结后置 build/package 阶段必须只消费已安装依赖和本地 store,且不得重新获得 npmrc Secret。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. `smartgo-managed-v1` prebuild 必须发现至少一个用于生成 `/runtime` 产物的 `pnpm ... deploy` 命令,并要求每一个命令都含独立精确参数 `--offline`;`--offline=false` 不得通过。
10
+ 2. Dockerfile 中从首个 build/package/runtime-deploy RUN 开始的所有后续 RUN 都不得挂载 npmrc BuildKit Secret;允许 npmrc Secret 的唯一网络窗口仍是前置 `pnpm install`。
11
+ 3. build/package 边界至少识别 `pnpm ... build`、`package-next-standalone.mjs` 和 `pnpm ... deploy`;不得通过拆分后置 RUN 绕过 Secret 禁令。
12
+ 4. 本门禁只验证 SmartGo Dockerfile 输入事实,不修改业务 Dockerfile、不读取外部 npmrc,也不改变 Addendum 08–11 的双别名、白名单和 Corepack 合同。
13
+
14
+ ## Apply 与验证
15
+
16
+ 1. 复验 `PREIMAGE-ADDENDUM-10.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
17
+ 2. 正向测试覆盖多个 runtime deploy 全部离线和前置 install 可挂 npmrc;canary 覆盖缺失 offline、`--offline=false`、同 RUN 与拆分后续 RUN 重新挂 npmrc。
18
+ 3. 等 SmartGo Dockerfile Owner 固化源码后执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
19
+
20
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,25 @@
1
+ # SmartGo Offline Deploy Metadata 路由门禁 Plan Addendum 13
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:strict-offline 实跑证明 pnpm store 的 metadata 按 Registry authority 分区;不允许联网的 runtime deploy 仍需显式、无凭据地声明与安装阶段一致的公共/私有 authority。主任务冻结每条 deploy 的命令级路由前缀。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. 每个 runtime deploy 必须以以下精确、固定顺序开头:
10
+ - `pnpm`
11
+ - `--offline`
12
+ - `--config.registry=http://host.docker.internal:4873/`
13
+ - `--config.@aipt:registry=http://smartgo-private-registry.internal:4873/`
14
+ - `--config.@bench:registry=http://smartgo-private-registry.internal:4873/`
15
+ 2. 三条 `--config.*registry` 必须各且仅各出现一次;缺失、重复、顺序漂移、不同 authority、协议、端口或路径均 fail-closed。
16
+ 3. runtime deploy 不得出现任何额外 `--config.*`、直接 `--registry`、proxy/https-proxy/userconfig、Token、认证、用户名或密码参数/环境赋值。
17
+ 4. 三条路由不包含 Secret,不替代 npmrc;Addendum 12 的 strict-offline 与后置 npmrc Secret 禁令保持不变。
18
+
19
+ ## Apply 与验证
20
+
21
+ 1. 复验 `PREIMAGE-ADDENDUM-11.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
22
+ 2. 正向测试覆盖多个 deploy 均使用固定前缀;canary 覆盖缺失、重复、错序、错误 endpoint、额外 Scope Registry、proxy、credential、直接 Registry 和 offline 漂移。
23
+ 3. 等 SmartGo Dockerfile Owner 固化四条真实命令后,执行实际 Dockerfile 合同验证、定向 Release 测试、`git diff --check` 与完整 `npm run check`。
24
+
25
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,25 @@
1
+ # SmartGo 私有 Metadata Prime 供应链门禁 Plan Addendum 14
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:strict-offline 实跑证明 `pnpm deploy --offline` 仍需要外部私有包的 manifest metadata。SmartGo Owner 已冻结独立 metadata-prime RUN、当前外部私有依赖抽取口径及后续离线边界。
6
+
7
+ ## 新增不可变事实
8
+
9
+ 1. `smartgo-managed-v1` prebuild 必须从 `apps/*/package.json`、`packages/*/package.json`、`services/*/package.json` 的 `dependencies`、`devDependencies`、`optionalDependencies`、`peerDependencies` 抽取所有 `@aipt/*`、`@bench/*` 且非 `workspace:` 的外部私有依赖。每个依赖必须使用确定的精确版本;同名多版本、范围、Tag、URL 或本地引用一律 fail-closed。
10
+ 2. `docker/pnpm-lock.yaml` 的私有包集合必须与 Manifest 集合精确相等;缺失、陈旧或额外私有 Lock 条目都不得进入 Buildx。
11
+ 3. Dockerfile 必须在 install 后、build/package 前提供唯一的 metadata-prime RUN。该 RUN 只能挂载:
12
+ - `type=cache,id=smartgo-pnpm,target=/pnpm/store`
13
+ - `type=secret,id=npmrc,target=/root/.npmrc,required=true`
14
+ 4. metadata-prime 的命令必须按 `<name>@<version>` 排序,与 Manifest/Lock 集合逐项精确相等;每项只能执行 `pnpm view <exact-spec> version >/dev/null`,不得增加脚本、参数、输出、代理、凭据或其他网络操作。当前集合精确为 `@aipt/environment@0.1.2`、`@aipt/testkit@0.1.2`。
15
+ 5. metadata-prime 是允许认证网络与 Secret 的最后边界。其后的 build/package、runtime deploy 和 runtime stage 不得挂载任何 Secret,也不得执行 install/fetch/view/info/add/update、npm/yarn/corepack、curl/wget、Git 网络、系统包下载等网络命令。
16
+ 6. runtime deploy 必须位于独立的单一 RUN;该 RUN 只能挂载同一 pnpm store cache,所有 deploy 继续满足 Addendum 12/13 的 strict-offline 与三条固定无凭据 Registry 路由。build/package 不得与 deploy 混入同一 RUN。
17
+
18
+ ## Apply 与验证
19
+
20
+ 1. 复验 `PREIMAGE-ADDENDUM-12.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
21
+ 2. 正向证据覆盖:真实 SmartGo Dockerfile、Manifest、Docker lock 三方集合一致;metadata-prime 顺序、mount、无输出命令、位置、末次 Secret/网络边界;独立 strict-offline deploy RUN。
22
+ 3. canary 至少覆盖:Manifest/Lock/prime 缺失、额外、版本漂移、多版本或非精确版本;prime 重复、错序、额外命令/参数/输出、错误 mount;prime 后 Secret 或网络;deploy 与 build 混合、额外 mount 或多 RUN。
23
+ 4. 执行定向 Release 测试、真实 SmartGo prebuild 合同验证、`git diff --check` 与完整 `npm run check`。
24
+
25
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,25 @@
1
+ # SmartGo Persistence 生产运行闭包门禁 Plan Addendum 15
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:SmartGo 最新批准的 `PERSISTENCE-RUNTIME-CLOSURE-ADDENDUM` 与真实 strict-offline 失败证据确认,缺失 metadata 来自 persistence 非生产 deploy 错误拉入 dev-only `@aipt/testkit`。将正式运行所需 `prisma`/`tsx` 归入 production dependencies,并让 persistence 与三个 Service 同样 `--prod` 后,不应保留猜测性的认证网络窗口。
6
+ - 替代关系:本 Addendum 在 Buildx 发布前替代 Addendum 14 的 metadata-prime 正向要求;Addendum 14 保留为已被新证据否决的审计记录,不再是当前 Apply 合同。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. SmartGo Dockerfile 必须不存在任何 `pnpm view` 或 metadata-prime RUN。安装 RUN 是 npmrc Secret 与认证依赖网络的最后允许点;其后的 build/package、runtime deploy 和 runtime stage 不得挂载任何 Secret,也不得执行依赖下载命令。
11
+ 2. runtime deploy 必须位于独立单一 RUN,只挂载 `type=cache,id=smartgo-pnpm,target=/pnpm/store`,并按固定顺序精确包含四个入口:`@smartgo/persistence`、`smartgo-api`、`agent-runtime`、`worker`。
12
+ 3. 四个入口都必须在 Addendum 13 的三条固定无凭据 Registry 路由后使用 `--filter <selector> --prod deploy --legacy <target>`;Persistence 缺少 `--prod` 必须 fail-closed。
13
+ 4. `@smartgo/persistence` Manifest 必须把正式 migrate/seed 运行需要的 `prisma@6.19.3`、`tsx@4.20.6` 声明在 `dependencies`,不得仍放在 `devDependencies`。
14
+ 5. Persistence 的 production dependency 字段不得包含 `vitest`、`typescript`、`@types/*`、`@aipt/testkit` 或 `@bench/*` 测试包。Dockerfile 最终 runtime stage 不得从 build stage 复制这些已知开发工具路径,也不得从 `/workspace/packages/persistence` 或整个 `/workspace` 绕过 `/runtime/packages/persistence` production deploy 产物。
15
+ 6. `@aipt/environment` 仍可作为业务生产依赖存在,但当前无证据要求额外 metadata-prime;只有后续真实、精确的 offline 缺失证据才能通过新的 Addendum 恢复最小 prime。
16
+
17
+ ## Apply 与验证
18
+
19
+ 1. 复验 `PREIMAGE-ADDENDUM-13.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
20
+ 2. 删除 Addendum 14 引入的正向 prime/全 Dev Manifest 扫描门禁,改为零 `pnpm view`、安装后无 Secret/网络门禁。
21
+ 3. 正向测试覆盖真实 SmartGo Dockerfile、Persistence Manifest、四条 exact `--prod + --offline` deploy、独立 cache-only RUN 与受控 runtime COPY。
22
+ 4. canary 覆盖任意 prime/view、安装后 Secret/网络、Persistence 或任一 Service 缺少 `--prod`、少于/多于/错序 deploy、build 混入 deploy、错误 mount、Persistence 依赖归类回退以及 runtime dev-tool/broad COPY。
23
+ 5. 执行定向 Release 测试、`git diff --check` 与完整 `npm run check`;不执行真实远程发布。
24
+
25
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、其他仓库或外部 Config Dir。
@@ -0,0 +1,24 @@
1
+ # SmartGo Legacy Deploy Production Closure Preflight 门禁 Plan Addendum 16
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:真实零预热构建证明 build/package 成功后,Persistence 第一条 `--prod --offline --legacy` deploy 仍因 pnpm legacy resolver 在裁剪前读取 workspace dev metadata 而缺少 `@aipt/testkit@0.1.2` alias metadata。非 legacy deploy 被 NONINJECTED 合同拒绝;临时 injected workspace 会生成未批准 deploy lock 且继续缺 optional metadata,因此不能改 Workspace/Lock/Policy 或扩大最终 deploy 网络。
6
+ - 替代关系:Addendum 15 的“禁止 `pnpm view`、安装后零 Secret、四条 production strict-offline deploy、runtime/dev 白名单”继续有效;“安装 RUN 只执行 frozen install”由本 Addendum 扩展为同一受控 RUN 内的唯一 production closure-preflight。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. 唯一 frozen install RUN 继续且只能挂载固定 pnpm store cache 与唯一 required npmrc Secret。
11
+ 2. frozen install 成功后,必须在同一 RUN 精确执行一次 `@smartgo/persistence --prod deploy --legacy` production-closure preflight。preflight 不得使用 `--offline`、三条最终 deploy Registry 参数、额外 proxy/credential 或额外 Secret;它只复用该 RUN 已有的严格 npmrc authority。
12
+ 3. preflight 输出只能进入 `/tmp/smartgo-persistence-runtime-closure-preflight`,随后必须在同一 RUN 立即以固定命令删除。临时目录不能跨 RUN 存活、不能被 `COPY`、不能成为最终镜像或备份数据集。
13
+ 4. `pnpm view`、独立 metadata-prime RUN、第二个 Secret mount、第二个 preflight、其他 selector/target、非 `--prod`、非 `--legacy`、不同临时路径或缺少同 RUN 清理均 fail-closed。
14
+ 5. build/package 从下一独立 RUN 开始仍不得拥有 Secret/npmrc或依赖网络;最终四条 runtime deploy 继续满足 Addendum 13/15 的固定顺序、三 Authority、`--prod --offline --legacy` 与 cache-only 单一 RUN。
15
+ 6. Persistence production Manifest 与 runtime COPY/dev-tool 白名单保持 Addendum 15,不因 preflight 放宽最终镜像内容。
16
+
17
+ ## Apply 与验证
18
+
19
+ 1. 复验 `PREIMAGE-ADDENDUM-14.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
20
+ 2. 预构建门禁精确解析 install RUN 的 mount、命令顺序、preflight argv、临时路径与同 RUN 删除;禁止以文本注释、第二 RUN 或相似路径冒充。
21
+ 3. canary 覆盖缺失/重复/错序 preflight、错误 selector/flags/path、`--offline`/额外 route/凭据、清理缺失或晚于其他命令、preflight 后 Secret/网络、runtime COPY 临时目录。
22
+ 4. 执行真实 SmartGo Dockerfile 合同验证、定向 Release 测试、`git diff --check` 与完整 `npm run check`;不执行远程发布。
23
+
24
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、Workspace/Lock/Policy、其他仓库或外部 Config Dir。
@@ -0,0 +1,25 @@
1
+ # SmartGo 生产 Runtime Assembly 门禁 Plan Addendum 17
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:首个成功构建的 SmartGo amd64 镜像在运行闭包检查中发现 11 个相对 Workspace symlink 断链;同时,Prisma 6.19.3 的冻结 peer snapshot 将 TypeScript 6.0.3 带入 Persistence 运行闭包。SmartGo 已以 `RUNTIME-ASSEMBLY-ADDENDUM.md` 冻结完整 production Workspace 闭包与精确 sanitizer 边界。
6
+ - 替代关系:Addendum 16 的唯一安装 Secret 窗口、Persistence closure-preflight、安装后零 Secret/依赖网络以及最终 strict-offline deploy 约束继续有效;本 Addendum 只扩展最终 deploy/COPY 集合并新增运行闭包装配证明。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. 四个生产根 `@smartgo/persistence`、`smartgo-api`、`agent-runtime`、`worker` 必须仅沿 `dependencies`、`optionalDependencies`、`peerDependencies` 中的 `workspace:` 边递归闭合;`devDependencies` 不得参与。闭包必须精确得到六个 Package 与三个 Service,不允许缺失、额外或仓库名分支。
11
+ 2. Package deploy 顺序固定为 `@smartgo/api-contracts`、`@smartgo/domain`、`@smartgo/application`、`@smartgo/object-store`、`@smartgo/platform-session`、`@smartgo/persistence`,目标依次固定为 `/runtime/packages/api-contracts`、`domain`、`application`、`object-store`、`platform-session`、`persistence`。
12
+ 3. Service deploy 顺序固定为 `smartgo-api`、`agent-runtime`、`worker`,目标固定为 `/runtime/services/<service>`。九条命令必须处于同一个 cache-only RUN,逐条使用既有固定顺序的三条无凭据 Registry route、`--prod --offline --legacy`;不得恢复 npmrc Secret、网络命令、proxy 或凭据。
13
+ 4. build stage 必须在九条 deploy 后精确执行既有三个 Service 源码/测试产物清理、`node /workspace/deploy/sanitize-runtime-closure.mjs /runtime`、Persistence Prisma CLI 与 tsx 的 `--version` 验证。sanitizer 必须 fail-closed:只接受精确 `/runtime`,只处理 Prisma peer 引入的冻结 TypeScript 6.0.3 artifact 集合,并在删除后递归拒绝断链与 TypeScript、Vitest、`@types`、`@aipt/testkit` 等开发工具。
14
+ 5. sanitizer 源码合同必须声明并检查九个入口的精确目录与 Package 名、每个入口 `dist`、三个 Service 无 `src`,并验证所有 symlink 可解析。禁止以宽泛 glob 删除未知 Package、忽略缺项/额外项,或只检查 Dockerfile 中出现了脚本名。
15
+ 6. runtime stage 只允许把受控 `/runtime/packages` 整体复制到 `/workspace/packages`,再分别复制三个 `/runtime/services/<service>`;其余白名单仍为三个 Next standalone artifact、`tooling/config-dir.mjs` 与三个既有运行时 deploy 文件。不得复制 `/workspace`、`/workspace/packages`、源码根、preflight 临时目录、sanitizer 构建脚本或开发 node_modules。
16
+ 7. `smartgo-managed-v1` prebuild 必须同时验证 Manifest production 图、Dockerfile exact deploy/COPY/证明命令与 sanitizer 语义。任一事实漂移时在 Docker build 前失败,且不得产生远程资源。
17
+
18
+ ## Apply 与验证
19
+
20
+ 1. 复验 `PREIMAGE-ADDENDUM-15.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
21
+ 2. 定向 fixture 覆盖:闭包缺失/额外/错序、开发依赖误入闭包、错误 selector/target、非 `--prod`、错 Registry route、拆分 RUN、额外 Secret/网络、错误 COPY、sanitizer 缺失/重复/错根/错序、Prisma 或 tsx 证明缺失、断链/开发工具验证缺失、宽泛删除与源码根复制。
22
+ 3. 真实 SmartGo Dockerfile 与 sanitizer 必须通过同一 `smartgo-managed-v1` 门禁;随后执行定向 Release 测试、`git diff --check` 与完整 `npm run check`。
23
+ 4. 本批只验证发布前合同,不执行 Docker build、远程推送、Profile 切换或外部 Config Dir 写入;最终镜像实物的断链、开发工具、Prisma/tsx 与三 App smoke 证据仍由 SmartGo 构建流水线产生。
24
+
25
+ 本 Addendum 不授权修改 SmartGo、Verdaccio、Workspace/Lock/Policy、其他仓库或外部 Config Dir。
@@ -0,0 +1,22 @@
1
+ # SmartGo Prisma Runtime Client 证明门禁 Plan Addendum 18
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:完整 Runtime Assembly 镜像已证明九入口、无断链、无开发工具、Prisma/tsx CLI 可执行,但从最终 Persistence deploy 闭包首次导入模块时,局部 `@prisma/client` 因未针对随包 Schema 初始化而失败。SmartGo 已以 `PRISMA-RUNTIME-CLIENT-ADDENDUM.md` 冻结 runtime-local generate 与真实模块导入证明。
6
+ - 替代关系:Addendum 17 的九条 strict-offline deploy、sanitizer、COPY 白名单和零额外 Secret/网络继续有效;本 Addendum 只扩展同一 assembly RUN 的固定后处理与证明顺序。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. 九条 deploy 与两个 Service 清理步骤之后、sanitizer 之前,必须精确执行 `/runtime/packages/persistence/node_modules/.bin/prisma generate --schema /runtime/packages/persistence/prisma/schema.prisma >/dev/null`。
11
+ 2. generate 的 CLI 与 Schema 必须同时来自 `/runtime/packages/persistence`,不得引用 `/workspace`、其他 Schema、相对路径、全局 Prisma 或网络下载器。
12
+ 3. sanitizer 之后依次执行 `/runtime/packages/persistence/node_modules/.bin/prisma --version >/dev/null`、同闭包的 `tsx --version >/dev/null`,以及 `node --input-type=module -e "await import('/runtime/packages/persistence/dist/index.js')"`。
13
+ 4. 顺序固定为九条 deploy → Service 源码/测试产物清理 → runtime-local Prisma generate → sanitizer → Prisma/tsx CLI 证明 → Persistence production 模块 import。缺失、重复、错序、错误路径、数据库连接副作用或夹带额外 Secret/依赖网络均 fail-closed。
14
+ 5. 真实模块 import 只证明生产模块闭包和 Prisma Client 初始化,不连接数据库,也不能替代最终镜像的相同实物检查。
15
+
16
+ ## Apply 与验证
17
+
18
+ 1. 复验 `PREIMAGE-ADDENDUM-16.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
19
+ 2. canary 覆盖 generate/import 缺失、重复、错序,Workspace/相对 Schema,错误 Persistence 路径,缺少 `--input-type=module`、导入源码或其他模块,以及新增 Secret/网络。
20
+ 3. 运行真实 SmartGo Dockerfile 合同、定向 Release 测试、`git diff --check` 与完整 `npm run check`;不执行 Docker build、远程推送或外部 Config Dir 写入。
21
+
22
+ 本 Addendum 不授权修改 SmartGo、Manifest、Lock、sanitizer、其他仓库或外部配置。
@@ -0,0 +1,23 @@
1
+ # SmartGo BuildKit 后段断网门禁 Plan Addendum 19
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:frozen lock、唯一 npmrc Secret 和 `pnpm --offline` 只能约束包管理器,不能阻止 Workspace build、Next package、Prisma generate 或自定义脚本主动联网。SmartGo 已以 `BUILDKIT-NETWORK-ISOLATION-ADDENDUM.md` 冻结安装后两个 RUN 的 BuildKit 强制断网边界。
6
+ - 替代关系:Addendum 16–18 的唯一联网安装窗口、九条 strict-offline deploy、runtime assembly、sanitizer 与 Prisma Client 证明全部继续有效;本 Addendum 增加独立的 BuildKit 网络隔离事实。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. 唯一 install/closure-preflight RUN 保持受控网络、固定 pnpm store cache 与唯一 npmrc Secret,不得错误添加 `--network=none`,否则无法访问受控 Verdaccio。
11
+ 2. install 后的 build/package RUN 必须精确以 `RUN --network=none` 开始,且不含 mount;该 RUN 包含 Workspace Prisma generate、全 Workspace build 与三个 Next standalone package。
12
+ 3. runtime assembly RUN 必须精确以 `RUN --network=none --mount=type=cache,id=smartgo-pnpm,target=/pnpm/store` 开始;除固定 cache 外不得挂载其他内容。
13
+ 4. Dockerfile 必须且只能有两个 `RUN --network=none`,分别对应 build/package 与 runtime assembly。禁止 `--network=host`、`--network=default`、其他显式网络模式或安装后的网络例外。
14
+ 5. BuildKit 断网与九条 `pnpm --offline` 是两条独立门禁,缺一不可;断网不能放宽 Registry route、Secret、production closure 或 sanitizer 合同。
15
+
16
+ ## Apply 与验证
17
+
18
+ 1. 复验 `PREIMAGE-ADDENDUM-17.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
19
+ 2. RUN 解析器必须显式区分 `--network` 与 `--mount`,拒绝未知前缀选项、重复 network、错序、build/package 未断网、assembly 未断网、install 断网以及 host/default 网络。
20
+ 3. canary 必须分别证明缺失、重复、错位置和错误网络模式 fail-closed,同时保留九条 offline deploy、唯一 Secret 与 exact assembly 的既有测试。
21
+ 4. 运行真实 SmartGo Dockerfile 合同、定向 Release 测试、`git diff --check` 与完整 `npm run check`;不执行 Docker build、远程推送或外部 Config Dir 写入。
22
+
23
+ 本 Addendum 不授权修改 SmartGo、Registry、npmrc、其他仓库或外部配置。
@@ -0,0 +1,22 @@
1
+ # SmartGo Prisma Engine 确定性预热门禁 Plan Addendum 20
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 批准依据:BuildKit 后段断网的首次真实构建证明,build/package 首个 Prisma generate 仍需要取得 Prisma 6.19.3 锁定引擎及 checksum;`--network=none` 下以 `EAI_AGAIN binaries.prisma.sh` 正确失败。SmartGo 已以 `PRISMA-ENGINE-PREWARM-ADDENDUM.md` 冻结唯一安装网络窗口内的确定性预热方案。
6
+ - 替代关系:Addendum 16 的 install/closure-preflight exact command 由本 Addendum 增加一个受控 Prisma prewarm;Addendum 17–19 的九条 deploy、runtime-local generate、sanitizer、Persistence import 与两个 `--network=none` 全部继续有效。
7
+
8
+ ## 新增不可变事实
9
+
10
+ 1. 唯一 install/closure-preflight RUN 内,frozen install 后必须立即执行 `pnpm --filter @smartgo/persistence db:generate >/dev/null`,随后才允许 Persistence production closure-preflight 与同 RUN 清理。
11
+ 2. networked prewarm 复用同一 RUN 的固定 cache 与 npmrc Secret,不得增加第二个 Secret、独立 RUN、curl/wget、手工 engine 下载、镜像或 path override。
12
+ 3. build/package 与 runtime assembly 内的两个 Prisma generate 继续在各自 `--network=none` RUN 执行,证明它们只复用安装层已物化且通过 Prisma 原生 checksum 的冻结引擎。
13
+ 4. 禁止 `PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING`、`PRISMA_ENGINES_MIRROR`、`PRISMA_QUERY_ENGINE_BINARY`、`PRISMA_QUERY_ENGINE_LIBRARY`、其他 checksum-ignore/engine mirror/path 变量或命令行覆盖。
14
+ 5. 顺序、次数或路径漂移,prewarm 输出未抑制,安装后新增网络/Secret,或两个断网 generate 不能保留,均 fail-closed。
15
+
16
+ ## Apply 与验证
17
+
18
+ 1. 复验 `PREIMAGE-ADDENDUM-18.json` 后,只修改 `src/release.mjs`、`tests/release.test.mjs` 与对应操作者说明。
19
+ 2. canary 覆盖 prewarm 缺失/重复/错序、错误 selector/脚本/输出、独立 RUN、checksum ignore、engine mirror/path override、curl/wget、build/package 或 runtime-local generate 缺失。
20
+ 3. 运行真实 SmartGo Dockerfile 合同、定向 Release 测试、`git diff --check` 与完整 `npm run check`;不执行 Docker build、远程推送或外部 Config Dir 写入。
21
+
22
+ 本 Addendum 不授权修改 SmartGo、Manifest、Lock、Schema、Registry、其他仓库或外部配置。
@@ -0,0 +1,40 @@
1
+ # 宿主机 OCI Layout + ORAS 单并发发布回退 Plan Addendum 21
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 关联 DESIGN:`DESIGN-ADDENDUM-01-HOST-OCI-LAYOUT-ORAS-FALLBACK.md`
6
+ - 批准依据:用户本轮明确要求正式实现该安全回退,且禁止触发真实发布或修改外部 Config Dir。
7
+
8
+ ## 不可变 Apply 顺序
9
+
10
+ 1. 复验 `PREIMAGE-ADDENDUM-19.json` 的五个既有文件摘要;不一致时停止,不覆盖并发修改。
11
+ 2. 在根 Config 模板中增加默认关闭的回退开关、ORAS 相对路径、精确版本和 SHA-256;`config init` 只创建工具目录,不下载二进制。
12
+ 3. 增加纯本地 ORAS 工具解析与固定事实验证:Config Dir containment、无链接、单硬链接、私有可执行权限、大小、SHA-256 和 `oras version`。
13
+ 4. 将 Buildx 参数生成收敛为同一事实源;保留默认 `--push`,仅捕获该进程失败并在已验证开关开启时导出私有 OCI Layout。
14
+ 5. 固定执行 `oras cp --from-oci-layout <layout>:<releaseTag> <remoteTag> --concurrency 1`,不传任何凭据参数;无论成功失败都清理 layout、metadata 与临时 Secret。
15
+ 6. 扩展 OCI Artifact v2 evidence 读取/匹配,记录无路径、无 Secret 的 `host-oci-layout-oras` 证明,并继续执行远端 digest、双平台和 labels 验证。
16
+ 7. 增加 Config 与 Release 契约测试,覆盖正常快路径、全部 fail-closed 分支、无 Apply、无泄漏、无不受控下载与 staging 清理。
17
+ 8. 更新 README 操作说明;执行定向测试、完整 `npm run check`、语法检查与 `git diff --check`。禁止执行 Docker build/push、ORAS copy、真实 release deploy 或外部 Config Dir写入。
18
+
19
+ ## 允许修改
20
+
21
+ - `src/config.mjs`
22
+ - `src/release.mjs`
23
+ - `tests/config.test.mjs`
24
+ - `tests/release.test.mjs`
25
+ - `README.md`
26
+ - 本 Feature 文档目录
27
+
28
+ ## 禁止事项
29
+
30
+ - 禁止修改外部 Config Dir、真实 Registry、Docker 凭据、SmartGo 或其他仓库。
31
+ - 禁止下载 ORAS、自动选择 PATH 中的 ORAS、回退到 curl/wget、放宽 TLS/认证/OCI digest/双架构/labels/SBOM/Provenance/源码 CAS 门禁。
32
+ - 禁止在 Plan、Artifact、receipt、错误文本或测试快照中保存 Secret、npmrc 内容、宿主绝对路径或命令 stderr。
33
+ - 禁止在远端 tag 已存在、配置已 Apply、备份或切换阶段启动回退。
34
+
35
+ ## 完成条件
36
+
37
+ - 回退链路全部由自动 runner 验证,测试不触发真实网络或 Docker。
38
+ - 默认发布行为不变;只有明确启用且 ORAS 固定事实全部通过时才有回退。
39
+ - 所有失败均发生在配置 Apply 前,外部配置与运行态保持原样。
40
+ - 全量检查通过,且无临时 Layout/metadata/Secret staging 残留。
@@ -0,0 +1,34 @@
1
+ # SmartGo 备份后运行态有界恢复 Plan Addendum 22
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 Plan:`2026-08-31-smartgo-managed-business-profile-v1`
5
+ - 关联 DESIGN:`DESIGN-ADDENDUM-02-SMARTGO-BACKUP-RECOVERY-HEALTH.md`
6
+ - 批准依据:用户明确要求 SmartGo 可按 `idp-deploy` 部署,并要求继续完整实现;该缺陷由真实 `core-smartgo backup create` 证据触发。
7
+
8
+ ## 不可变 Apply 顺序
9
+
10
+ 1. 复验 `PREIMAGE-ADDENDUM-20.json` 中 `src/operations.mjs` 与 `tests/operations.test.mjs` 的摘要;不一致时停止,避免覆盖并发修改。
11
+ 2. 在 `operations.mjs` 增加唯一的 SmartGo 运行态恢复内核,固定三次、两秒间隔、对象存储 30 秒与完整 Profile 60 秒 Compose 健康等待。
12
+ 3. 正常备份收尾改为调用该内核;完整 Profile 健康后才发布备份代次。
13
+ 4. 异常补偿改为调用同一内核;恢复成功重抛原始错误,恢复失败生成 v2 失败证据并抛专用错误。
14
+ 5. 单元/契约测试覆盖瞬时 MinIO 不健康、完整 Profile 第三次恢复、永久失败、数据错误不被掩盖、完整服务集合和严格健康参数。
15
+ 6. 运行 operations 定向测试、完整 `npm run check`、语法检查与 `git diff --check`。
16
+
17
+ ## 允许修改
18
+
19
+ - `src/operations.mjs`
20
+ - `tests/operations.test.mjs`
21
+ - 本 Feature 文档目录中的 Addendum 02、Plan Addendum 22 与 Preimage Addendum 20
22
+
23
+ ## 禁止事项
24
+
25
+ - 禁止修改 `src/release.mjs`、`src/config.mjs`、外部 Config Dir、Compose 健康检查、SmartGo 源码或其他仓库。
26
+ - 禁止执行真实 Docker Compose、真实备份/恢复、镜像构建/推送或容器重启。
27
+ - 禁止无限重试、吞掉数据错误、只恢复 writer 子集、移除 `--wait`、增大健康容忍或在证据中保存 stderr/Secret。
28
+
29
+ ## 完成条件
30
+
31
+ - 正常和失败路径均由同一恢复内核覆盖。
32
+ - 恢复成功必须证明完整原 Profile 健康;永久失败最多三次且留下可验证证据。
33
+ - 原始数据错误不会被恢复过程替换或掩盖。
34
+ - 全量检查通过,且不产生外部状态变更。
@@ -0,0 +1,29 @@
1
+ # OCI-capable Builder Plan Addendum 23
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - 关联 DESIGN:`DESIGN-ADDENDUM-03-OCI-CAPABLE-BUILDER.md`
5
+ - 批准依据:主任务在 Docker 官方 driver/exporter 限制确认后,明确批准显式固定 OCI-capable Builder 与 inspect 验证,且禁止自动创建 Builder。
6
+
7
+ ## 不可变 Apply 顺序
8
+
9
+ 1. 使用 `PREIMAGE-ADDENDUM-21.json` 固定本次修正前的五个既有文件。
10
+ 2. 增加默认 `UNCONFIGURED` 的 `IDP_OCI_LAYOUT_BUILDER`;回退关闭时不要求该值。
11
+ 3. 在发布前用 capture-only `docker buildx inspect <name>` 复验 driver、running node 和双平台;不传 `--bootstrap`,只允许 `docker-container`/`kubernetes`/`remote`,并规范化 Buildx 平台名后的手工声明 `*`。
12
+ 4. 回退开启时,direct push 与 OCI Layout 导出共用同一 `--builder`;关闭时保持原参数。
13
+ 5. 补 Config/Release 契约测试和 README 操作边界,证明不存在 create/use/bootstrap/download 旁路。
14
+ 6. 执行语法、diff、定向测试;由主任务在并发任务收敛后统一复跑最终 `npm run check`。
15
+
16
+ ## 允许修改
17
+
18
+ - `src/config.mjs`
19
+ - `src/release.mjs`
20
+ - `tests/config.test.mjs`
21
+ - `tests/release.test.mjs`
22
+ - `README.md`
23
+ - 本 Feature 文档目录
24
+
25
+ ## 禁止事项
26
+
27
+ - 禁止运行或实现 `docker buildx create/use/inspect --bootstrap`。
28
+ - 禁止下载 BuildKit/ORAS、触发真实 build/push/cp,或改写外部 Config Dir。
29
+ - 禁止允许 `docker` driver,或放宽现有发布、密钥、OCI 与 CAS 门禁。
@@ -0,0 +1,53 @@
1
+ # SmartGo 受管业务 Profile 不可变实施 Plan
2
+
3
+ - 状态:APPROVED / IMMUTABLE
4
+ - Feature:`smartgo-managed-business-profile`
5
+ - 批次:`2026-08-31-smartgo-managed-business-profile-v1`
6
+ - 批准依据:同目录已批准 DESIGN 与用户本轮明确实施授权。
7
+
8
+ ## Apply 顺序
9
+
10
+ 1. 校验 `PREIMAGE.json` 中所有既有文件的 SHA-256;任一不一致则停止 Apply,不覆盖新修改。
11
+ 2. 增加 SmartGo Component Config schema、外部目录模板、`*_FILE` 物化和验证。
12
+ 3. 将 Profile 的配置组件集合与长期运行服务集合分离;新增非默认 `business-smartgo`。
13
+ 4. 增加独立 SmartGo Compose 片段、最小运行时投影和 Edge 路由。
14
+ 5. 将 SmartGo OCI 镜像加入 Release defaults、Image Lock 与部署 BOM。
15
+ 6. 将 SmartGo PostgreSQL 数据集接入 backup、restore test、restore apply/verify/promote 的单数据库路径。
16
+ 7. 增加 Unit、Compose contract、外部临时 Config Dir smoke 和运维文档。
17
+ 8. 执行语法检查、全部 Unit、`docker compose config` 和外部 Config Dir smoke;不执行远程 push。
18
+
19
+ ## 允许修改
20
+
21
+ - `src/config.mjs`
22
+ - `src/profiles.mjs`
23
+ - `src/compose.mjs`
24
+ - `src/render.mjs`
25
+ - `src/image-lock.mjs`
26
+ - `src/images.mjs`
27
+ - `src/operations.mjs`
28
+ - `src/release.mjs`
29
+ - `src/cli.mjs`
30
+ - `release/defaults.v1.json`
31
+ - `scripts/postgresql/010-create-databases.sh`
32
+ - `compose/smartgo.yaml`
33
+ - `contracts/smartgo-component-config.schema.json`
34
+ - `tests/**` 中与本 Feature 直接相关的测试
35
+ - `scripts/smoke-smartgo.mjs`
36
+ - `package.json`
37
+ - `README.md`
38
+ - 本 Feature 文档目录
39
+
40
+ ## 禁止事项
41
+
42
+ - 禁止修改 SmartGo、Dyyto、Tech、Bench、Forge、Flow、Portal 或 Aura 仓库。
43
+ - 禁止推送 OCI 镜像、创建远程数据库、修改真实 Config Dir 或启动真实生产服务。
44
+ - 禁止挂载业务源码或整个 Config Dir。
45
+ - 禁止用内联 Secret、默认密码或固定 Token 使测试通过。
46
+
47
+ ## 完成条件
48
+
49
+ - 所有自动证据通过。
50
+ - `business-smartgo` 不属于默认 `core/full/foundation`。
51
+ - SmartGo 镜像与运行配置均 fail-closed。
52
+ - 未实现的 SmartGo 领域恢复验证被显式列为门禁,不被描述成已经完成。
53
+
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 1,
5
+ "capturedAt": "2026-08-31T00:00:00.000+08:00",
6
+ "files": [
7
+ { "path": "scripts/postgresql/010-create-databases.sh", "sha256": "a2ce2b09e9c6a603c89552ff2d6279a80c5e0c3b5eaf0ebbcb19f7f9b4ad1bd6" },
8
+ { "path": "src/acceptance.mjs", "sha256": "0534d1d15fef1b9f8eeaee0303e1df5c4748ce4774cee5aadf8fc96f711b6a7a" },
9
+ { "path": "tests/acceptance.test.mjs", "sha256": "abf5e643fc5537ba5400e3e35ef473f5e098a8096f22bf90af39224ecf6be25c" }
10
+ ]
11
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 4,
5
+ "capturedAt": "2026-08-31T20:29:00.000+08:00",
6
+ "files": [
7
+ { "path": "compose/smartgo.yaml", "sha256": "6f8d297c8c1c92f25c791f12cd2c69e63dd5b5133d0956a2899e69e74ae6cfc9" },
8
+ { "path": "tests/compose.test.mjs", "sha256": "28f372ebd64ee5b1d42191671931e25cc92175a7065da7f526adc05d2e0c725e" }
9
+ ]
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 5,
5
+ "capturedAt": "2026-08-31T20:43:00.000+08:00",
6
+ "files": [
7
+ { "path": "src/operations.mjs", "sha256": "19b1176fa34167585b515d05627bdfd3118e2f84784d4d58aa1f360c31010652" },
8
+ { "path": "tests/operations.test.mjs", "sha256": "4d791e34be4254b380385f6f542d21b5ae4d2d5078c34be5cc18d0bdd7ce0898" }
9
+ ]
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 6,
5
+ "capturedAt": "2026-08-31T21:00:00.000+08:00",
6
+ "files": [
7
+ { "path": "src/config.mjs", "sha256": "e0f17210f34d927a8e61edae42943f203f47472e56ca8859cb954fe4e2ca2a2d" },
8
+ { "path": "compose/smartgo.yaml", "sha256": "b618657a3bbaacc4039a127c93a1cb7029cc98a489207c53a7ed700ea6479210" },
9
+ { "path": "contracts/smartgo-component-config.schema.json", "sha256": "8e25569a637af3062c480c8a49b6c08e34b2b48545d8643368046d3e48410e29" },
10
+ { "path": "tests/config.test.mjs", "sha256": "a8cafd744583be7f29c8645b0507031be9f95291e66de17577fd5fbbccf2fa2a" },
11
+ { "path": "tests/compose.test.mjs", "sha256": "753eae2497878fe06c894fe4f7e7eb38f3bf490635c3f8515f118ace16a41cef" },
12
+ { "path": "README.md", "sha256": "0ce162006f2467058af7d5a4cbe2aa45c2b803508200b81dfc5864af6b5f698d" }
13
+ ]
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 7,
5
+ "capturedAt": "2026-08-31T22:39:57.000+08:00",
6
+ "files": [
7
+ { "path": "compose/smartgo.yaml", "sha256": "6c09d9ab7d02c65572bd8839cf517f2388bebdb7ef45c574c687b68f10314216" },
8
+ { "path": "tests/compose.test.mjs", "sha256": "f1bb6b6605877b28571c629083512407b33a21ee37f4746196673ed3b23da70a" }
9
+ ]
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 8,
5
+ "capturedAt": "2026-08-31T23:26:58.000+08:00",
6
+ "files": [
7
+ { "path": "src/release.mjs", "sha256": "d1aed65065f52ed2d15a84b7ba4ea7faecb645178c26bc78831236ccab5dfca7" },
8
+ { "path": "tests/release.test.mjs", "sha256": "d71cda0c569b0c9b5fb541717efb28b09b00eb44bf9a6cdb29a893396efe5f4e" },
9
+ { "path": "README.md", "sha256": "ad392316d8737de703340912e95414da8a6f13ac218c093b79e14efa8185c2e2" }
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 9,
5
+ "capturedAt": "2026-08-31T23:36:12.000+08:00",
6
+ "files": [
7
+ { "path": "src/release.mjs", "sha256": "ad2bd4776cccec610c1cc0ac053a0576461e1d201463a05ee6b25c2a7bed07d6" },
8
+ { "path": "tests/release.test.mjs", "sha256": "3278fa5e77500a4b5171085d340bf4e0c9e49dafca62460d1c49a04fe1b0d869" },
9
+ { "path": "README.md", "sha256": "66db9b74e814617482b66acd158d04feb8f1e6f31642ac0109d65ffb7444b697" }
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 10,
5
+ "capturedAt": "2026-08-31T23:42:36.000+08:00",
6
+ "files": [
7
+ { "path": "src/release.mjs", "sha256": "25d5f93fad51e4fa989f203281eed165829d0d7848bd5256522fc27e3fbe0953" },
8
+ { "path": "tests/release.test.mjs", "sha256": "c17086e546d1b64f5f58e3e511c0cfc734428e9b49818247e31f84c9229badcd" },
9
+ { "path": "README.md", "sha256": "8090547b60e514be6992045544524d778156afc7e002e8ad6cba0f46b1bc6303" }
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "feature": "smartgo-managed-business-profile",
4
+ "addendum": 11,
5
+ "capturedAt": "2026-08-31T23:47:01.000+08:00",
6
+ "files": [
7
+ { "path": "src/release.mjs", "sha256": "18266c490f49aae2a2c6144c94435eb0baf95846149f827a9cd36dcc714e2470" },
8
+ { "path": "tests/release.test.mjs", "sha256": "e065f3ee2ae5356a130e67e17b0f544979b0b64973fc6eb0a53d32c8356c1b3c" },
9
+ { "path": "README.md", "sha256": "1bb1a0aab9bcc49946b1c6010ea96dac02596bf340b7c899ccbc1f5a0fc85569" }
10
+ ]
11
+ }