PUT
/api/v1/secret/{resource_path...}使用 App Header 签名或 App Secret需要 unsealed
Path 参数
resource_path必填string
要写入的机密信息资源路径
示例:"production/orders/database"
请求体
请求体本身就是要保存的 JSON 对象,字段由业务自行定义;不需要额外包裹 data 字段。
成功响应
HTTP 200
返回新版本和元数据
{
"data": {
"item": {
"digest": "sm3:<hex-digest>",
"metadata": {
"contact_email": "owner@example.com",
"contact_name": "张三",
"contact_phone": "13800000000",
"created_at": "2026-08-01T08:00:00Z",
"created_by": "app_orders",
"current_version": 3,
"department": "平台工程部",
"description": "生产订单服务连接数据库使用",
"labels": {
"environment": "production"
},
"metadata": {
"ticket": "SEC-1001"
},
"name": "订单数据库凭据",
"organization": "示例科技",
"path": "production/orders/database",
"status": "active",
"updated_at": "2026-08-02T08:00:00Z",
"updated_by": "app_orders",
"version": 2
},
"path": "production/orders/database",
"version": 3
}
},
"error": null,
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}失败响应
按 HTTP status 和 error.code 区分失败原因;响应始终使用统一 envelope。
HTTP 400 · invalid_request
请求参数或 JSON 请求体无效
{
"data": null,
"error": {
"code": "invalid_request",
"details": {},
"message": "请求参数或 JSON 请求体无效"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 400 · not_initialized
系统尚未初始化
{
"data": null,
"error": {
"code": "not_initialized",
"details": {},
"message": "系统尚未初始化"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 401 · replayed_request
签名请求的 nonce 已被使用
{
"data": null,
"error": {
"code": "replayed_request",
"details": {},
"message": "签名请求的 nonce 已被使用"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 401 · unauthorized
App ID、App Secret 或签名无效,或者凭据已过期
{
"data": null,
"error": {
"code": "unauthorized",
"details": {},
"message": "App ID、App Secret 或签名无效,或者凭据已过期"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 403 · forbidden
App 没有访问目标资源所需的权限
{
"data": null,
"error": {
"code": "forbidden",
"details": {},
"message": "App 没有访问目标资源所需的权限"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 409 · conflict
机密信息路径或当前状态发生冲突
{
"data": null,
"error": {
"code": "conflict",
"details": {},
"message": "机密信息路径或当前状态发生冲突"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 413 · request_body_too_large
请求体超过服务端限制
{
"data": null,
"error": {
"code": "request_body_too_large",
"details": {},
"message": "请求体超过服务端限制"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 423 · sealed
系统处于封印状态
{
"data": null,
"error": {
"code": "sealed",
"details": {},
"message": "系统处于封印状态"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 500 · internal_error
服务端无法完成请求
{
"data": null,
"error": {
"code": "internal_error",
"details": {},
"message": "服务端无法完成请求"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 503 · leader_unavailable
高可用集群的 Leader 暂不可用
{
"data": null,
"error": {
"code": "leader_unavailable",
"details": {},
"message": "高可用集群的 Leader 暂不可用"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}HTTP 503 · maintenance_mode
系统处于维护模式
{
"data": null,
"error": {
"code": "maintenance_mode",
"details": {},
"message": "系统处于维护模式"
},
"request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}