Files
junhong_cmp_fiber/openspec/specs/system-operations/spec.md
2026-09-10 10:53:07 +08:00

56 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 系统运行与配置当前行为
## Purpose
描述健康检查、受控系统配置和全局操作密码的当前行为。
## Requirements
### Requirement: 健康检查响应语义
系统 SHALL 让公开 `/health` 固定返回统一成功响应及 `healthy`,让公开 `/ready` 固定返回统一成功响应及 `ready`;当前可达入口不检查 PostgreSQL 或 Redis。
#### Scenario: 依赖状态不参与健康响应
- **GIVEN** 应用能够处理 HTTP 请求
- **WHEN** 调用 `/health``/ready`
- **THEN** 系统分别返回 `healthy``ready`,响应不包含 PostgreSQL 或 Redis 的探测结果
### Requirement: 受控系统配置更新
系统 SHALL 只允许超级管理员更新已注册且非只读的配置 Key系统先在事务外完成权限、注册、只读和值校验再在同一事务内持久化配置并写成功审计可审计失败通过独立失败接缝记录敏感值查询时以已配置占位符返回。
#### Scenario: 更新只读或未注册配置
- **GIVEN** 配置 Key 未注册、只读或值不符合注册规则
- **WHEN** 超级管理员请求更新
- **THEN** 系统拒绝更新并保留原数据库事实;可审计失败按当前接缝记录
### Requirement: 上下文健康检查证据链完整
系统 SHALL 将当前主 Specs 的每一条 Requirement 与一条可追溯证据记录及至少一个已证实入口关联。证据记录与入口关联的 Requirement 集合 MUST 分别和主 Specs Requirement 集合双向一致;证据不足时健康检查 MUST 失败,而不得以假定的实现路径补齐。
#### Scenario: 主 Spec Requirement 缺少证据
- **WHEN** 主 Specs 中存在 Requirement但证据记录或入口矩阵未链接该 Requirement
- **THEN** 上下文健康检查失败并阻止将验证基线宣告为健康
#### Scenario: 补齐已实现 Requirement 的证据
- **WHEN** 每条 Requirement 均有经源码、迁移、配置或既有验证输出直接证明的证据记录和入口关联
- **THEN** 上下文健康检查的证据链与入口矩阵覆盖检查通过,且不改变业务接口、数据或运行行为
## 可达操作索引
本节只用于入口导航,不是行为 Requirement业务义务以上述 Requirements 为准。
### 系统配置
`GET /api/admin/system-configs`(查询受控系统配置);`PUT /api/admin/system-configs/{key}`(更新受控系统配置)。
### 超级管理员
`POST /api/admin/super-admin/operation-password`(设置/修改全局操作密码);`GET /api/admin/super-admin/operation-password/status`(查询操作密码是否已设置)。
### 系统
`GET /health`(健康检查);`GET /ready`(就绪检查)。