Enforce system-managed settings scope with admin system settings API #188

Merged
weichen merged 3 commits from feature/rdm-increment-settings-duties into main 2026-10-13 04:29:25 +00:00
Owner

P2(提案 r1 §2,Agent-System-Documents PR #93):设置归属与服务端权限——

  1. models.(主/轻量/Embedding/Rerank 全部项)、tools.tavily.、telemetry.*、runtime.mock/rateLimitPerMin/redisAddr 标记为系统受管(SettingDesc.Scope=system,Core 0f94e4b0)。
  2. user/project 层写入触碰受管路径整笔拒绝(嵌套、点路径、祖先标量子树覆盖三种形式均拦),HTTP 返回 400 并点名路径。
  3. 生效链 defaults → system(启动注入) → system(管理员落库) → user → project;user/project 层存量受管覆盖被剥除不再生效(读面同样不回显)。
  4. 新增 GET/PUT /api/settings/system:认证档要求基座管理员(fail-closed),无认证单机档本机即管理员;系统层密钥经既有 secrets 迁移挂系统行,SecretLookup 增系统回退。
  5. svc.sh 播种改走系统面(模型/Tavily 均为受管项);认证档无管理员时明确跳过而非回落普通账号。

Why: 界面显示、保存结果与实际执行一致的第一层——受管项只有管理员一个写入面。
Evidence: go test ./... 全绿;覆盖三种触碰形式拒绝、系统层生效、读面剥除、双面掩码不泄漏、认证档 admin 门(普通 403/admin 200);测试基建 mock seed 迁系统层。
Impact: 既有 user 层 models 覆盖不再生效(存量值保留待 P8 迁移);svc 播种语义变更;deps/agent-system-core pin → 0f94e4b0。
Refs: Agent-System-Dev .task/feature-rdm-increment-settings-duties.md(需求 R1)

P2(提案 r1 §2,Agent-System-Documents PR #93):设置归属与服务端权限—— 1. models.*(主/轻量/Embedding/Rerank 全部项)、tools.tavily.*、telemetry.*、runtime.mock/rateLimitPerMin/redisAddr 标记为系统受管(SettingDesc.Scope=system,Core 0f94e4b0)。 2. user/project 层写入触碰受管路径整笔拒绝(嵌套、点路径、祖先标量子树覆盖三种形式均拦),HTTP 返回 400 并点名路径。 3. 生效链 defaults → system(启动注入) → system(管理员落库) → user → project;user/project 层存量受管覆盖被剥除不再生效(读面同样不回显)。 4. 新增 GET/PUT /api/settings/system:认证档要求基座管理员(fail-closed),无认证单机档本机即管理员;系统层密钥经既有 secrets 迁移挂系统行,SecretLookup 增系统回退。 5. svc.sh 播种改走系统面(模型/Tavily 均为受管项);认证档无管理员时明确跳过而非回落普通账号。 Why: 界面显示、保存结果与实际执行一致的第一层——受管项只有管理员一个写入面。 Evidence: go test ./... 全绿;覆盖三种触碰形式拒绝、系统层生效、读面剥除、双面掩码不泄漏、认证档 admin 门(普通 403/admin 200);测试基建 mock seed 迁系统层。 Impact: 既有 user 层 models 覆盖不再生效(存量值保留待 P8 迁移);svc 播种语义变更;deps/agent-system-core pin → 0f94e4b0。 Refs: Agent-System-Dev .task/feature-rdm-increment-settings-duties.md(需求 R1)
weichen added 2 commits 2026-10-13 04:20:20 +00:00
Why: P2——模型、密钥、Tavily、遥测与运行基础设施属系统受管项;user/project 层须整笔拒绝(含嵌套、点路径与子树覆盖),生效链剥除存量覆盖,管理员经新系统面统一配置。
Evidence: go test ./... 全绿;settings 单测覆盖嵌套/点路径/祖先标量拒绝、系统层生效、读面剥除;server e2e 覆盖 400/系统面读写/掩码;认证档 admin 门测试(普通 403、admin 200、密钥不泄漏)。
Impact: settings.go 受管标记与 mergeScope 拦截、Effective 增系统层、server 新增 GET/PUT /api/settings/system(无认证档本机即管理员)、SecretLookup 系统行回退、插件 schema 受管注入;测试基建 mock seed 与三处用例迁到系统层;svc.sh 播种改走系统面(仅 admin,无管理员时明确跳过)。Core gitlink 升至 9150e6f。
Refs: modules/documents/docs/proposals/2026-10-13-rdm-settings-members-duties-perms-increment.md P2
Point core pin at merged main 0f94e4b0
ci / vet-and-test (pull_request) Successful in 42s
386afcd4a6
Why: Core PR #30 合入后按 pin 级联惯例把嵌套 pin 对准组件 main 合入提交。
Evidence: go test ./internal/settings/ ./internal/server/ 全绿。
Impact: 仅 gitlink 指针调整(同一能力内容,9150e6f 为其祖先)。
weichen added 1 commit 2026-10-13 04:23:02 +00:00
Merge origin/main into feature/rdm-increment-settings-duties
ci / vet-and-test (pull_request) Successful in 1m2s
496c784213
weichen merged commit 76c75ce50c into main 2026-10-13 04:29:25 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Backend#188