guanghu-ice-heart/modules/guanghu-panel-kit/persona-ops/persona-operations.template.md
冰朔 4d379fe46b feat(panel-kit): v1.3 哈希授权模式——服务器操作权限链 + 人格体操作手册模板
冰朔定型:人格体零密钥零token,申请→人类批准→限时哈希→凭哈希办事。
- server.js v1.3:/api/ops-request、/api/ops-decision、/api/ops-pickup、
  /api/ops-execute(root 白名单 ops-registry.json + 窄权限sudoers,笔笔留痕)
- persona-ops/persona-operations.template.md:人格体操作手册模板
  (桔子 BS-SG-002 实例首个采用,仓库写入与服务器操作双链全实测通过)
2026-08-09 21:44:21 +08:00

100 lines
4.2 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.

# 人格体操作手册模板 · <频道名>panel-kit v1.3 随附模板,部署时替换尖括号占位)
> 读者:<已登记人格体名单>
> 总原则:**你们零密钥、零 token。一切权限都是申请 → <人类责任主体>点批准 → 拿到限时哈希 → 凭哈希办事。**
> 哈希限时、过期作废、笔笔留痕。白名单之外的事,走工单等桔子。
## 一 · 操作代码仓库(写入推送)
面板入口域名:`https://<域名:HTTPS端口>`(下称 PD
**第 1 步 · 申请**(不需要任何密钥):
```
POST PD/api/access-request
{"persona":"<人格体名>","reason":"要做什么,一句话说清"}
→ 返回申请编号 AR-XXXX
```
**第 2 步 · 等<人类责任主体>批准**。面板"写入授权"卡片上看到你的申请,点"批准"。
**第 3 步 · 领取哈希凭证**(凭申请编号,仍不需要密钥):
```
POST PD/api/access-pickup
{"id":"AR-XXXX","persona":"<人格体名>"}
→ 返回 credential一串哈希+ gitUrl + 有效期3小时窗口
```
**第 4 步 · 推送**(把哈希放在 Authorization 头里,仅此而已):
```
git -c http.extraHeader="Authorization: Bearer <领到的哈希>" \
push https://<域名:HTTPS端口>/git/<操作仓owner>/<操作仓repo>.git <默认分支>
```
规则:
- 窗口 3 小时,过期哈希自动作废,重新申请
- 每笔推送过 pre-receive 自动审核:**明文密钥必拦、历史重写必拦、入口文件README.md、wake/ 三页等,按各仓实际)禁删**
- 真实令牌永不出服务器,你手里永远只有临时哈希
## 二 · 操作服务器(白名单 + 哈希)
**第 1 步 · 申请**(说清要做哪个操作、范围、原因):
```
POST PD/api/ops-request
{"persona":"<人格体名>","op":"<白名单操作名>","scope":"范围","reason":"为什么"}
→ 返回申请编号 OPS-XXXX
```
**第 2 步 · 等<人类责任主体>批准**(面板"写入授权"卡片中带【服务器操作】标记的那条,点"批准",系统生成限时哈希)。
**第 3 步 · 领取哈希**
```
POST PD/api/ops-pickup
{"id":"OPS-XXXX"}
→ 返回 credential哈希+ 可执行操作清单 + 有效期1小时
```
**第 4 步 · 执行**(只能执行白名单里的操作):
```
POST PD/api/ops-execute
{"hash":"<领到的哈希>","op":"service-status"}
→ 返回执行结果;每次执行自动留痕(谁、何时、做了什么、结果)
```
当前白名单root 持有 ops-registry.json人格体不可改桔子实例初始五项service-status / log-tail-forgejo / log-tail-panel / restart-panel / restart-forgejo各节点按自己的服务清单配
## 三 · 白名单之外怎么办(工单流)
任何不在白名单里的服务器操作(装东西、改配置、动数据):
1. 在仓库 issues 开工单:标题 `[OPS申请] 目标 / scope / 动作`
2. <人类责任主体>审查工单,评论"批准:动作清单"(或驳回/修改)
3. 凭批准评论再走 §二 申请对应权限;批准仅限当次工单列出的目标与动作
4. 执行回执回写工单 + receipts/ 存档
## 四 · 铁律
⊢ 不索要、不存储、不传递任何长期密钥/token——你只需要申请编号和临时哈希
⊢ 哈希是<人类责任主体>意志的凭证:过期作废、范围锁死、笔笔留痕
⊢ 改变服务器状态的操作必须先有备份引用和回滚方案(工单里写明)
⊢ 入口文件README.md、wake/ 三页等本仓入口)不得删除
⊢ 拿不准 → 开工单问<人类责任主体>,不擅自扩大范围
## 五 · 端点速查
| 做什么 | 端点 | 需要什么 |
|---|---|---|
| 申请仓库写入 | POST PD/api/access-request | 名字+用途 |
| 领取写入哈希 | POST PD/api/access-pickup | 申请编号 |
| 推送 | PUT PD/git/<操作仓>.git | Authorization: Bearer 哈希 |
| 申请服务器操作 | POST PD/api/ops-request | 名字+op+范围+原因 |
| 领取操作哈希 | POST PD/api/ops-pickup | 申请编号 |
| 执行白名单操作 | POST PD/api/ops-execute | 哈希+op |
| 交唤醒回执 | POST PD/api/wake-receipt | 名字+摘要 |
—— 模板出处:桔子 BS-SG-002 实例(铸渊 2026-08-09· 冰朔定型"哈希授权"模式