# Secret 生命周期治理

- 范围：跨服务管理员凭据、API key、session secret、数据库凭据及其他 Secret 的归属、分发、轮换、运行面验收、旧源清理和审计能力。
- 唯一真相：owning YAML 的 `sourceRef`、`sourceKey`、`targetKey` 与领域受控 CLI；禁止从 Kubernetes Secret、Pod env、日志或数据库反解本地来源。
- 安全输出：只披露路径、键名、presence、fingerprint、字节数、job/trace/artifact ID 和状态，必须保持 `valuesPrinted=false`。
- 关联入口：[YAML-first 参考](../reference/yaml-first-ops.md)、[统一管理员密码技能](../../.agents/skills/unidesk-secret/SKILL.md)。
- 关联问题：[HWLAB production 独立运行面 #2010](https://github.com/pikasTech/unidesk/issues/2010)、[HWLAB production source artifact #2212](https://github.com/pikasTech/unidesk/issues/2212)。


## R1

建立跨服务 Secret 归属与分类模型，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R1_Task_Report.md)。

### R1.1

盘点 Secret 类别、owner、生命周期和现有 sourceRef，输出不含值的归属图并标注管理员凭据、API key、session secret、数据库凭据和外部 token 的边界，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R1.1_Task_Report.md)。
### R1.2

定义 env、raw-file、结构化文件与 transform 的 sourceKey/targetKey 合同，变化项全部由 owning YAML 表达，禁止代码隐藏默认值和运行面反解，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R1.2_Task_Report.md)。
### R1.3

建立重复来源、服务级管理员密码和未受控 Secret 路径的静态发现入口，输出 presence、fingerprint 与整改归属，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R1.3_Task_Report.md)。
## R2

实现 YAML-first Secret 分发与轮换闭环，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R2_Task_Report.md)。

### R2.1

实现从 owning YAML 发现目标矩阵的一次调用 plan/status 入口，避免手工维护 scope/target 清单并保持 valuesPrinted=false，依赖 R1，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R2.1_Task_Report.md)。
### R2.2

统一异步 sync job 的 job ID、终态、Secret apply、consumer rollout 和失败层级摘要，禁止把 queued 或 apply 成功冒充整体完成，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R2.2_Task_Report.md)。
### R2.3

定义轮换、回退和部分失败语义，只允许从受控 sourceRef 重发，不从 Kubernetes Secret、Pod env、日志或数据库回填，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R2.3_Task_Report.md)。
## R3

建立运行面 Secret 生效与只读登录验收，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R3_Task_Report.md)。

### R3.1

实现跨产品只读管理员登录 typed smoke，覆盖 PikaOA、SelfMedia、HWLAB 与 ApiState 的 YAML target，并关联 https://github.com/pikasTech/unidesk/issues/2352，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R3.1_Task_Report.md)。
### R3.2

定义已部署、未部署、disabled、入口不可达和认证失败的实际存在矩阵，Secret 预置不得冒充业务入口生效，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R3.2_Task_Report.md)。
### R3.3

建立登录 smoke 的有界 HTTP/DOM、network mutation、截图和报告证据，除登录外不得产生写请求，依赖 R2，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R3.3_Task_Report.md)。
## R4

治理旧 Secret 来源清理与迁移审计，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R4_Task_Report.md)。

### R4.1

实现按文件或 env key 精确清理旧 Secret 来源的受控入口，保留同文件内用户名、API key、session secret 和其他非目标凭据，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R4.1_Task_Report.md)。
### R4.2

清理后自动重跑 YAML 目标 plan，要求 missingKeys 为空、统一来源存在且旧 sourceRef 不再被要求，依赖 R2，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R4.2_Task_Report.md)。
### R4.3

建立孤立 Secret 文件、过期 env key、不可见字符文件名和重复 fingerprint 的审计与迁移报告，不读取或打印值，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R4.3_Task_Report.md)。
## R5

固化 Secret 工具入口、可观测性与长期知识，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R5_Task_Report.md)。

### R5.1

以 unidesk-secret skill 作为统一管理员密码专用入口，以 YAML-first reference 作为通用 Secret 权威规则，合并重复说明并删除过时命令，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R5.1_Task_Report.md)。

### R5.2

为每次 Secret 轮换记录 owning YAML、job/trace/artifact ID、rollout、登录矩阵、清理项和 valuesPrinted=false，不记录可复制凭据，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R5.2_Task_Report.md)。

### R5.3

验证同类任务可用一次目标发现、一次分发终态汇总和一次只读登录矩阵完成，量化并消除重复 plan/status 与临时脚本调用，依赖 R1-R4，完成任务后将详细报告写入[任务报告](./details/secret-lifecycle-governance/R5.3_Task_Report.md)。
