@crvouga/mockingbird-service-vanta (英语)
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
WIP 管理 Vanta OAuth, 标注遵守记录, 证据元数据和下船.
安装
bun add @crvouga/mockingbird-service-vanta
使用量
import { createServer } from "@crvouga/mockingbird-service-vanta/server"
// Test setup: a local Vanta. Its URL replaces https://api.vanta.com in the application.
const server = await createServer()
const baseUrl = server.url
// Application code: the request it sends to Vanta.
const response = await fetch(`${baseUrl}/v1/people?pageSize=10`, {
headers: { authorization: "Bearer mock_vanta_token" },
})
const { results } = await response.json()
console.log(results.pageInfo)
await server.close()
运行 mockingbird-vanta serve --port 12129 输入 http://localhost:12129 作为
消费者的API起源. 不存在通用的万塔SDK环境变量;
被请求的消费者使用原始获取。 全权证书和记录只是合成的.
合同
POST /oauth/token: JSON客户端 具有客户端 id,客户端 秘密和范围的证书. 默认客户端: 模拟 read / 模拟 read secret (读范围), 模拟 write / 模拟 write secret (阅读、写作和文件:上载)。 托肯持续一个小时; 为客户端刻出另一个符牌 撤销其先前的标志。 模拟 vanta token 是一个种子写客户无记名符号.GET /v1/people, (中文(简体) ),/v1/tests, (中文(简体) ),/v1/controls, (中文(简体) ),/v1/documents:结果.数据和结果.pageInfo, pageSize (1-100, 默认为 10), pageCursor. 跟踪 endCursor , 而有 NextPage 是真实的 . Fixture 插入顺序稳定;资源 ids 作为不透明的光标.GET /v1/people/{personId}, (中文(简体) ),/v1/documents/{documentId}: 由 id 所引出种子资源字段.POST /v1/documents/{documentId}/uploads: 多段文件外加可选描述 有效数据。 返回201个上传的文件元数据。 只保留元数据/字节长度, 从来没有证据字节。 需要文档:上载范围 .POST /v1/documents/{documentId}/submit:需要等待上传和写入范围; 返回时 204 (韩语),标记待上传,文档上传状态确定。 形式 管理 Vanta OpenAPI 指定 204; 向导的 200 例没有被遵循 .POST /v1/people/offboard: 更新 [] 包含id和识别符. 回返 200 与 命令每人SUCCES/错误结果。 只有具有种子资格的FORMER人员 旗帜( 监视账户) 活动、 自定义任务完成) 和已知的识别器成功 . 失败的项目保持不变。 成功项目在任务摘要中披露OffBOARDING COMPLETE; a 单独的登入录入记录确认器和完成时间.
读取呼叫需要全部: 读取范围, 提交/卸载所有: write, 以及上传文档: 上载
(每个前缀梵行. 丢失/无效/过期的无资源代币归还
Unauthorized 与应用程序/json内容类型相匹配,匹配一个未经认证的活探测器.
消费者不能假定每个错误体都是可解析的JSON. 其他有记录的故障类别
使用状态加信息,带有决定性的模拟信息,而不是确切的供应商措辞.
控制和证明
种子客户端,人,文档,测试和通过构建器选项控制. 共享
/__admin/state/{collection} 也暴露出道具,上传,资格和下船.
Token 过期At,文档元数据,提交的资格和上传的旗帜是可以配置的.
共享时钟,时间线/shot,重置,断层和仅限元数据期刊适用. 重置还原
构造器固定装置。 命名空间载体:信头、绘图无记名标志, /__admin/ns/{name}。 。 。 .
设置管理前缀以移动所有控件 .
预设: 未经授权的 once, rate 有限, 服务器 错误, 上传 失败, 提交 失败和 连接( D). 共同过失规则支持延迟。 此子集不需要 Webhook .
测试涵盖所有问题 # 270 通过原始获取、 每个人的资格、 范围和符号
撤销,只处理多段元数据,命名空间/重置,失败并服务HTTP.
自平覆盖每次生成的 JSON 操作;多段上传有明确接受
测试. bun scripts/parity.ts --unauthenticated 核实观察到的非JSON 401;通过
没有真正的证书。 可选的只读 pagination-envelope 探测器需要 VANTA ACCESS TOKEN
并且没有运行。 Oracle:官方管理Vanta OpenAPI和认证文档.
故意不模拟
实际雇员下机、账户/整合任务引擎、证据字节/下载、信任中心 UI, 浏览器 OAuth/ 更新, 自动合规评价, 完整的供应商资源计划, 列表 过滤表达式和活配额核算. 种植消费者读取的田地;藏品 在不捏造遵守结论的情况下重复这些结论。 资格标志是明确的测试控制, 不取代真实账户的停用。 不需要真正的房客突变.
API 密码
VantaAPI:获取API,重置和收藏.createRuntime: 共享名称空间/admin/hour/过失合同.VANTA_NAMESPACE, (中文(简体) ),VANTA_SCOPES, (中文(简体) ),VANTA_PRESETS:服务常数.document, (中文(简体) ),operationIds, (中文(简体) ),supportedOperationIds:生成合同元数据.createServer, (中文(简体) ),serveTarget, (中文(简体) ),DEFAULT_PORT从./server:节点服务器和CLI目标.
公共类型:资源、客户端、托肯、上传、资格、VantaAPI选项、操作 爱德, 支持OperationId; VantaServer options and VantaServer from./ server.