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:
@@ -215,6 +215,20 @@ passwordHint: "Li@[A]***"
|
||||
email: alice@example.com
|
||||
apikey: ""
|
||||
token: ""
|
||||
# 站内多账号(折叠组);顶层 username/password 为 accounts[0] 镜像
|
||||
accounts:
|
||||
- id: acc_...
|
||||
label: work
|
||||
username: alice
|
||||
email: alice@example.com
|
||||
password: <example-template>
|
||||
passwordHint: "Li@[A]***"
|
||||
# 附录密钥(API Key / Token);顶层 apikey/token 为首个同类镜像
|
||||
secrets:
|
||||
- id: sec_...
|
||||
kind: apikey
|
||||
label: personal-token
|
||||
value: ""
|
||||
tags: [work, github]
|
||||
fields:
|
||||
otp_issuer: GitHub
|
||||
@@ -403,9 +417,14 @@ P0 UI 必须有回收站 tab(非「以后再说」)。
|
||||
- **存储**:条目里保留模板原文;**reveal** 时展开为明文 `value`,并可选返回 `template` / `usedCipherKeys` / `missingCipherKeys`。
|
||||
- L0 list 仅返回 keys + `hasValue`,**永不**投影片段明文。
|
||||
|
||||
2. **同站多账号**
|
||||
- **不**对 `url` 做唯一约束;同一 URL 可对应多条 credential(不同 username)。
|
||||
- UI:详情提供「同站新账号」预填 url/folderPath;列表 meta 展示 username 区分。
|
||||
2. **站内多账号 / 多密钥(推荐,取代「同站新账号」拆条)**
|
||||
- 一条 credential = 一个站点/服务(左栏一条)。
|
||||
- **`accounts[]`**:每组可折叠包含 `username` / `email` / `password` / `passwordHint`(+ 可选 `label`);UI 用 **+ 账号** 新增组。
|
||||
- **`secrets[]`**:附录 API Key / Token / other(`kind` + `label` + `value`);UI 用 **+ 密钥** 新增。
|
||||
- 顶层 `username`/`password`/`apikey`/`token` 仍保留为 **primary 镜像**(首账号密码、首个 apikey/token),供 AI `resolve`/`login` 兼容。
|
||||
- `reveal` 支持 `accountId`(密码)与 `secretId`(附录密钥)。
|
||||
- **不再提供**详情「同站新账号」按钮(多账号应写在同一条目内)。
|
||||
- 兼容:同 URL 仍允许多条 credential(历史数据);列表 meta 展示 `N 账号` / `N 密钥`。
|
||||
|
||||
3. **分组折叠(folderPath)**
|
||||
- 逻辑字段 `folderPath`(如 `个人/银行/招商`),**不是** vault 下真实子目录。
|
||||
@@ -413,9 +432,9 @@ P0 UI 必须有回收站 tab(非「以后再说」)。
|
||||
- 条目文件仍平铺在 `entries/{id}.md`。
|
||||
- **表单 UX(已落地)**:下拉选择已有 `folderPath` + 文本直接输入新路径(无弹窗、无空组、无「在此新建」);组随条目出现。
|
||||
|
||||
4. **同站 URL 折叠**
|
||||
4. **同站 URL 折叠(历史兼容)**
|
||||
- 同一 `folderPath` 节点下,**相同非空 url 且 ≥2 条** 时,再包一层可折叠「站点组」。
|
||||
- 单条 URL 不额外包组;无 url 条目平铺。
|
||||
- 新录入应优先合并到 `accounts[]`/`secrets[]`,避免同站拆多条。
|
||||
|
||||
5. **共享到 AI 密码本**
|
||||
- `POST /api/vault/items/{id}/share-to-ai`:把条目(含 secret 模板)**复制/更新**到目标 actor 的 managed 默认工作区 vault。
|
||||
@@ -689,6 +708,7 @@ fn is_vault_sensitive_relative_path(rel: &str) -> bool {
|
||||
- **已落地**:`list_ai` / `get_ai` / `resolve` API;Pi `mnote.vault.list|get|resolve`(默认 allow,plan 模式 resolve deny);receipt 脱敏 value;`scripts/mnote-vault-cli.js`。
|
||||
- transcript:agent 应使用 `transcriptHint`(已解析 field),不把 value 贴进聊天。
|
||||
- skills:`skills/mnote-vault` + 全局 symlink + capability pack。
|
||||
- **演进(读密 transport,未实现)**:策略语义不变;agent 读密改走本地 **vaultd + capability token**、**不依赖 mnote-web**。见 `design/12-vault/process/12-2-vaultd-local-token-agent-read-path-v1.md`。
|
||||
|
||||
#### P2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user