后端与接口
需要直接调用 Infisical REST API…
通过 Infisical REST API 使用 machine identity Universal Auth 认证后,对 secrets、projects、environments、members、identities 执行 API 操作。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要直接调用 Infisical RES特定
解决思路
- 先做 machine identity Universal Auth 认证:向 `https://us.infisical.com/api/v1/auth/universal-auth/login` 发送 `POST`,请求体为 `{"clientId":"YOUR_CLIENT_ID","clientSecret":"YOUR_CLIENT_SECRET"}`,获取 `accessToken`、`expiresIn`、`accessTokenMaxTTL`、`tokenType`。
- 后续请求携带 `Authorization: Bearer <accessToken>`。
- 密钥操作统一使用 `/api/v4/secrets`;不要使用已废弃的 v1/v2/v3 secret endpoints。
- 项目接口使用 `/api/v1/projects`,不要使用已废弃的 `/api/v1/workspace`。
- `/api/v4/secrets` 不分页:它会返回请求路径下的每个 secret,并忽略 `offset`/`limit`;改用 `secretPath`、`recursive`、`tagSlugs`、`metadataFilter` 限定结果。
- 其他集合端点(identities、memberships、certificates)支持分页,返回 `{ <resource>: [...], totalCount: n }`。
- 选择区域:US 用 `us.infisical.com`,EU 用 `eu.infisical.com`;自托管部署替换为你的自定义域名。
- 不要使用已废弃的 service tokens;改用 machine identities。
- 处理限流:限流对自托管同样适用,不只是 cloud。实例默认每 IP:60 reads/min、200 writes/min、60 secrets-ops/min、60 auth/min;自托管管理员可修改,cloud 限制按套餐变化。收到 429 时遵循 `retry-after` 头(其中是剩余秒数,不是时间戳)。
- 批量优先于循环:使用 `POST/PATCH/DELETE /api/v4/secrets/batch`,而不是逐 secret 调用;batch delete 请求体为 `secrets: [{ secretKey }]`。
- 任何带 JSON body 的请求都添加 `Content-Type: application/json`。
- token 会在 `expiresIn` 秒后过期;长时间运行操作要实现刷新逻辑。
- Secret 操作支持全部 13 种 machine identity 认证方法:Universal、Token、Kubernetes、GCP、AliCloud、AWS、Azure、TLS Cert、OCI、OIDC、JWT、LDAP、SPIFFE。
- `viewSecretValue` 默认是 `true`;只需要 key 名称时设为 `false`。
- list secrets 的 `recursive` 参数会包含所有子目录中的 secrets。
- 除 CRUD 外,`/api/v4/secrets` 还暴露 `/move`、`/duplicate`、`/batch`(POST、PATCH、DELETE)、`/id/:secretId` 和 secret-reference tree endpoints。
- 列出项目全部 secrets:`GET 'https://us.infisical.com/api/v4/secrets?projectId=PROJECT_ID&environment=dev'`,带 `Authorization: Bearer TOKEN`;该端点不分页。
- 包含子文件夹时加 `recursive=true`:`GET 'https://us.infisical.com/api/v4/secrets?projectId=PROJECT_ID&environment=dev&secretPath=/&recursive=true'`。
- 列出 secrets 的响应是 `{ "secrets": [...], "imports": [...] }`,没有 `total`、`offset`、`limit` 键。
- 创建 secret:`POST 'https://us.infisical.com/api/v4/secrets/MY_SECRET'`,带 `Authorization: Bearer TOKEN` 和 `Content-Type: application/json`,body 为 `{"projectId":"PROJECT_ID","environment":"dev","secretPath":"/","secretValue":"super-secret-value","type":"shared"}`。
- 获取指定 secret:`GET 'https://us.infisical.com/api/v4/secrets/MY_SECRET?projectId=PROJECT_ID&environment=dev&secretPath=/'`,带 `Authorization: Bearer TOKEN`。
- 更新 secret:`PATCH 'https://us.infisical.com/api/v4/secrets/MY_SECRET'`,带 `Authorization: Bearer TOKEN` 和 `Content-Type: application/json`,body 为 `{"projectId":"PROJECT_ID","environment":"dev","secretPath":"/","secretValue":"new-value"}`。
- 删除 secret:`DELETE 'https://us.infisical.com/api/v4/secrets/MY_SECRET?projectId=PROJECT_ID&environment=dev&secretPath=/'`,带 `Authorization: Bearer TOKEN`。
- 需要进一步细节时,查阅 `references/authentication.md`(认证)、`references/secrets-endpoints.md`(secrets CRUD)、`references/projects-and-identities.md`(projects/environments/members/identities/groups/folders)、`references/pagination-and-rate-limits.md`(分页/限流/Content-Type)。
适用边界 · 注意事项
- 不适用于 CLI、SDK 或平台集成(用 `infisical-setup`),也不适用于 Terraform/HCL(用 `infisical-terraform`)。
- 不适用于人类 SAML/OIDC/LDAP 登录(用 `infisical-sso`),也不适用于角色、权限和审批策略(用 `infisical-access-control`)。
- 不适用于 KMS encrypt/decrypt/sign endpoints(用 `infisical-kms`)、certificate endpoints(用 `infisical-pki`),也不适用于 secret sync/rotation/App Connection endpoints(用对应 product skill)。