diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.8.1_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.8.1_Task_Report.md new file mode 100644 index 00000000..a2838ac5 --- /dev/null +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.8.1_Task_Report.md @@ -0,0 +1,3 @@ +# R1.8.1 任务报告 + +已纠正 PikaOA 长期参考中“生产尚未 bootstrap”的过时事实,补充 release source authority、生产 namespace、PK01 数据库、fresh initializer、公网入口及非阻塞门禁边界。新增运行面、Argo、公网、Prometheus、桌面/移动 Web 与 OTel 的最短只读验收路径,使后续同类核查无需重新搜索生产状态和入口。 diff --git a/docs/MDTODO/pikaoa-enterprise-platform.md b/docs/MDTODO/pikaoa-enterprise-platform.md index 2d5ba4c3..f8c4a36e 100644 --- a/docs/MDTODO/pikaoa-enterprise-platform.md +++ b/docs/MDTODO/pikaoa-enterprise-platform.md @@ -158,3 +158,7 @@ ### R1.8 完成 issue、MDTODO、阶段报告、post-task、已吸收 worktree 与分支清理,依赖 R1.7,完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.8_Task_Report.md)。 + +#### R1.8.1 [completed] + +更新 PikaOA 生产上线后的长期参考与最短只读验收路径,纠正“生产尚未 bootstrap”的过时事实并关联 [pikasTech/unidesk#2159](https://github.com/pikasTech/unidesk/issues/2159),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.8.1_Task_Report.md)。 diff --git a/docs/reference/pikaoa.md b/docs/reference/pikaoa.md index a9888f20..844c027d 100644 --- a/docs/reference/pikaoa.md +++ b/docs/reference/pikaoa.md @@ -11,6 +11,16 @@ - 测试 namespace 不根据 commit、instance 或任务动态生成。 - `pikaoa` 与 `pikaoa-ci` 是正式交付保护 namespace。 - 测试入口不得渲染、覆盖或删除保护 namespace 中的对象。 +- 生产运行面固定使用: + - source branch:`release`; + - consumer:`pikaoa-nc01`; + - runtime namespace:`pikaoa`; + - CI namespace:`pikaoa-ci`; + - Argo Application:`pikaoa-nc01`; + - 公网入口:`https://oa.pikapython.com`。 +- 生产交付与公网配置分别以以下 selector 为真相: + - `config/pikaoa.yaml#releaseRuntime.targets.NC01`; + - `config/pikaoa.yaml#delivery.targets.NC01`。 ## 数据库边界 @@ -122,9 +132,49 @@ - 不创建 namespace-local PostgreSQL; - 不把测试 CI/CD 变成生产交付或用户业务的阻塞门禁。 - GitOps 接管后,手动 `test-target start|stop` mutation 仅用于暂停 Argo 自动同步后的有界调试;禁止 CLI direct-apply 与 Argo 同时写入。 -- 生产 `pikaoa-nc01` 保留 `release` source authority,但当前不 bootstrap、不生成 `.tekton`、不创建 PipelineRun。 +- 生产 `pikaoa-nc01` 已完成 bootstrap: + - 产品 `release` 只生成 `.tekton/pikaoa-nc01-pac.yaml`; + - 正常 `release` PR merge 是生产 PipelineRun 的唯一触发入口; + - API、Worker、Web 并行构建并以 digest 发布到生产 GitOps branch; + - Argo Application `pikaoa-nc01` 自动同步 `pikaoa` namespace; + - 禁止人工补建 PipelineRun 代替 source merge。 +- 生产使用 PK01 host PostgreSQL 独立 `pikaoa` database/role,不使用 namespace-local PostgreSQL。 +- 生产初始化模式是 `fresh-database-only`,不实现旧数据迁移、兼容或回滚。 +- 版本、审计和配置一致性异常只产生 `blocking=false` warning,不作为 MVP 业务门禁。 - PR、构建或单测不能替代固定 NodePort 原入口验收。 +## 生产最短只读验收 + +- 先执行运行面与 Argo 对账: + + ```bash + trans NC01:k3s kubectl get deploy,pod,svc,pvc -n pikaoa -o wide + trans NC01:k3s kubectl get application -n argocd pikaoa-nc01 + ``` + +- 运行面通过判定: + - API、Web、Worker、FRPC Deployment 全部 Ready; + - Pod 全部 Running 且没有新增重启; + - 附件 PVC 为 Bound; + - Argo 为 `Synced` 和 `Healthy`。 +- 再验证公网和共享可观测性: + + ```bash + curl -fsSI https://oa.pikapython.com/ + bun scripts/cli.ts platform-infra observability metrics-query \ + --target NC01 \ + --query 'pikaoa_database_ready' \ + --full + ``` + +- 公网与可观测性通过判定: + - 公网 HTTPS 返回 200; + - 生产 API 和 Worker 的 `pikaoa_database_ready` 均为 1; + - 使用 `$unidesk-webdev` 完成管理员桌面与移动视口登录; + - 使用 `$unidesk-otel` 查询登录 `traceId`,span error 数为 0。 +- 密码只从 owning YAML 声明的 `sourceRef` 读取,禁止出现在 CLI 参数、日志、截图或任务报告中。 +- 完整身份/RBAC、严格一致性审计和附件备份增强属于独立后续任务,不阻塞上述 MVP 验收。 + ## 本地验证 - `config/fixtures/pikaoa-test-target.yaml` 只用于 renderer 和 CLI 测试。