@crvouga/ mockingbird-service-infisical (英语)
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
A 类 阴道 通用 Auth 和 原始 秘密 表面的便携式非光学模拟器
@infisical/sdk 3.0.91 (中文(简体) ). 组织、项目环境、文件夹、权限、符号、,
秘密和历史版本共享标准SQLite状态,时钟,命名空间和时光网上.
仅使用合成固定装置.
安装
bun add @crvouga/mockingbird-service-infisical
使用量
import { InfisicalSDK } from "@infisical/sdk"
import { createServer } from "@crvouga/mockingbird-service-infisical/server"
const emulator = await createServer()
// The application's client. Only siteUrl changes.
const sdk = new InfisicalSDK({ siteUrl: emulator.url })
sdk.auth().accessToken("fixture-service-token")
const result = await sdk.secrets().listSecrets({
projectId: "fixture-project",
environment: "dev",
secretPath: "/app",
})
console.log(result.secrets.map((secret) => ({ key: secret.secretKey, version: secret.version })))
await emulator.close()
例子需要 @infisical/[email protected]SDK是一种可选的消费者依赖
模拟器的运行时间并不取决于它. 与 Universal Auth 连接的机器身份记录和
/__admin/ns/<name> 前缀在 siteUrl 给一个套件 :
import { InfisicalSDK } from "@infisical/sdk"
import { createServer } from "@crvouga/mockingbird-service-infisical/server"
const emulator = await createServer({ adminKey: "fixture-infisical-admin" })
const sdk = new InfisicalSDK({ siteUrl: `${emulator.url}/__admin/ns/test-suite` })
await sdk.auth().universalAuth.login({
clientId: "fixture-machine",
clientSecret: "fixture-client-secret",
})
const result = await sdk.secrets().listSecrets({
projectId: "fixture-project",
environment: "dev",
secretPath: "/app",
})
console.log(result.secrets.map((secret) => ({ key: secret.secretKey, version: secret.version })))
await emulator.close()
指消费者 INFISICAL_SITE_URL (或其SDK) siteUrl 配置),位于服务URL.
SDK地图 projectId 切入到 v3 线字段 workspaceId。默认树有一个 dev
环境, /, (中文(简体) ), /app 财务报告和审定财务报表 /sibling 文件夹。 默认机器允许 /app 和后代;
它的合成客户秘密是 fixture-client-secret遗产 fixture-service-token 许可
所有三个文件夹通过 sdk.auth().accessToken("fixture-service-token") 或持枪者.
不同装置的通行证 trees: ProjectTree[] 改为 createRuntime, (中文(简体) ), createServer 或者说 InfisicalAPI。 。 。 .
树名 组织、 项目和环境; 每个文件夹包含 { key, value, comment?, tags?, metadata?, version? } 秘密和可选 { environment, path } 进口.
指定机器 { id, clientSecret, grants, ttl?, maxTTL? }; 指定服务符
{ id, token, grants, expiresAt? }赠款 { projectId, environment, path, recursive?, actions? },与 read, (中文(简体) ), create 财务报告和审定财务报表 edit 行动。 路径匹配完整段 : /app 永远
匹配 /application开放行动允许所有三个。 这些固定权限的模型精确度
路径和递归子树; 供应商 CASL/ glob 政策在此片外.
供应商路线和行为
| 方法 | 路线 | 行为 |
|---|---|---|
| 邮政 | /api/v1/auth/universal-auth/login | 客户端ID/ 秘密登录; 接线符, expiresIn, (中文(简体) ), accessTokenMaxTTL |
| 邮政 | /api/v1/auth/token/renew | 在最初的最大寿命内更新活机符号 |
| 获取 | /api/v3/secrets/raw | 按项目、环境和文件夹列出;可选的递归读取、标签过滤器、导入和价值隐藏 |
| 获取 | /api/v3/secrets/raw/{secretName} | 当前或编号的历史版本;可选导入/参考扩展 |
| 邮政 | /api/v3/secrets/raw/{secretName} | 在第一版创建共享机密 |
| 帕齐 | /api/v3/secrets/raw/{secretName} | 更新或重命名; 递增版本并保存更早的值、 注释、 标记和元数据 |
列表返回 { secrets, imports },由密钥上调命令;3.x SDK使用的v3路由器有 无标记
元数据或限制/抵销参数复制创建返回供应商 400 BadRequestError, (中文(简体) ),
而不是一种捏造出的冲突状态。 保留最终值时会修剪秘密值
新线,沿着生路变换. 支持共享机器/服务访问;
个人秘密写作被拒绝. Token 过期使用被注入的仿真器时钟. 失踪/无效
令牌、拒绝许可、丢失位置/秘密、计划验证和拖延返回
供应商形状的错误信封。 位置不明的信息是故意通用的以避免
暴露固定结构. 机器代号是不透明的仿真者证书,而不是签字的JWT.
带有一个精确范围的后遗症服务标志, 覆盖呼叫者的项目/环境/路径,
遵循v3路由器;递归式服务范围保留了明确的呼叫器位置.
引用扩展支持 ${KEY} 财务报告和审定财务报表 ${environment.folder.KEY} 参考文献
同一个项目。 循环和缺失的参考文献在这一有界限的片断中仍为文字;参考了现有的
403 而不是透露其价值。 仅披露进口
信使可以读取的来源秘密。 导入后退和 SDK listSecretsWithImports
用于种子源的工作; 导入管理使用管理树控制.
管理控制和隐私
每个管理员数据需要读取/写入 x-mockingbird-admin-key。默认是明确
合成 fixture-infisical-admin; 自行提供 adminKey 当共享服务器时。 一个空的
键被拒绝。 标准健康、状态、时间线、重置、计量、请求、断层和命名空间
线路位于 /__admin· ; adminPrefix 移动完整的保留树.
| 方法 | 管理路径 | 行为 |
|---|---|---|
| 获取/后 | /project-tree | 导出元数据/ 原子种子或更新一棵树; 重播已存在的密件创建新版本 |
| 获取 | /secrets | 只保密元数据; 没有值、 注释或任意的元数据字段 |
| 邮政 | /secrets/rotate | { projectId, environment, secretPath?, secretName, secretValue }; 版本突起, 元数据响应 |
| 获取 | /tokens | 身份证、签发/过期时间、范围和吊销状态;无证书 |
| 邮政 | /tokens/{id}/expire | 在当前时钟时间过期 |
| 邮政 | /tokens/{id}/revoke | 撤销一个标志 |
| 邮政 | /machines/{id}/revoke | 撤销机器的现有令牌; 以后登录可以发布新的令牌 |
| 邮政 | /permissions/deny | 拒绝 { projectId, environment, path, recursive? } |
保密值、评论、元数据、客户秘密和信使证书被封存 AES-256-GCM (法语) 在此之前 输入任何收藏。 标准状态读取和时间线快照 包含加密字节; 服务特定管理员只读出元数据。 请求日记, 参数、日志和出错中从未包含秘密值或证书机构。 返回纯文本 只有经授权的供应商秘密行动。 这是一个测试模拟器: 呼叫者持有运行时间 对象可以访问其程序 API,并且应该信任.
加密密钥是运行时间的私密密钥,通过命名空间共享. 密封行
被绑定在公共名称空间,记录类型和版本,所以时光线分支解密它们
在不允许交叉名称空间密码文本再利用的情况下,保留了固定装置。 使用
createVaultKey() 并通过同样的 vaultKey 当打开一个持久的SQLite数据库时;
把钥匙放在序列状态之外 认证失败/ 打印不显示密封
目录。 构造器固定装置是同步密封的,因此最初的时线检查点和
重置包括整棵树.
使用命名空间 x-mockingbird-namespace, (中文(简体) ), /__admin/ns/<name>/…,或证书绘图
PUT /__admin/credentials。在一个命名空间中发布的机器令牌不能授权另一个.
预设 : rate_limited (429,重试-后 1), missing_version (404次检索), server_error (500个)
财务报告和审定财务报表 network_reset (连接滴出后再写出). 过 count: 1 为一发一发的过失.
这个地表上没有外出网点.
甲骨文证据
合同跟随官员 v3 原始机密路由器, (中文(简体) ), 原始反应计划, (中文(简体) ), 秘密行为, (中文(简体) ), 列表顺序, (中文(简体) ), 通用 Auth 路由器, (中文(简体) ), 财务报告和审定财务报表 错误处理器。 。 。 . SDK 测试执行实际 已发布 3.0.91 套件。 。 。 . 这些是源/ SDK 检查,不是活沙盒对等通过的说法.
bun run parity:service -- infisical 需求 INFISICAL_API_URL, (中文(简体) ), INFISICAL_TOKEN, (中文(简体) ),
INFISICAL_PROJECT_ID, (中文(简体) ), INFISICAL_ENVIRONMENT 财务报告和审定财务报表 INFISICAL_SECRET_PATH寒冷的跑者
对照可访问的空测试文件夹检查只读列表行为 。 它从来没有创造或
更新现场机密。 缺少证书或无法空入/无法访问文件夹出口 2 .
API 密码
主要输入运行时间出口 : InfisicalAPI, (中文(简体) ), createRuntime, (中文(简体) ), createVaultKey, (中文(简体) ), DEFAULT_TREE, (中文(简体) ),
DEFAULT_ADMIN_KEY, (中文(简体) ), INFISICAL_NAMESPACE, (中文(简体) ), INFISICAL_PRESETS, (中文(简体) ), normalizePath, (中文(简体) ), object, (中文(简体) ),
document 财务报告和审定财务报表 supportedOperationIds。 。 。 . object 安全地缩小一个未知的平面对象值.
InfisicalAPI 执行 fetch, (中文(简体) ), reset, (中文(简体) ), seedTree, (中文(简体) ), ensureSeeded, (中文(简体) ), wire, (中文(简体) ), metadata 财务报告和审定财务报表
透过 state 加号 sqlite 财务报告和审定财务报表 app。 。 。 . createRuntime 添加共享内容
摩诃萨相与管相. 公共类型包括: InfisicalAPIOptions, (中文(简体) ), InfisicalRuntime, (中文(简体) ),
InfisicalRuntimeOptions, (中文(简体) ), ProjectTree, (中文(简体) ), Grant, (中文(简体) ), SecretFixture, (中文(简体) ), SecretRecord 财务报告和审定财务报表 Token。 。 。 .
这个 /server 进口 createServer, (中文(简体) ), DEFAULT_PORT (8811个)和 serveTarget附加时
InfisicalServer, (中文(简体) ), InfisicalServerOptions(原始内容存档于2012-10-10). CLI: mockingbird-infisical serve --port 8811。 。 。 .
故意不模拟
全面非商业产品管理、供应商v4 API、用户/个人秘密所有权、批准 政策、动态/云层秘密、外部认证方法、签署的JWT核查、符号使用限制、, 周期符号模式、 IP 允许列表、 跨项目引用、 嵌入式导入图/ 复制, 全面审计记录报告、供应商ETags和网约车 就在这个小块外 安装或测试时不需要有现场秘密.