Repository navigation
ToAPI v0.3.0 — 跨部门互传与 AI 可调用面
本版重点:跨部门互传与 AI 可调用面
v0.2.0 打通了 Postman 资产与数据驱动回归;这一版把"给别人用"和"给 AI 用"补齐。(Postman 的 B3/B4 顺延为 v0.4.0/v0.5.0,见 23 号文档 §2。)
.tapi 单文件互传(08 号文档)
- 导出:整个项目或指定集合子树 → 一个格式化 JSON 的
.tapi文件;集合树、脚本、提取器、伪装、鉴权逐字段带上;未识别字段留在库内不丢。 - 敏感变量:默认剔除(
value置空 +redacted: true),可选明文携带(文件头标contains_secrets);加密携带尚未实现,UI 只给两个选项。 - 导入:先预览(版本是否支持、校验和、集合/接口/环境/全局变量计数、被剔除的密钥数、同名项目提示),再选策略 —— 新建项目(同名自动加「(2)」)或合并进现有项目;接口按「方法 + URL + 名称」判重,可选跳过 / 覆盖 / 保留两份;全程一个事务,失败整体回滚;校验和不匹配直接拒绝导入(UI 禁用导入按钮)。
- 入口:项目右键「导出为 .tapi… / 导入 .tapi…」、集合右键「导出该集合为 .tapi…」、GUI 对话框(选文件或粘贴),以及
toapi run project.tapi(CI 直接把用例集导入临时库跑完即弃)。
AI / 程序可调用面(11 号文档)
- Local HTTP API:
http://127.0.0.1:4730(端口可配),端点与工具一一对应(/v1/projects、/v1/api、/v1/env、/v1/send、/v1/run、/v1/history、/v1/skill、/v1/tapi、POST /mcp),载荷与 IPC 同构;状态码401/403/429/400/404。 - 内嵌 MCP Server:15 个工具(读项目结构、发请求、跑 Runner 含数据驱动迭代、取环境与历史、设运行时变量、导出
.tapi、取 SKILL.md);stdio 用toapi mcp --db <toapi.db>(纯 Node,不需要 Electron),Streamable HTTP 复用POST /mcp。 - 调用密码闸门:库内只存
salt + scrypt派生值,明文永不落库;未设密码时开关打不开,弱口令(<8 位)被拒;「生成」出的新密码只在一次返回值里出现。闸门链固定顺序:开关与密码 → 限流 → 客户端授权 → host 白名单 → 执行 → 脱敏 → 审计。 - 授权条与审计:外部客户端首次连接时 GUI 弹底部授权条(可展开"将交付的说明书摘要"),60s 无操作按拒绝;host 不在项目环境声明清单内要单独确认(无界面模式直接拒绝);每次调用(含失败)写
external_call_log,设置面板可回看;secret 变量在任何通道、任何响应文本里都以***出现。 - SKILL.md:
toapi_get_skill/GET /v1/skill直接返回给 AI 看的说明书(frontmatter + 环境 + 链式调用顺序 + 接口清单 + 断言建议 + cURL/JS/Python 示例),只列敏感变量名绝不给值。
全局搜索与单独重命名
- 命令面板(
Ctrl+K)即搜索入口:跨项目命中项目 / 接口 / 集合 / 环境,匹配范围包含接口名称、方法与 URL,回车直接跳转(切项目 + 打开接口)。 - 项目 / 集合 / 接口都能在树里右键重命名(
RenameDialog,Enter 提交、Esc 取消);重命名当前打开的接口只同步编辑器草稿,不会冲掉未保存改动;接口名与 URL 相互独立。
验证(实测,不是声明)
npm run gate:typecheck(tsc ×2)+ eslint + prettier --check + 48 invoke / 4 event 通道契约一致 + 21 个测试文件 / 200 项测试全绿(v0.2.0 起新增 48 项)。- 新增用例:
tests/unit/flow/data-file.test.ts(11)、tests/unit/cli/*(15)、tests/integration/flow/data-driven.test.ts(10,真实靶场逐条比对落线查询串)、tests/integration/cli/run.test.ts(7,runCli端到端 + 三种报告 + 退出码 0/1/2 +.tapi直跑)、tests/unit/tapi/format.test.ts(7)、tests/integration/tapi/roundtrip.test.ts(17,导出/预览/导入/篡改拒绝/合并判重)、tests/unit/open/params.test.ts(6)、tests/integration/open/channels.test.ts(18,真实监听端口 + 真实靶场:401/429/host 闸门/脱敏/MCP 会话/审计/SKILL.md)。 npm run verify:flow:CDP 驱动真机 Electron,退出码 0 —— 数据行「CSV · 2 行 · 迭代 2 次」与 2 个轮次标记、.tapi导入 Toast 与新项目入树、篡改校验和被禁用、按 URL 搜到接口、按名称搜到项目、重命名「查订单V2」后 URL 不变、开放调用面板未设密码时开关被锁而设密码后解锁、片段回显127.0.0.1:4730;两轮 console 错误 0。- 打包冒烟:
node scripts/smoke-package.mjs out/win-unpacked/ToAPI.exe→verdict: PASS(握手 v0.3.0、标题栏 46px / 3 按钮、LOGO 加载、三面板 14px、svgIcons=12、emojiInDom=0、页面错误 0)。 - 未做代码签名:NSIS 安装器的 SmartScreen 提示属预期。
已知边界(本版不含,见 11 号文档 §9 / 08 号文档 §9)
.tapi 加密携带与案例字段、Skill 包写盘与右键导出目录、Runner 并发排队与 BUSY、MCP 流式(SSE)、拖文件进窗口导入。
产物
| 文件 | 说明 |
|---|---|
ToAPI-Setup-0.3.0-win-x64.exe |
NSIS 安装器(未签名) |
ToAPI-0.3.0-win-x64.zip |
便携版 |
sha256sums.txt |
校验和 |