Skip to content

凭据金库(Vault) ​

凭据金库是 Sigil 的核心。所有 Token、密码、私钥都在这里集中托管,明文不出本机。

设计目标 ​

  • 明文不进文件系统:写入瞬间就交给 OS 密钥环
  • 明文不进 UI:录入后再也看不到原始值
  • 明文不进日志:所有日志路径都经过脱敏
  • 明文不进网络:除非是你主动调用的能力执行所需

凭据类型 ​

类型适用平台必填字段特殊校验
github_tokenGitHubToken前缀 ghp_ / github_pat_
gitee_tokenGiteeToken长度校验
gitcode_tokenGitCodeToken长度校验
gitlab_tokenGitLab(含自建实例)Token / 实例地址长度校验
http_api任意 HTTP 服务基地址 / Header 名 / KeyURL 格式
s3_compatibleCloudflare R2 / MinIO / 腾讯云 COS / 阿里云 OSS / AWS S3Endpoint / Access Key / Secret / Region字段格式校验
maven_centralSonatype Central Portal命名空间 / Portal 账号口令 / GPG 密钥与口令字段完整性
code_signingWindows 与 macOS 签名签名身份 / 证书 / 各类口令字段完整性
mqtt_broker自建或云 MQTT broker主机 / 端口 / TLS / 账号口令连接可达性(可测)
mail_authcode邮箱(授权码登录)邮箱 / 授权码 / 服务器收发可达性(可测)
mail_oauth邮箱(OAuth 登录,如 Outlook)授权后自动续期授权流程内校验
generic_password通用密码、许可证、Wi-Fi 口令密码(可带网址 / 备注 / TOTP 种子)强度提醒
custom自定义结构JSONJSON Schema 校验(可选)

每种类型决定了它能被哪些能力使用。平台还会被自动推断 —— 比如调 git_repo_list 时传一条 gitee_token 凭据,Sigil 就知道该打 Gitee 的接口,你不必再指定平台。

存了什么,AI 才看得到什么

金库里没存某类凭据时,对应的那组工具不会出现在 AI 的工具列表里。 详见 MCP Server · 按凭据渐进披露。

存储结构 ​

┌─────────────────────────────────────────────┐
│ Vault 一条记录                               │
├─────────────────────────────────────────────┤
│ id              uuid                        │
│ name            "github-personal"           │
│ type            "github_token"              │
│ tags            ["dev", "readonly"]         │
│ ciphertext_ref  "sigil_cred_xxxxx"  ─────┐  │
│ created_at      2026-05-29T10:00:00Z     │  │
│ updated_at      2026-05-29T10:00:00Z     │  │
│ last_used_at    2026-05-29T10:32:11Z     │  │
│ expires_at      2026-06-28T10:00:00Z     │  │
│ scope_policy    {whitelist: [...]}       │  │
└──────────────────────────────────────────┼──┘
                                           ↓
                          OS 密钥环(Windows 凭据管理器)
                          ┌─────────────────────────────┐
                          │ Service: com.agilefr.sigil  │
                          │ Account: sigil_cred_xxxxx   │
                          │ Secret:  AES-256-GCM 密文    │
                          └─────────────────────────────┘

SQLite 里只有元数据 + 一个指向密钥环条目的引用。即使 SQLite 文件被人复制走,也得不到明文(密钥环密文 + AES 主密钥都不在文件系统里)。

使用控制(Scope Policy) ​

每条凭据可以配置"哪些能力可以用我":

全部能力(默认) ​

最宽松。任何能力调用时都可能命中这条凭据。适合个人开发、信任 AI 客户端的场景。

白名单 ​

只允许指定能力使用。最常用:

github-personal(只读 Token)
  ├ ✅ git_commits_list  允许:查提交 / 分支 / tag
  ├ ✅ http_request     允许:调用 GitHub REST API
  └ ❌ 其他能力          禁止

黑名单 ​

允许大部分能力,禁止个别。典型场景:

github-prod(生产仓库的 GitHub Token)
  ├ ❌ git_repo_delete      禁止:这条凭据永远不用来删仓库
  ├ ❌ git_push             禁止:只读侦查,不许改动远端
  └ ✅ 其他能力              允许(列仓库、查提交、看 CI 都放行)

Scope Policy 在每次能力调用前由 Sigil 强制校验。客户端无法绕过——它根本不知道有没有这道闸门。

标签策略 ​

标签是组织凭据的轻量工具。建议双维度:

  • 环境:prod / staging / dev / local
  • 身份:personal / work / client-xxx

搜索框(Vault 列表顶部)支持按"名称 + 标签"模糊匹配。当凭据超过 30 个时,标签的价值开始显现。

生命周期管理 ​

事件Sigil 行为
距过期 7 天首页右上角铃铛提醒
距过期 1 天红色高亮 + 列表置顶
已过期默认禁用(仍可手动延期)
过期 30 天建议删除提示
90 天未使用标记为"可能闲置"

Sigil 不会自动轮换 Token——每家服务商的 Token 生成 API 都不一样,自动化需要单独适配。Sigil 的定位是提醒 + 协助,由你手动到源头重置。

批量导入 ​

设置 → 数据导入 支持从以下来源批量导入:

来源说明
GitHub CLI (gh auth)扫描 ~/.config/gh/hosts.yml
.env 文件解析 KEY=value 行,预览后用户挑选
Sigil 备份文件(.sigil-backup)跨机器迁移

导入过程:

  1. 解析候选 Token 列表(不立即落库)
  2. 用户在 UI 里勾选要导入的项 + 重命名 + 调整标签
  3. 确认后批量加密落库

源文件(如 .env)不会被 Sigil 修改或删除。

删除是不可逆的 ​

删除一条凭据时:

  1. 清除 OS 密钥环中对应密文
  2. 清除 SQLite 元数据
  3. 不进回收站

如果这条凭据正在被某些能力配置引用(比如自定义 HTTP 模板默认用它),删除时会先提示并要求重新关联。

没有"找回"机制——这是设计。需要的话,用 导出 提前备份。

备份与迁移 ​

导出 ​

设置 → 数据导出:

  • 选择凭据范围(全部 / 按标签 / 按类型)
  • 输入主密码(用户自定义,不和 OS 密钥环挂钩)
  • 生成 .sigil-backup 文件(PBKDF2 + AES-256-GCM 包裹)

主密码不在备份文件里,需要你单独记住。

导入 ​

新机器装好 Sigil → 设置 → 数据导入 → 选 .sigil-backup → 输入主密码 → 凭据进金库。

跨平台 ​

备份文件格式是与 OS 无关的——Windows 上导出的文件可以在 macOS 上导入(当 macOS 版本上线后)。

下一步 ​

若依科技工作室 · 承接后台管理 / 桌面软件 / 全栈 / 小程序定制开发 · 技术服务咨询