Wiki 文档中的秘密
使用秘密引用替换记忆或知识卡片当前正文中的已知密码或令牌。文档保留 {{secret:API_KEY}} 等标记,同一保险库中的加密凭据保存其值。当前读取、搜索和 MCP 不会展开该标记。
此功能需要更新的 CLI/守护进程或移动应用。在同步带引用的文档前更新所有客户端:旧客户端无法解码新的内容字段。参见安全边界和验证结果。
替换秘密
启动守护进程并解锁资料库。使用列表或搜索返回的保险库和文档短 ID。替换前在同一终端运行 sudo:
memories sudo
memories memory protect-secret VAULT_ID DOCUMENT_ID API_KEY
对于知识卡片,使用:
memories card protect-secret VAULT_ID CARD_ID API_KEY
CLI 会提示输入确切秘密且不回显。不要将秘密放入参数或引用名中。替换区分大小写并按字面匹配;不使用正则表达式。当前正文中所有不重叠的匹配都会被替换。例如,包含两次相同合成令牌的正文会变为:
API_KEY={{secret:API_KEY}}
Authorization: Bearer {{secret:API_KEY}}
成功时,在普通 JSON 响应中返回文档 id、新 credential ID 和 replacements 数量。凭据创建和文档替换一起提交;被拒绝的操作不会保存其中任何一项修改。
在移动应用中,打开记忆/卡片菜单,选择保护文档中的秘密,确认历史记录警告,输入引用名,然后在隐藏字段中输入秘密。出现提示时完成密码授权。
引用名包含 1-64 个 ASCII 字母、数字、下划线或连字符,且必须在文档中尚未使用。每个文档最多包含 64 个引用。替换需要本地 sudo 和保险库写权限。以下情况会被拒绝:
- 秘密为空或未出现在当前正文中。
- 名称无效、已经映射,或其标记已出现在正文中。
- 秘密也出现在标题、标签、来源等元数据中,或会残留在新标记中,或改变已有引用标记。
- 文档存在未解决的版本冲突,或结果内容超过其大小或引用限制。
重试之前,应从元数据中移除已暴露值并解决冲突。这些编辑同样会保留签名历史版本。
复制当前值
复制需要本地 sudo。对于文档引用,即使只有一个引用,也要提供其标签。对于凭据或受保护卡片,使用其自身 ID:
memories sudo
memories credential copy VAULT_ID DOCUMENT_ID --label API_KEY
memories credential copy VAULT_ID CREDENTIAL_ID
memories credential copy VAULT_ID PROTECTED_CARD_ID
CLI 写入系统剪贴板,只输出复制状态("copied": true)。经过身份验证的本地客户端接收明文以执行复制。通用凭据读取和导出仍不可用,MCP 无法执行替换或复制,即使拥有写授权也不例外。
在移动应用中,从文档、受保护卡片或凭据菜单选择复制秘密。文档需选择引用名,确认剪贴板警告,并在提示时完成授权。应用显示成功但不显示值,进入后台或锁定后会丢弃迟到响应。
受保护账号和令牌卡片复制存储的密码或令牌。env 卡片复制存储的 dotenv 文本。OTP 卡片复制其 Base32 种子;生成当前一次性验证码请使用独立的 OTP 操作。剪贴板复制仅接受 UTF-8 文本,并拒绝包含 NUL 字节的凭据。
| 平台 | 剪贴板要求 |
|---|---|
| Windows CLI | 原生 Windows 剪贴板访问 |
| macOS CLI | CLI 环境中可用的 pbcopy |
已设置 WAYLAND_DISPLAY 的 Linux CLI |
wl-copy 和 Wayland 会话访问权限 |
| 其他 Linux CLI | xclip 和 X11 剪贴板访问权限 |
| 移动端 | 通过 Flutter 使用平台剪贴板 |
Linux 根据 WAYLAND_DISPLAY 选择辅助程序;不会从 wl-copy 自动回退到 xclip。辅助程序缺失或剪贴板不可访问会导致命令失败。服务在将值发送给客户端之前记录交付意图,因此仅有该审计条目并不能证明剪贴板成功。
编辑、同步与限制
文档的类型化 secrets 映射将标签绑定到凭据 ID。手动输入标记不会创建凭据或授予访问权限。普通编辑必须保留已有映射;CLI 和移动编辑器会保留它。目前 MCP card_write 工具不携带该映射,因此通过它更新带秘密引用的卡片会被拒绝。这些卡片应使用 CLI 或移动编辑器处理。从正文移除标记不会删除映射或凭据。
引用解析当前凭据值。要更新它,使用返回的凭据 ID 执行已授权的凭据替换命令,例如 memories credential add VAULT_ID API_KEY --id CREDENTIAL_ID,该命令会提示隐藏输入。文档标记保持相同。这会更改存储值;提供商侧密钥轮换必须单独执行。
加密同步时,文档和凭据随其保险库一起传输。独立备份恢复会为无歧义资产保留引用;仅限设备的保险库仍不参与同步和备份。删除被引用的凭据或使其处于冲突状态,会阻止通过该引用复制。
替换只更改当前正文。先前的签名修订、恢复归档、现有备份、其他文档和共享副本可能保留原始秘密。已暴露的密钥应通过其签发方撤销或轮换。
剪贴板内容可能在锁定后保留,并可能被其他应用、剪贴板历史或操作系统同步读取或保留。使用后请清空剪贴板;应用不保证擦除剪贴板。