Skip to content

228: [P0] R-103 文档口径收口:清除「无登录、无鉴权」+ first-run 章节 + 配置字典 - #247

Open
micln wants to merge 1 commit into
masterfrom
agent/228
Open

micln wants to merge 1 commit into
masterfrom
agent/228

Conversation

@micln

@micln micln commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

做了什么

对应 issue #228(R-103)。纯文档批次,零代码改动。

  1. 旧口径清零(验收 1):9 处过期表述逐条改为「账号体系已具备;AUTH_ENFORCE=off(默认)时资源端点仍可匿名访问,对外暴露务必设 on」并回链 first-run / 配置字典。验收命令 grep -rnE "无登录、无鉴权|无登录态|待账号体系" docs/ README.md docker-compose.allinone.yml .env.example 返回空(issue 里列的 docs/pitfalls.md:76 文件已不存在,实际为 9 处)。
  2. README「第一次启动会发生什么」(验收 2,8 行):建管理员(日志 token / env 无头)→ 载示例 / 上传 / 连库 → 拖图 → 加同事 → 收紧口径与备份链接。
  3. 新增 docs/getting-started/first-run.md(验收 3):首启向导、bootstrap 两条路径、加同事(/api/users 管理员端点)、忘记口令 = 已知边界(ADMIN_RESET_TOKEN 补设即开、单次有效、20200、单人部署处置)、「刷新是否掉登录」口径(token 只存内存,R-93/[P0] R-93 前端身份壳:登录页与路由守卫 / 刷新不掉登录 / 未认证与越权分档 #218 跟进)。
  4. 配置字典补齐(验收 4):AUTH_ENFORCE / AUTH_RATE_LIMIT_PER_MINUTE / ADMIN_USERNAME / ADMIN_PASSWORD / ADMIN_RESET_TOKEN / LOG_LEVEL / HEALTH_DETAIL 七项逐条写默认值、留空语义、重启要求;CORS 行删掉「平台 API 无登录态」。HOST_BIND 留给 219: compose 默认只绑环回 + HOST_BIND 显式放开 #239 自己的条目,避免重复。
  5. 「鉴权开放口径」成表(验收 5,configuration.md §3.1):永久匿名白名单 / 会话端点 / on 态强制清单,与 R-92(issue [P0] R-92 资源端点强制鉴权渐进开关:AUTH_ENFORCE 三态(off/shadow/on)+ 路由分类守卫 #217)的路由分类规格同源;表内注明守卫测试语义。
  6. CHANGELOG 未发布段(验收 6):非破坏性默认值逐项列出、compose 只绑环回作为⚠️行为变更显式标注、迁移水位(00013 一层)、「登录了但资源仍匿名」收口说明。

怎么做 / 事实来源

本批 env 分三类来源,PR 合入顺序须与实现同批(issue 原文要求):

事实 来源
ADMIN_* 三件套、bootstrap token 语义、recover-admin 20200 PR #240(R-91)diff 逐条核对
/api/users 管理员端点(建号/重置/禁用) PR #232(R-86)diff
LOG_LEVEL、JSON 日志、stdout PR #241(R-96)diff
HEALTH_DETAIL、/health/detail 404 语义、/version PR #242(R-100)diff
AUTH_ENFORCE 三态 + 永久白名单清单 issue #217 规格(R-92 尚无 PR,配置字典已加「同批发布说明」标注未合入前设置无效)
AUTH_RATE_LIMIT_PER_MINUTE 默认 10 issue #203 规格(R-87 尚无 PR,同上标注)

测试证据

  • 验收 grep 零命中(rc=1)✅
  • 全部改动文件的 markdown 相对链接可达检查通过(脚本核对,broken: none)✅;docs/AGENTS.md 文档清单无死链 ✅
  • 纯 .md + .env.example 注释 + compose 注释改动,不触任何运行时代码 —— 无后端/前端测试面,浏览器 E2E 不适用(无 UI 行为变化);冒烟形态由 make serve 现状保证。

评审需留意

  1. ⚠️ PR 216: 首管 bootstrap 与管理员恢复(R-91) #240 与 202: [P0] R-86 最小用户管理:管理员建号/重置口令/禁用 + 鉴权开放口径写明 #232 各带一个 backend/migrations/00013_*.sql(版本号撞车):合入这批时需要重排其中一个,本 PR 的迁移水位措辞已写「以最终合入为准」。
  2. AUTH_ENFORCE / AUTH_RATE_LIMIT_PER_MINUTE 两个条目按已批准的规格([P0] R-92 资源端点强制鉴权渐进开关:AUTH_ENFORCE 三态(off/shadow/on)+ 路由分类守卫 #217/[P0] R-87 认证端点限流与失败锁定(#75 的收窄切片) #203)先行成文,对应实现合入后若语义/默认值有出入,以实现为准改回本字典。
  3. README 指向 docs/deployment/backup-restore.md 的备份链接改成了文字提示(该文件在 227: R-102 备份 / 升级 / 回滚最小可用(backup-restore.md + backup.sh + upgrade.sh) #245 里,先行合入会成死链)。

- 清零 9 处过期口径(quick-start/docker/compose/.env.example/configuration/
  production/troubleshooting/architecture/dev-setup),统一改为
  「账号体系已具备;AUTH_ENFORCE=off(默认)时资源端点仍可匿名,对外暴露务必设 on」
- 新增 docs/getting-started/first-run.md(bootstrap 两条路径 / 加同事 /
  忘记口令恢复通道 / 刷新掉登录口径);README 增「第一次启动会发生什么」
- configuration.md 补 7 个新变量条目 + 「鉴权开放口径」表(与 R-92 路由分类同源)
- CHANGELOG 增未发布段:非破坏性默认值 + compose 只绑环回行为变更 + 迁移水位
- docs/AGENTS.md 索引补 first-run.md;全仓相对链接可达检查通过
@micln micln added the needs-review Agent 已提交 PR,等待评审 Agent 做 Review + E2E label Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review Agent 已提交 PR,等待评审 Agent 做 Review + E2E

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant