修正(08-08-production-deployment-execution): 先验生产公网身份再冻结目录
这个提交包含在:
@@ -13,7 +13,8 @@
|
||||
```text
|
||||
候选发布来源
|
||||
-> 历史身份恢复 + refresh exact probe(只读)
|
||||
-> systemd contract / 公网 origin 精确核对(只读)
|
||||
-> systemd contract 结构读取 + 公网 origin 双取样精确核对(只读)
|
||||
-> origin PASS 后冻结 contract REMOTE_DIR 为进程基线(只读)
|
||||
-> 远端 POSTGRES_DB 只读引导(同一进程、不回显)
|
||||
-> 上游/工作区/13 项部署体检
|
||||
-> 生产 target identity(只读)
|
||||
@@ -41,13 +42,13 @@
|
||||
|
||||
### 4.1 只读身份引导
|
||||
|
||||
1. 从已审查历史提交 `34181e3` 恢复既有 `DEPLOY_SERVER`、`REMOTE_DIR`,从首次显式冻结 Compose project 的提交 `5e2d03893826` 恢复 `COMPOSE_PROJECT_NAME`;两份历史记录的 `REMOTE_DIR` 必须一致,且不输出任何字面值。
|
||||
1. 从已审查历史提交 `34181e3` 恢复既有 `DEPLOY_SERVER`,从首次显式冻结 Compose project 的提交 `5e2d03893826` 恢复 `COMPOSE_PROJECT_NAME`;不输出任何字面值。两份脚本里的 `REMOTE_DIR` 只是可被显式输入覆盖的 fallback,不作为生产目录基线。
|
||||
2. 从本机受控 SSH 配置无回显探测 refresh 候选,只有 exact forced-command `probe` 唯一 PASS 时才采用;零个或多个候选均停止。
|
||||
3. 使用恢复的部署目标只读读取受控 systemd contract,并要求 contract 的远端目录、Compose project 及其余路径合同通过 13 项既有校验;历史身份与当前 contract 不一致即停止。
|
||||
4. 从 OPS7 当前公网检查基准取得预期 HTTPS origin;只读比较远端 `.env` 和运行容器的 `APP_ORIGIN`,一致后才认为目标已被独立识别。
|
||||
5. 仅在前四步通过后,从同一远端 `.env` 读取 `POSTGRES_DB` 并在远端转换为 SHA-256 比较基线;数据库名明文不离开远端、不打印、不写文件。该基线用于后续 env、`current_database()` 和运行时 `DATABASE_URL` 三方一致性核对。
|
||||
3. 使用恢复的部署目标只读读取受控 systemd contract,先校验六项存在、路径/Compose 格式、`REMOTE_ENV_FILE` 必须位于 contract `REMOTE_DIR` 的固定相对位置、Compose file 固定且 project 与历史基线一致;此时不把历史目录 fallback 与 contract 比较。
|
||||
4. 从 OPS7 当前公网检查基准取得预期 HTTPS origin;以 contract 仅作为定位信息,只读比较远端 `.env` 和运行容器的 `APP_ORIGIN`。两个独立取样均一致后才确认目标主机,并把 contract `REMOTE_DIR` 冻结为当前进程 `EXPECTED_REMOTE_DIR`;origin 不一致时不得采信或输出该目录。
|
||||
5. 身份确认复核模式在第 4 步成功后立即停止,不读取数据库名、不进入 13 项体检或 Prisma。获得继续批准后,重新执行第 4 步,并从同一远端 `.env` 读取 `POSTGRES_DB`、在远端转换为 SHA-256 比较基线;数据库名明文不离开远端、不打印、不写文件。该基线用于后续 env、`current_database()` 和运行时 `DATABASE_URL` 三方一致性核对。
|
||||
|
||||
数据库名读取不是“连接任意目标后相信其自述”:它必须排在历史目标、远端 contract 和公网 origin 三层独立匹配之后。任一前置失败时不得读取或进入 Prisma status。
|
||||
数据库名读取不是“连接任意目标后相信其自述”:它必须排在历史 target/project、contract 结构约束和公网 origin 双取样之后。任一前置失败时不得读取或进入 Prisma status。
|
||||
|
||||
### 4.2 完整 target/pre-status
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户