Compose IAM U3 account directory and recovery #626
File diff suppressed because one or more lines are too long
@@ -1,5 +1,11 @@
|
||||
# U4 一次性登录凭据与认证限制(规格 v0.1)
|
||||
|
||||
> **历史规格,已由 IAM U3 r1(Documents 提交 `c236d309`)替代。** 旧管理员
|
||||
> `reset-password`、`issue-login-key` 与带初始密码的 `user create` 已关闭,
|
||||
> 不得照下文旧命令操作。新账号只经可信 owner 初始化/续办并写入保护交付文件;
|
||||
> 既有账号恢复由管理员建立无秘密提案,目标本人以既有合格密码会话确认。
|
||||
> 当前命令说明见 `scripts/svc.sh help accounts`;生产操作仍须单独批准。
|
||||
|
||||
状态:已启动实施(Backend/Dev 分支 `feature/svc-deploy-u4-login-key`)。主记录:`modules/documents/docs/proposals/2026-10-12-svc-unified-deploy-and-login-key.md` §7 U4 / §8。
|
||||
上述为历史规格状态,基础已见当前固定源码。本轮 r2 账户事务/帮助/审计增补待评审;运维打开以配套 U1 v0.2 候选和主方案 R15/U7 为准,禁止隐式 migrate。Dev gitlink 未推进本轮 Documents 候选。
|
||||
本增量在 **Backend**(及必要迁移/CLI)落地;Frontend 兑换与设密页属 **U5**,但 U4 须提供稳定 HTTP 合同供 U5 接线。
|
||||
|
||||
+1
-1
@@ -571,7 +571,7 @@ scripts/svc.sh -h # 同上
|
||||
scripts/svc.sh --help # 完整帮助(全部命令/参数/约束)
|
||||
scripts/svc.sh help # 分主题清单
|
||||
scripts/svc.sh help <主题> # 主题详解:model deploy lifecycle accounts db dbops config recovery examples safety
|
||||
# accounts:实例绑定账户 CLI(create/list/reset-password/issue-login-key/revoke-login-key/bootstrap-admin)
|
||||
# accounts:实例绑定账户 CLI(create/initialize-account/list/revoke-login-key/bootstrap-admin)
|
||||
```
|
||||
|
||||
`agent-system` 的账户命令仍接受 `--dsn` 和 `--password`,并在 stderr 打印弃用警告。
|
||||
|
||||
+1
-1
Submodule modules/frontend updated: 1650b4fff0...6db528df10
+18
-8
@@ -206,7 +206,7 @@ svc.sh 分主题帮助(scripts/svc.sh help <主题>;完整 --help;文档 d
|
||||
deploy 部署:三来源(local/dev@sha/release@v)、--pick、--dry-run、static --dir
|
||||
plugins 编译插件:--with、交互勾选、登记表、激活与换集合门禁
|
||||
lifecycle 生命周期:start/stop/restart/logs/status、set 变更、rm 注销
|
||||
accounts 账户 CLI:create/list/reset-password/issue-login-key/revoke-login-key/bootstrap-admin
|
||||
accounts 账户 CLI:create/initialize-account/list/revoke-login-key/bootstrap-admin
|
||||
rdm-admin RDM 域管理员台账:查看 / 受信移交(锁死恢复通道)
|
||||
db 数据库服务:create/start/dsn/ls/set(换端口)
|
||||
dbops 数据库运维:backup/backups/restore/clone/copy
|
||||
@@ -448,16 +448,16 @@ EOF
|
||||
- 与启停互斥(lifecycle flock);无 flock 时拒绝
|
||||
- mock 档不支持;PG 档须有有效 DSN/dbref
|
||||
|
||||
六个子命令(经 scripts/svc.sh <env> user … 转发到实例二进制):
|
||||
scripts/svc.sh <env> user create --owner <id> [--role user|admin] [--password …]
|
||||
五个子命令(经 scripts/svc.sh <env> user … 转发到实例二进制):
|
||||
scripts/svc.sh <env> user create --owner <login> [--role user|admin] --out <0600新文件>
|
||||
scripts/svc.sh <env> user initialize-account --user-id <稳定ID> --expected-state-version <版本> --expected-generation <代数> --out <0600新文件>
|
||||
scripts/svc.sh <env> user list
|
||||
scripts/svc.sh <env> user reset-password --owner <id> [--password …]
|
||||
scripts/svc.sh <env> user issue-login-key --owner <id> [--purpose activate|recover]
|
||||
scripts/svc.sh <env> user revoke-login-key --id <key-id>
|
||||
scripts/svc.sh <env> user bootstrap-admin --owner <id> [--password …]
|
||||
scripts/svc.sh <env> user bootstrap-admin --owner <login> --out <0600新文件>
|
||||
|
||||
凭据只在 stdout 展示一次;日志与 history 只记凭据 ID。后端原子开户/改密/审计
|
||||
补齐见 Documents 方案 U7(本帮助主题不替代该增量)。
|
||||
旧 reset-password、issue-login-key 与带初始密码建号已关闭;本人恢复走管理员提案、
|
||||
目标本人已有可信密码会话确认。凭据只写新建的 0600 交付文件,不回显 stdout。
|
||||
本帮助描述 U3 代码契约;真实账号操作与生产切换须另行授权。
|
||||
更完整说明:docs/svc.md、docs/svc-deploy/u1-instance-account-binding.md
|
||||
EOF
|
||||
return 0 ;;
|
||||
@@ -2443,11 +2443,21 @@ materialize_release() {
|
||||
# 调用 ENV_BIN 对应版本。拒绝调用方覆盖 --data/--dsn/--open-existing。
|
||||
agent_do_user() {
|
||||
local a
|
||||
case "${1:-}" in
|
||||
reset-password|issue-login-key)
|
||||
c_err "[$ENV_NAME] RECOVERY_CONTRACT_REPLACED:旧账号重置/签发入口已关闭;使用本人确认的恢复提案"
|
||||
return 2 ;;
|
||||
esac
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--data|--dsn|--open-existing|--data=*|--dsn=*|--open-existing=*)
|
||||
c_err "[$ENV_NAME] 账户操作禁止覆盖存储绑定(勿传 --data/--dsn/--open-existing;由实例 manifest 决定)"
|
||||
return 2 ;;
|
||||
--password|--password=*|--generate-password|--generate-password=*)
|
||||
if [ "${1:-}" = create ]; then
|
||||
c_err "[$ENV_NAME] RECOVERY_CONTRACT_REPLACED:本地建号只发可信激活能力,不接受初始密码"
|
||||
return 2
|
||||
fi ;;
|
||||
esac
|
||||
done
|
||||
svc_lock wait || { c_err "[$ENV_NAME] 无法获取生命周期锁(账户操作与启停互斥)"; return 1; }
|
||||
|
||||
Reference in New Issue
Block a user