feat: vault core/CLI/workbench, vaultd token path, filetree view-state cleanup
Land password-vault dedicated workbench and mnote-vault-core/CLI, agent token read path design, vault transport split, and retire obsolete filetree smokes. Ignore local vault reimport scripts that trip secret scanners.
This commit is contained in:
+48
-35
@@ -1,53 +1,66 @@
|
||||
---
|
||||
name: mnote-vault
|
||||
description: >
|
||||
MNote AI 密码本(多 agent 唯一策略)。登录优先 mnote.vault.login(复用/刷新 session);
|
||||
取密 mnote.vault.resolve;禁扫 .mnote/vault 文件。Cloudflare 时人机验证后 session 回写。
|
||||
MNote AI 密码本(多 agent 唯一策略)。读密与 login/session:mnote-vault CLI + capability token(不依赖 mnote-web)。
|
||||
禁扫 .mnote/vault 文件。
|
||||
---
|
||||
|
||||
# MNote 密码箱 / AI 密码本
|
||||
|
||||
**SSOT**:`/home/lix/.agent-infra/vault-policy.md`
|
||||
**SSOT**:`/home/lix/.agent-infra/vault-policy.md`
|
||||
**设计**:`design/12-vault/process/12-2-vaultd-local-token-agent-read-path-v1.md`
|
||||
|
||||
## 稳态:登录(目标约 3 次 shell:鉴权 + list? + login×2)
|
||||
## 读密稳态(P0 · 不依赖 mnote-web)
|
||||
|
||||
```
|
||||
# 本机 mnote-web 鉴权(一次性,非 vault)
|
||||
eval $(node scripts/mnote-vault-cli.js auth-e2e)
|
||||
二进制:`rust/target/debug/mnote-vault`(或 `cargo run -p mnote-vault --`)。
|
||||
|
||||
# 可选 list 找 id;已知 id 则跳过
|
||||
node scripts/mnote-vault-cli.js list
|
||||
```bash
|
||||
# 一次(人 / 安装):签发 token
|
||||
cargo run -q -p mnote-vault --manifest-path rust/Cargo.toml -- issue-token --agent paseo --ttl 90d
|
||||
|
||||
# 核心:复用 session / 登录并保存
|
||||
node scripts/mnote-vault-cli.js login --id <id>
|
||||
# 再调一次应 reused=true
|
||||
|
||||
# Cloudflare:人验证后
|
||||
node scripts/mnote-vault-cli.js session --id <id> --cookie '...'
|
||||
# Agent 每次(已知 id)
|
||||
export MNOTE_VAULT_TOKEN_FILE="${MNOTE_VAULT_TOKEN_FILE:-$HOME/.config/mnote/vault-tokens/default.token}"
|
||||
mnote-vault list
|
||||
mnote-vault resolve --id <id> --field password
|
||||
# 管道只要明文:
|
||||
mnote-vault resolve --id <id> --field password --raw
|
||||
```
|
||||
|
||||
Pi:`mnote.vault.login` / `session` 同语义。
|
||||
|
||||
**禁止**每次:读 policy、猜 /api/auth 路径、list+resolve+多次 chrome 试错。
|
||||
|
||||
| 工具 | 用途 |
|
||||
| 命令 | 用途 |
|
||||
|------|------|
|
||||
| `mnote.vault.login` | **首选**:复用/刷新登录态 |
|
||||
| `mnote.vault.session` | 人机验证后回写 Cookie |
|
||||
| `mnote.vault.list` / `get` | 选型;L0 无密文 |
|
||||
| `mnote.vault.resolve` | 仅当需要密码本身(非登录会话) |
|
||||
| `doctor` | workspace / token / hmac 状态(无明文) |
|
||||
| `issue-token` | 签发 capability token(**不是** master key) |
|
||||
| `whoami` | 当前 token claims |
|
||||
| `list` / `get` | L0 选型;无密码明文 |
|
||||
| `resolve` | **唯一取密**;审计无 value |
|
||||
| `login` | 复用未过期 session,或 api_first 出站登录并写回 session |
|
||||
| `session` | 浏览器/人机验证后回写 Cookie(不启 3000) |
|
||||
| `serve` | 可选 UDS vaultd;CLI 默认 sock→内嵌 fallback |
|
||||
|
||||
HTTP/CLI 同语义:`/api/vault/ai/items/{id}/login|session`、`scripts/mnote-vault-cli.js login|session`。
|
||||
**禁止**:为读密 / login / session 去 `auth-e2e` / 起 3000 / 用 cookie 调 `/api/vault/ai/*`。
|
||||
`scripts/mnote-vault-cli.js` 的 web 路径仅调试 UI。
|
||||
|
||||
## 登录稳态(P1d · 同样不依赖 mnote-web)
|
||||
|
||||
需要外站 cookie 时:
|
||||
|
||||
```bash
|
||||
# 优先复用已有 session(无 HTTP 出站)
|
||||
mnote-vault login --id <id>
|
||||
|
||||
# human_required / CF:chrome-bridge 登录后回写
|
||||
mnote-vault session --id <id> --cookie-header 'name=value; …' --source human_bridge
|
||||
|
||||
# 强制重新 api_first 登录(忽略未过期 session)
|
||||
mnote-vault login --id <id> --force-refresh
|
||||
```
|
||||
|
||||
- `resolve` / `session` 写盘:本地 `.mnote/vault/**`(core)。
|
||||
- `login` 的 `api_first` 仅对目标站出站 HTTP;**不**经 mnote-web。
|
||||
- Cloudflare / captcha → `mode=human_required` + `humanInstructions.cli`,完成后 `session` 回写。
|
||||
|
||||
## 硬规则
|
||||
|
||||
1. 禁 file/local_file 扫 `.mnote/vault/**`
|
||||
2. 聊天不贴 password/cookieHeader
|
||||
3. 长期态存在 **AI 密码本条目**(session + playbook),不另建文件池
|
||||
4. 人机验证:本机 **chrome-bridge** / 远程 **Paseo 浏览器** → `session` 回写;过期再验证
|
||||
|
||||
## 工作流
|
||||
|
||||
1. 用户共享条目到 AI 本(自动带默认 playbook:email 优先 + api_first)
|
||||
2. Agent:`login(id)`
|
||||
3. 用返回 cookie 访问站点;或 human_required 后等人回写再 `login`
|
||||
1. 禁 file 扫 `.mnote/vault/**`
|
||||
2. 聊天不贴 password / cookie / token
|
||||
3. Token `0600`;故障先 `issue-token`,不要默认起 3000
|
||||
|
||||
Reference in New Issue
Block a user