Vault API

2026-10-20

Vault API

(待译)

Vault stores write-only credentials through /vault/v1, with a compatibility face at /anthropic/v1/vaults. Concepts and behavior follow Anthropic vaults (credential collections, write-only values, rotation and archival), so Anthropic experience applies. Differences: native secrets use names and static/oauth kinds; native OAuth uses authorizations, while compatible mcp_oauth creation and updates return 501; explicit allowed_hosts are required, with no unrestricted mode; Agent sessions reject nonempty vault_ids, so vault-backed MCP authentication is unavailable; application vault references return 501, including praxis_vault_ref bindings and secret writes with a vault source. Metadata labels do not attach credentials to either resource. Start with praxis.vault.vaults.create to create the containing vault.

用 API Key 作为 Bearer 凭据,通过以下地址管理库与 Secret。Secret 的值只写,任何接口都不会返回。

https://api.deepraxis.ai/vault/v1

指南 →

资源路径
库/vault/v1/vaults
Secret/vault/v1/vaults/{vault_id}/secrets
模板/vault/v1/templates
一键授权/vault/v1/authorizations

Secret 可以用名字或 vsec_ 开头的 ID 寻址。列表用 cursor 与 limit 翻页(limit 默认 50,最大 200),返回的 next_cursor 为 null 表示没有后续页。

同一批库也可以通过 Claude 托管智能体的凭据库接口访问:Claude 托管智能体

错误码

库

创建和管理库,检查可用状态,并查询不含 Secret 值的审计事件。

指南 →

基础地址与鉴权

审计事件按时间倒序列出,可用 secret 按名称或 ID 过滤;未知 Secret 返回空列表。limit 默认 50、最大 200;超限或无效 cursor 返回 400 INVALID_PARAMS。事件没有按天自动过期的保留期;归档保留事件,删除库或 Secret 会清除其历史事件,仅保留删除记录。

列出库

GET /vault/v1/vaults

参数位置说明
cursorquery上一页返回的 next_cursor。
limitquery每页条数。 (默认: 50) (1–200)
include_archivedquery是否包含已归档的条目。 (默认: false)

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
dataVault[]是条目数组
data[].idstring是对象标识符
data[].type"vault"是对象类型
data[].display_namestring是显示名称,1–255 个字符
data[].metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
data[].status"active" / "archived"是状态
data[].secret_countinteger是有效 Secret 数
data[].needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
data[].created_atdate-time是创建时间
data[].updated_atdate-time是更新时间
data[].archived_atdate-time / null是归档时间;未归档时为 null
next_cursorstring / null是下一页游标;没有后续时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/vaults" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

创建库

POST /vault/v1/vaults

请求体

字段类型 / 枚举必填说明
display_namestring是显示名称,1–255 个字符
metadataobject否自定义标签最多 16 对,键最长 64 字符,值最长 512 字符

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault"是对象类型
display_namestring是显示名称,1–255 个字符
metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
status"active" / "archived"是状态
secret_countinteger是有效 Secret 数
needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"display_name":"Agent credentials"}'

检查库

POST /vault/v1/vaults:check

请求体

字段类型 / 枚举必填说明
vault_idsstring[]是要检查的库 ID

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
dataobject[]是条目数组
data[].vault_idstring是库 ID
data[].status"ok" / "not_found" / "archived"是状态

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults:check" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"vault_ids\":[\"${VAULT_ID}\"]}"

读取库

GET /vault/v1/vaults/{vault_id}

参数位置说明
vault_idpath库 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault"是对象类型
display_namestring是显示名称,1–255 个字符
metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
status"active" / "archived"是状态
secret_countinteger是有效 Secret 数
needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

更新库

POST /vault/v1/vaults/{vault_id}

参数位置说明
vault_idpath库 ID。

请求体

字段类型 / 枚举必填说明
display_namestring否显示名称,1–255 个字符
metadataobject否按键合并:字符串写入,null 删除,省略的键保留;自定义标签最多 16 对

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault"是对象类型
display_namestring是显示名称,1–255 个字符
metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
status"active" / "archived"是状态
secret_countinteger是有效 Secret 数
needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"metadata":{"team":"growth"}}'

删除库

DELETE /vault/v1/vaults/{vault_id}

参数位置说明
vault_idpath库 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_deleted"是对象类型

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
curl -X DELETE "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

归档库

POST /vault/v1/vaults/{vault_id}/archive

参数位置说明
vault_idpath库 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault"是对象类型
display_namestring是显示名称,1–255 个字符
metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
status"active" / "archived"是状态
secret_countinteger是有效 Secret 数
needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/archive" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

查看事件

GET /vault/v1/vaults/{vault_id}/events

参数位置说明
vault_idpath库 ID。
secretquerySecret 名称或 vsec_ 开头的 ID。
cursorquery上一页返回的 next_cursor。
limitquery每页条数。 (默认: 50) (1–200)

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
dataVaultEvent[]是条目数组
data[].iduuid是对象标识符
data[].type"vault.created" / "vault.updated" / "vault.archived" / "vault.deleted" / "vault_secret.created" / "vault_secret.updated" / "vault_secret.archived" / "vault_secret.deleted" / "vault_secret.used" / "vault_secret.refreshed" / "vault_secret.refresh_failed" / "vault_authorization.completed" / "vault_authorization.failed" / "vault_authorization.expired"是对象类型
data[].secret_idstring / null是关联的 Secret ID;未关联时为 null
data[].secret_namestring / null是关联的 Secret 名称
data[].atdate-time是事件或错误发生时间
data[].detailobject / null是事件详情,不含 Secret 值;更新事件的 changed 列出变更字段
data[].detail.changedstring[]否本次更新的字段名,例如 value、allowed_hosts
next_cursorstring / null是下一页游标;没有后续时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/events" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

Vault

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault"是对象类型
display_namestring是显示名称,1–255 个字符
metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
status"active" / "archived"是状态
secret_countinteger是有效 Secret 数
needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

VaultPage

字段类型 / 枚举必填说明
dataVault[]是条目数组
data[].idstring是对象标识符
data[].type"vault"是对象类型
data[].display_namestring是显示名称,1–255 个字符
data[].metadataobject是自定义标签最多 16 对,键最长 64 字符,值最长 512 字符
data[].status"active" / "archived"是状态
data[].secret_countinteger是有效 Secret 数
data[].needs_reauthorization_countinteger是续期失败、需要重新授权的 OAuth Secret 数
data[].created_atdate-time是创建时间
data[].updated_atdate-time是更新时间
data[].archived_atdate-time / null是归档时间;未归档时为 null
next_cursorstring / null是下一页游标;没有后续时为 null

VaultEvent

字段类型 / 枚举必填说明
iduuid是对象标识符
type"vault.created" / "vault.updated" / "vault.archived" / "vault.deleted" / "vault_secret.created" / "vault_secret.updated" / "vault_secret.archived" / "vault_secret.deleted" / "vault_secret.used" / "vault_secret.refreshed" / "vault_secret.refresh_failed" / "vault_authorization.completed" / "vault_authorization.failed" / "vault_authorization.expired"是对象类型
secret_idstring / null是关联的 Secret ID;未关联时为 null
secret_namestring / null是关联的 Secret 名称
atdate-time是事件或错误发生时间
detailobject / null是事件详情,不含 Secret 值;更新事件的 changed 列出变更字段
detail.changedstring[]否本次更新的字段名,例如 value、allowed_hosts

Secret

添加、导入和更新 Secret;值只写,校验与续期仅用于 OAuth Secret。

指南 →

基础地址与鉴权

导入同名 Secret 只替换值;只有该行自己的 allowed_hosts 才能改变原域名,顶层默认域名不覆盖已有域名。新建行优先使用该行域名,否则使用顶层默认域名。逐行失败在 HTTP 200 的 failed 中返回(包括 SECRET_TOO_LARGE、VAULT_LIMIT_EXCEEDED、INVALID_PARAMS),其它行仍然写入。用非法名称查找 Secret 返回 404 SECRET_NOT_FOUND。

列出 Secret

GET /vault/v1/vaults/{vault_id}/secrets

参数位置说明
vault_idpath库 ID。
cursorquery上一页返回的 next_cursor。
limitquery每页条数。 (默认: 50) (1–200)
include_archivedquery是否包含已归档的条目。 (默认: false)

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
dataSecret[]是条目数组
data[].idstring是对象标识符
data[].type"vault_secret"是对象类型
data[].vault_idstring是库 ID
data[].namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
data[].kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
data[].allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
data[].descriptionstring / null是备注;更新时 null 清除,省略则保留
data[].metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
data[].status"active" / "refreshing" / "refresh_failed" / "archived"是状态
data[].oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
data[].oauth.expires_atdate-time / null是过期时间
data[].oauth.last_refreshed_atdate-time / null是最近一次续期时间
data[].oauth.next_refresh_atdate-time / null是下次计划续期时间
data[].oauth.scopestring / null是授权范围
data[].oauth.last_errorobject / null是最近一次续期失败
data[].oauth.last_error.codestring是稳定的错误码
data[].oauth.last_error.messagestring是可读的错误说明
data[].oauth.last_error.atdate-time是事件或错误发生时间
data[].versioninteger是值每次变化时递增
data[].last_used_atdate-time / null是最近一次被使用的时间
data[].created_atdate-time是创建时间
data[].updated_atdate-time是更新时间
data[].archived_atdate-time / null是归档时间;未归档时为 null
next_cursorstring / null是下一页游标;没有后续时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

添加 Secret

POST /vault/v1/vaults/{vault_id}/secrets

参数位置说明
vault_idpath库 ID。

请求体

字段类型 / 枚举必填说明
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
valuestring是Secret 的值,只写,不会返回;最大 16 KiB
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null否备注;更新时 null 清除,省略则保留
metadataobject否自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
template_id"github" / "openai" / "anthropic" / "stripe"否仅支持 static 模板 ID;记录为 metadata.template
kind"static"否只能为 static;OAuth Secret 通过一键授权创建

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
SECRET_CONFLICT409创建时名称已占用;更换名称或更新已有 Secretvalidation_failurenone否
VAULT_LIMIT_EXCEEDED400超过有效 Secret 数量上限;先清理不用的 Secretvalidation_failurenone否
SECRET_TOO_LARGE413值超过 16384 字节;缩小值后重试validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"GITHUB_TOKEN","value":"ghp_example","allowed_hosts":["api.github.com"]}'

批量导入

POST /vault/v1/vaults/{vault_id}/secrets:import

参数位置说明
vault_idpath库 ID。

请求体

字段类型 / 枚举必填说明
linesImportLine[]否逐行导入的 Secret
lines[].namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
lines[].valuestring是Secret 的值,只写,不会返回;最大 16 KiB
lines[].allowed_hostsstring[]否新建时用本行域名或导入的默认域名;替换时仅本行显式 allowed_hosts 才会更新域名
dotenvstring否.env 格式的 KEY=VALUE 文本;与 lines 二选一
allowed_hostsstring[]否新建时用本行域名或导入的默认域名;替换时仅本行显式 allowed_hosts 才会更新域名

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
createdstring[]是新建的 Secret 名称
replacedstring[]是被替换的 Secret 名称
failedobject[]是失败的行
failed[].lineinteger是失败行号,从 1 开始
failed[].namestring / null是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
failed[].code"VAULT_NOT_FOUND" / "SECRET_NOT_FOUND" / "AUTHORIZATION_NOT_FOUND" / "SECRET_CONFLICT" / "VAULT_INVALID_STATE" / "VAULT_LIMIT_EXCEEDED" / "INVALID_PARAMS" / "SECRET_KIND_MISMATCH" / "VALIDATE_UNSUPPORTED" / "SECRET_TOO_LARGE" / "RATE_LIMITED" / "AUTHORIZATION_EXPIRED" / "OAUTH_DISCOVERY_FAILED" / "OAUTH_REGISTRATION_UNSUPPORTED" / "OAUTH_ISSUER_MISMATCH" / "OAUTH_STATE_INVALID" / "OAUTH_EXCHANGE_FAILED" / "NOT_IMPLEMENTED"是稳定的错误码
failed[].messagestring是可读的错误说明

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets:import" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dotenv":"OPENAI_API_KEY=sk-example\nLINEAR_API_KEY=lin_example","allowed_hosts":["api.openai.com","api.linear.app"]}'

读取 Secret

GET /vault/v1/vaults/{vault_id}/secrets/{secret}

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/GITHUB_TOKEN" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

更新 Secret

POST /vault/v1/vaults/{vault_id}/secrets/{secret}

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

请求体

字段类型 / 枚举必填说明
valuestring否Secret 的值,只写,不会返回;最大 16 KiB
allowed_hostsstring[]否1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null否备注;更新时 null 清除,省略则保留
metadataobject否按键合并:字符串写入,null 删除,省略的键保留;source、template 为保留键

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
SECRET_TOO_LARGE413值超过 16384 字节;缩小值后重试validation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/GITHUB_TOKEN" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"ghp_rotated"}'

删除 Secret

DELETE /vault/v1/vaults/{vault_id}/secrets/{secret}

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret_deleted"是对象类型

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
curl -X DELETE "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/GITHUB_TOKEN" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

归档 Secret

POST /vault/v1/vaults/{vault_id}/secrets/{secret}/archive

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/GITHUB_TOKEN/archive" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

校验 Secret

POST /vault/v1/vaults/{vault_id}/secrets/{secret}/validate

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
type"vault_secret_validation"是对象类型
secret_idstring是关联的 Secret ID;未关联时为 null
vault_idstring是库 ID
validated_atdate-time是校验时间
has_refresh_tokenboolean是是否保存了刷新令牌
status"valid" / "invalid" / "unknown"是状态
probeobject是探测请求
probe.method"GET"是探测方式,当前为 GET
probe.http_responseHttpCapture / null是HTTP 响应摘要;未收到响应时为 null
probe.http_response.status_codeinteger是HTTP 状态码
probe.http_response.content_typestring / null是响应内容类型,或 null
probe.http_response.bodystring是已脱敏的响应正文
probe.http_response.body_truncatedboolean是正文是否被截断
refreshobject是续期结果
refresh.status"succeeded" / "failed" / "connect_error" / "no_refresh_token" / "skipped"是状态
refresh.http_responseHttpCapture / null是HTTP 响应摘要;未收到响应时为 null
refresh.http_response.status_codeinteger是HTTP 状态码
refresh.http_response.content_typestring / null是响应内容类型,或 null
refresh.http_response.bodystring是已脱敏的响应正文
refresh.http_response.body_truncatedboolean是正文是否被截断

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
VALIDATE_UNSUPPORTED400对 static Secret 校验;校验仅支持 OAuth Secretvalidation_failurenone否
RATE_LIMITED429一分钟内超过授权或校验额度;等待下一窗口rate_limitwait_then_retry是

仅适用于 OAuth Secret。先完成一键授权,并将返回的 secret_id 设为 OAUTH_SECRET_ID;不要使用 static Secret。

curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/${OAUTH_SECRET_ID}/validate" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

续期 Secret

POST /vault/v1/vaults/{vault_id}/secrets/{secret}/refresh

参数位置说明
vault_idpath库 ID。
secretpathSecret 名称或 vsec_ 开头的 ID。

请求体

字段类型 / 枚举必填说明
reason"unauthorized"否触发续期的原因

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
SECRET_KIND_MISMATCH400对 static Secret 续期或执行不匹配种类的操作;使用 OAuth Secretvalidation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否

仅适用于 OAuth Secret。先完成一键授权,并将返回的 secret_id 设为 OAUTH_SECRET_ID;不要使用 static Secret。

curl -X POST "https://api.deepraxis.ai/vault/v1/vaults/${VAULT_ID}/secrets/${OAUTH_SECRET_ID}/refresh" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"unauthorized"}'

Secret

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_secret"是对象类型
vault_idstring是库 ID
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
descriptionstring / null是备注;更新时 null 清除,省略则保留
metadataobject是自定义标签最多 16 对;source、template 为系统保留键,不占这 16 对且不能由调用方写入
status"active" / "refreshing" / "refresh_failed" / "archived"是状态
oauthSecretOAuthSummary / null是OAuth 摘要;kind 为 static 时为 null
oauth.expires_atdate-time / null是过期时间
oauth.last_refreshed_atdate-time / null是最近一次续期时间
oauth.next_refresh_atdate-time / null是下次计划续期时间
oauth.scopestring / null是授权范围
oauth.last_errorobject / null是最近一次续期失败
oauth.last_error.codestring是稳定的错误码
oauth.last_error.messagestring是可读的错误说明
oauth.last_error.atdate-time是事件或错误发生时间
versioninteger是值每次变化时递增
last_used_atdate-time / null是最近一次被使用的时间
created_atdate-time是创建时间
updated_atdate-time是更新时间
archived_atdate-time / null是归档时间;未归档时为 null

SecretOAuthSummary

字段类型 / 枚举必填说明
expires_atdate-time / null是过期时间
last_refreshed_atdate-time / null是最近一次续期时间
next_refresh_atdate-time / null是下次计划续期时间
scopestring / null是授权范围
last_errorobject / null是最近一次续期失败
last_error.codestring是稳定的错误码
last_error.messagestring是可读的错误说明
last_error.atdate-time是事件或错误发生时间

ImportLine

字段类型 / 枚举必填说明
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
valuestring是Secret 的值,只写,不会返回;最大 16 KiB
allowed_hostsstring[]否新建时用本行域名或导入的默认域名;替换时仅本行显式 allowed_hosts 才会更新域名

ImportResult

字段类型 / 枚举必填说明
createdstring[]是新建的 Secret 名称
replacedstring[]是被替换的 Secret 名称
failedobject[]是失败的行
failed[].lineinteger是失败行号,从 1 开始
failed[].namestring / null是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
failed[].code"VAULT_NOT_FOUND" / "SECRET_NOT_FOUND" / "AUTHORIZATION_NOT_FOUND" / "SECRET_CONFLICT" / "VAULT_INVALID_STATE" / "VAULT_LIMIT_EXCEEDED" / "INVALID_PARAMS" / "SECRET_KIND_MISMATCH" / "VALIDATE_UNSUPPORTED" / "SECRET_TOO_LARGE" / "RATE_LIMITED" / "AUTHORIZATION_EXPIRED" / "OAUTH_DISCOVERY_FAILED" / "OAUTH_REGISTRATION_UNSUPPORTED" / "OAUTH_ISSUER_MISMATCH" / "OAUTH_STATE_INVALID" / "OAUTH_EXCHANGE_FAILED" / "NOT_IMPLEMENTED"是稳定的错误码
failed[].messagestring是可读的错误说明

SecretValidation

字段类型 / 枚举必填说明
type"vault_secret_validation"是对象类型
secret_idstring是关联的 Secret ID;未关联时为 null
vault_idstring是库 ID
validated_atdate-time是校验时间
has_refresh_tokenboolean是是否保存了刷新令牌
status"valid" / "invalid" / "unknown"是状态
probeobject是探测请求
probe.method"GET"是探测方式,当前为 GET
probe.http_responseHttpCapture / null是HTTP 响应摘要;未收到响应时为 null
probe.http_response.status_codeinteger是HTTP 状态码
probe.http_response.content_typestring / null是响应内容类型,或 null
probe.http_response.bodystring是已脱敏的响应正文
probe.http_response.body_truncatedboolean是正文是否被截断
refreshobject是续期结果
refresh.status"succeeded" / "failed" / "connect_error" / "no_refresh_token" / "skipped"是状态
refresh.http_responseHttpCapture / null是HTTP 响应摘要;未收到响应时为 null
refresh.http_response.status_codeinteger是HTTP 状态码
refresh.http_response.content_typestring / null是响应内容类型,或 null
refresh.http_response.bodystring是已脱敏的响应正文
refresh.http_response.body_truncatedboolean是正文是否被截断

HttpCapture

字段类型 / 枚举必填说明
status_codeinteger是HTTP 状态码
content_typestring / null是响应内容类型,或 null
bodystring是已脱敏的响应正文
body_truncatedboolean是正文是否被截断

模板

查询常用服务的模板 ID、Secret 名称、种类和允许域名。

指南 →

基础地址与鉴权

template_idkind服务
githubstaticGitHub (api.github.com, uploads.github.com)
openaistaticOpenAI
anthropicstaticAnthropic
stripestaticStripe
linearoauthLinear (CIMD)
atlassianoauthAtlassian (DCR)

列出模板

GET /vault/v1/templates

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
dataVaultTemplate[]是条目数组
data[].idstring是对象标识符
data[].display_namestring是显示名称,1–255 个字符
data[].kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
data[].namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
data[].allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
data[].value_hintstring / null是填写提示

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。 没有额外的领域错误。

curl "https://api.deepraxis.ai/vault/v1/templates" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

VaultTemplate

字段类型 / 枚举必填说明
idstring是对象标识符
display_namestring是显示名称,1–255 个字符
kind"static" / "oauth"是static:你填写的值;oauth:授权得到、由平台续期
namestring是名称,库内唯一且不可改;1–128 个大写字母、数字或下划线,以字母或下划线开头
allowed_hostsstring[]是1–16 个域名、公网 IPv4 或 .example.com;不匹配根域名。拒绝 IPv6、单标签主机、localhost、.internal、平台域名及回环/链路本地/私网/CGNAT IPv4;规范化并去重
value_hintstring / null是填写提示

一键授权

让用户授权第三方服务,并管理一次性授权链接与回跳地址。

指南 →

基础地址与鉴权

一键授权为支持 OAuth 的服务产生 kind 为 oauth 的 Secret。发起授权后把 connect_url 交给最终用户;用户在确认页同意并在服务方完成授权后,Secret 写入库中,之后由平台续期。确认页、回调与客户端元数据三个地址不需要 API Key。

发起授权

POST /vault/v1/authorizations

请求体

字段类型 / 枚举必填说明
vault_idstring是库 ID
template_id"linear" / "atlassian"否支持授权的模板 ID;与 resource_url 二选一
resource_urlstring否要授权的资源地址,例如 MCP 服务地址
return_urlstring否授权结束后回到的地址;须在回跳地址白名单内

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_authorization"是对象类型
vault_idstring是库 ID
status"pending" / "authorizing" / "completed" / "failed" / "expired"是状态
resourcestring是资源地址
secret_namestring是关联的 Secret 名称
connect_urlstring是交给最终用户打开的确认页,30 分钟内有效、只能使用一次
client_registration"cimd" / "dcr" / null是cimd:通过客户端元数据 URL 注册;dcr:动态注册客户端;尚未注册时为 null
secret_idstring / null是关联的 Secret ID;未关联时为 null
errorobject / null是失败原因
error.codestring是稳定的错误码
error.messagestring是可读的错误说明
expires_atdate-time是过期时间
created_atdate-time是创建时间
updated_atdate-time是更新时间

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
RATE_LIMITED429一分钟内超过授权或校验额度;等待下一窗口rate_limitwait_then_retry是
OAUTH_DISCOVERY_FAILED400无法发现服务方 OAuth 配置;检查资源地址validation_failurecontinue_from_problem否
OAUTH_REGISTRATION_UNSUPPORTED400服务方不接受自动客户端注册;手动添加凭据validation_failurecontinue_from_problem否
OAUTH_ISSUER_MISMATCH400授权服务器与预期不一致;重新检查服务地址provider_upstreamretry_from_user否
curl -X POST "https://api.deepraxis.ai/vault/v1/authorizations" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"vault_id\":\"${VAULT_ID}\",\"template_id\":\"linear\"}"

读取授权

GET /vault/v1/authorizations/{authorization_id}

参数位置说明
authorization_idpath授权 ID。

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_authorization"是对象类型
vault_idstring是库 ID
status"pending" / "authorizing" / "completed" / "failed" / "expired"是状态
resourcestring是资源地址
secret_namestring是关联的 Secret 名称
connect_urlstring是交给最终用户打开的确认页,30 分钟内有效、只能使用一次
client_registration"cimd" / "dcr" / null是cimd:通过客户端元数据 URL 注册;dcr:动态注册客户端;尚未注册时为 null
secret_idstring / null是关联的 Secret ID;未关联时为 null
errorobject / null是失败原因
error.codestring是稳定的错误码
error.messagestring是可读的错误说明
expires_atdate-time是过期时间
created_atdate-time是创建时间
updated_atdate-time是更新时间

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
AUTHORIZATION_NOT_FOUND404授权或确认链接不存在;重新发起授权validation_failurenone否
curl "https://api.deepraxis.ai/vault/v1/authorizations/${AUTHORIZATION_ID}" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

读取回跳地址

GET /vault/v1/settings/return_urls

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
urlsstring[]是https 地址,精确匹配,最多 10 个

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。 没有额外的领域错误。

curl "https://api.deepraxis.ai/vault/v1/settings/return_urls" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

设置回跳地址

PUT /vault/v1/settings/return_urls

请求体

字段类型 / 枚举必填说明
urlsstring[]是https 地址,精确匹配,最多 10 个

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
urlsstring[]是https 地址,精确匹配,最多 10 个

错误响应

缺少或无效的 API Key 返回 401 UNAUTHENTICATED。

错误码HTTP含义、触发条件与处理kindrecovery可重试
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
curl -X PUT "https://api.deepraxis.ai/vault/v1/settings/return_urls" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://app.example.com/connected"]}'

授权回调

GET /vault/v1/authorizations/callback · 无需 API Key

参数位置说明
codequery服务方返回的授权码。
statequery发起授权时产生的一次性状态值。
errorquery服务方拒绝授权时返回的错误。
issquery服务方声明的授权服务器地址。

响应

HTTP 200

text/html

浏览器显示的确认页或结果页。

HTTP 302

通过 Location 响应头跳转到服务方授权页或已允许的回跳地址。

错误响应

错误码HTTP含义、触发条件与处理kindrecovery可重试
OAUTH_STATE_INVALID400回调 state 缺失、无效或重放;重新发起授权validation_failurenone否
OAUTH_ISSUER_MISMATCH400授权服务器与预期不一致;重新检查服务地址provider_upstreamretry_from_user否
OAUTH_EXCHANGE_FAILED502服务方拒绝授权码换令牌;重新授权provider_upstreamretry_from_user否
AUTHORIZATION_EXPIRED410授权链接超过 30 分钟或已使用;重新发起授权validation_failureretry_from_user否

设置了 return_url 时返回 302;未设置时返回 HTTP 200 结果页。

curl "https://api.deepraxis.ai/vault/v1/authorizations/callback"

OAuth 客户端元数据

GET /vault/v1/oauth/client.json · 无需 API Key

响应

HTTP 200

application/json

字段类型 / 枚举必填说明
client_idstring是客户端元数据 URL
client_namestring是客户端显示名称
redirect_urisstring[]是允许的 OAuth 回调地址
token_endpoint_auth_method"none"是令牌端点认证方式
grant_types"authorization_code" / "refresh_token"[]否支持的授权类型
response_types"code"[]否支持的授权响应类型

错误响应

没有额外的领域错误。

curl "https://api.deepraxis.ai/vault/v1/oauth/client.json"

授权确认页

GET /vault/v1/connect/{token} · 无需 API Key

参数位置说明
tokenpathconnect_url 中的一次性令牌。

响应

HTTP 200

text/html

浏览器显示的确认页或结果页。

HTTP 410

text/html

浏览器显示的确认页或结果页。

错误响应

错误码HTTP含义、触发条件与处理kindrecovery可重试
AUTHORIZATION_NOT_FOUND404授权或确认链接不存在;重新发起授权validation_failurenone否
AUTHORIZATION_EXPIRED410授权链接超过 30 分钟或已使用;重新发起授权validation_failureretry_from_user否

无效链接返回 404;过期或已使用的链接返回 410,均为 HTML 页面。

curl "https://api.deepraxis.ai/vault/v1/connect/${TOKEN}"

继续授权

POST /vault/v1/connect/{token}/continue · 无需 API Key

参数位置说明
tokenpathconnect_url 中的一次性令牌。

响应

HTTP 302

通过 Location 响应头跳转到服务方授权页或已允许的回跳地址。

错误响应

错误码HTTP含义、触发条件与处理kindrecovery可重试
AUTHORIZATION_NOT_FOUND404授权或确认链接不存在;重新发起授权validation_failurenone否
AUTHORIZATION_EXPIRED410授权链接超过 30 分钟或已使用;重新发起授权validation_failureretry_from_user否
OAUTH_DISCOVERY_FAILED400无法发现服务方 OAuth 配置;检查资源地址validation_failurecontinue_from_problem否
curl -X POST "https://api.deepraxis.ai/vault/v1/connect/${TOKEN}/continue"

拒绝授权

POST /vault/v1/connect/{token}/deny · 无需 API Key

参数位置说明
tokenpathconnect_url 中的一次性令牌。

响应

HTTP 200

text/html

浏览器显示的确认页或结果页。

HTTP 302

通过 Location 响应头跳转到服务方授权页或已允许的回跳地址。

错误响应

错误码HTTP含义、触发条件与处理kindrecovery可重试
AUTHORIZATION_NOT_FOUND404授权或确认链接不存在;重新发起授权validation_failurenone否
AUTHORIZATION_EXPIRED410授权链接超过 30 分钟或已使用;重新发起授权validation_failureretry_from_user否

设置了 return_url 时返回 302;未设置时返回 HTTP 200 结果页。

curl -X POST "https://api.deepraxis.ai/vault/v1/connect/${TOKEN}/deny"

Authorization

字段类型 / 枚举必填说明
idstring是对象标识符
type"vault_authorization"是对象类型
vault_idstring是库 ID
status"pending" / "authorizing" / "completed" / "failed" / "expired"是状态
resourcestring是资源地址
secret_namestring是关联的 Secret 名称
connect_urlstring是交给最终用户打开的确认页,30 分钟内有效、只能使用一次
client_registration"cimd" / "dcr" / null是cimd:通过客户端元数据 URL 注册;dcr:动态注册客户端;尚未注册时为 null
secret_idstring / null是关联的 Secret ID;未关联时为 null
errorobject / null是失败原因
error.codestring是稳定的错误码
error.messagestring是可读的错误说明
expires_atdate-time是过期时间
created_atdate-time是创建时间
updated_atdate-time是更新时间

ReturnUrls

字段类型 / 枚举必填说明
urlsstring[]是https 地址,精确匹配,最多 10 个

错误码

错误响应体统一为下面的形状;code 是稳定的错误码,message 给人读。

{
  "request_id": "req_example",
  "error": {
    "code": "SECRET_CONFLICT",
    "message": "A secret named GITHUB_TOKEN already exists",
    "kind": "validation_failure",
    "recovery": "none",
    "retryable": false
  }
}

错误体包含 request_id,可用于定位请求。兼容接口使用下列错误形状;409 的类型为 conflict_error,不可重试的错误带 x-should-retry: false。

{
  "type": "error",
  "error": {
    "type": "conflict_error",
    "message": "A credential with this name already exists"
  },
  "request_id": "req_example"
}
错误码HTTP含义、触发条件与处理kindrecovery可重试
VAULT_NOT_FOUND404库不存在或不属于当前账户;检查库 IDvalidation_failurenone否
SECRET_NOT_FOUND404Secret 不存在,包括用非法名称查找;检查名称或 IDvalidation_failurenone否
AUTHORIZATION_NOT_FOUND404授权或确认链接不存在;重新发起授权validation_failurenone否
SECRET_CONFLICT409创建时名称已占用;更换名称或更新已有 Secretvalidation_failurenone否
VAULT_INVALID_STATE409向已归档的库或 Secret 写入;改用有效资源validation_failurenone否
VAULT_LIMIT_EXCEEDED400超过有效 Secret 数量上限;先清理不用的 Secretvalidation_failurenone否
INVALID_PARAMS400字段、名称、域名、metadata、分页或回跳地址无效;修正请求validation_failurenone否
SECRET_KIND_MISMATCH400对 static Secret 续期或执行不匹配种类的操作;使用 OAuth Secretvalidation_failurenone否
VALIDATE_UNSUPPORTED400对 static Secret 校验;校验仅支持 OAuth Secretvalidation_failurenone否
SECRET_TOO_LARGE413值超过 16384 字节;缩小值后重试validation_failurenone否
RATE_LIMITED429一分钟内超过授权或校验额度;等待下一窗口rate_limitwait_then_retry是
AUTHORIZATION_EXPIRED410授权链接超过 30 分钟或已使用;重新发起授权validation_failureretry_from_user否
OAUTH_DISCOVERY_FAILED400无法发现服务方 OAuth 配置;检查资源地址validation_failurecontinue_from_problem否
OAUTH_REGISTRATION_UNSUPPORTED400服务方不接受自动客户端注册;手动添加凭据validation_failurecontinue_from_problem否
OAUTH_ISSUER_MISMATCH400授权服务器与预期不一致;重新检查服务地址provider_upstreamretry_from_user否
OAUTH_STATE_INVALID400回调 state 缺失、无效或重放;重新发起授权validation_failurenone否
OAUTH_EXCHANGE_FAILED502服务方拒绝授权码换令牌;重新授权provider_upstreamretry_from_user否
NOT_IMPLEMENTED501功能尚不支持;使用文档列出的替代方式execution_failednone否