SuperAPI AI 工具集

instabox-basic-setup

部署与运维

查看项目

更新于 10-27 11:35

技能介绍

用途

instabox-basic-setup 用于把用户本地已有的凭据与个人开发配置,整理并导入 InstaBox 的指定组织(org)和沙箱。覆盖三类内容:令牌、Git 配置、编辑器与终端配置。

主要能力

  • 令牌(Tokens):以组织级加密 key=value Secret 形式保存,每个令牌可单独选择投递模式——proxy 模式在允许的主机上提供 HTTPS 头部替换占位符,适用于客户端在 443 端口把值原样放入 HTTPS 头部的场景;env 模式把真实值注入指定沙箱的环境变量,适用于原生数据库协议、本地签名、Git 凭据编码交换等需要真实值的场景。
  • Git 配置:.gitconfig、.config/git/config、全局 gitignore 等,复制到所选沙箱的 home 目录。
  • 编辑器与终端:.vimrc、不含插件检出的 nvim 配置、.tmux.conf 等。

配置文件在复制前会经过改写:本机 HOME 路径替换为 /data/home,移除识别出的凭据行,注释掉 macOS 专用行和不支持的签名/SSH 改写;疑似含凭据的结构化配置会被拒绝而非原样复制。这种过滤是尽力而为,不保证任意配置绝不含凭据。

使用方式

流程分四步,需在同一个 shell 会话中执行(或每段重新定义 S、W、ORG_ID):

  1. 扫描并选择组织:运行 instabox whoami、instabox org ls --json 选择自己拥有或管理的组织,并用 scan.mjs 生成只读清单(仅输出名称、来源位置、大小和手动配置要求,不输出凭据值)。
  2. 生成计划:用 plan.mjs write 生成可编辑的计划,按需重复 --sandbox 指定目标,或省略以仅保存 Secret 而不授权沙箱。计划中的复选框行必须保持原格式,每个 env 行保留其 Delivery 行,否则严格解析器会拒绝。
  3. 先干跑后应用:push.mjs --dry-run 读取已批准的凭据源并准备过滤后的配置,但不写入 InstaBox;确认元数据后再正式执行。push 前会校验组织归属、目标组织、Secret ID 与版本、输入限额和总配额。
  4. 验证与报告:用 instabox secrets show 和静默的存在性检查确认,绝不打印变量值;报告保存的 Secret 名称与模式、选择发生变化的沙箱、复制的配置路径、失败项和手动步骤。

本地清单 ~/.config/instabox-basic-setup/pushed.json 只记录组织 ID、Secret ID/版本/模式与已复制路径,不保存值,也不跨组织授予复用权限。

适用场景

希望把自己的令牌、dotfiles、Git 配置带入 InstaBox 沙箱,并让团队内多个沙箱共享组织级凭据,或为特定沙箱准备一致的编辑器/终端环境的用户。

限制与注意事项

  • 保存 Secret 值需要组织 owner/admin 登录;API Key 只能读元数据,不能导入值。
  • 若 Secret 路由返回 404,或 instabox usage --json .limits 中 orgSecrets: false,说明服务器未配置 Secret 管理,需回退到旧版 Vault(instabox vault ...)。
  • 复制配置要求沙箱正在运行;环境变量投递到已停止沙箱需等下次启动,运行中的进程需重新加载环境或重启。
  • env 模式的值可被沙箱代码读取,并可能残留在进程、文件或快照中,取消选择无法回收。
  • 更新已有 Secret 会影响所有已获授权使用它的沙箱;单独保存 env Secret 而不指定目标不产生任何授权。
  • 该技能不迁移仓库或对话历史,也不处理 shell 别名、SSH 密钥、云凭据文件、智能体登录数据库和仓库。
  • 脚本会在内部读取凭据,输出仅限名称、大小和结果;不得打印凭据值、shell 启动文件或 gh auth token 输出。
  • 无回滚保证:失败运行会报告部分结果,已成功保存的 Secret 仍保留在组织中。