Skip to content

隐私配置(Privacy Configs)

隐私配置用于按 category + target_key 管理敏感字段版本(如 skill 的 api_keybase_url)。

每次更新都会生成版本快照,可查询历史版本并切换生效版本。

典型场景

  • 为某个 skill 保存密钥等敏感配置
  • 轮换密钥(新版本)
  • 回滚到历史版本
  • 在读取 skill 内容时按占位符自动恢复配置值

接口总览

方法路径说明
GET/api/v1/privacy-configs列出隐私配置分类
GET/api/v1/privacy-configs/{category}列出分类下目标
GET/api/v1/privacy-configs/{category}/{target_key}获取当前生效配置(meta + current)
POST/api/v1/privacy-configs/{category}/{target_key}写入新版本并激活
GET/api/v1/privacy-configs/{category}/{target_key}/versions列出版本号
GET/api/v1/privacy-configs/{category}/{target_key}/versions/{version}获取指定版本详情
POST/api/v1/privacy-configs/{category}/{target_key}/activate激活指定版本

下面按接口逐一展开说明。


数据结构

current(当前生效版本)

json
{
  "version": 3,
  "category": "skill",
  "target_key": "byted-viking-search-knowledgebase",
  "values": {
    "api_key": "***",
    "base_url": "https://example.com"
  },
  "created_at": "2026-04-27T10:00:00+08:00",
  "created_by": "alice",
  "change_reason": "rotate key"
}

meta(元信息)

json
{
  "category": "skill",
  "target_key": "byted-viking-search-knowledgebase",
  "active_version": 3,
  "latest_version": 5,
  "created_at": "2026-04-21T10:00:00+08:00",
  "updated_at": "2026-04-27T10:00:00+08:00",
  "updated_by": "alice",
  "last_accessed_at": "2026-04-27T10:00:00+08:00",
  "labels": {
    "env": "prod"
  }
}

API 参考

list_privacy_categories()

列出当前用户下已有隐私配置的分类。

HTTP API

GET /api/v1/privacy-configs
bash
curl -X GET http://localhost:1933/api/v1/privacy-configs \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice"

响应

json
{
  "status": "ok",
  "result": ["skill"],
  "time": 0.01
}

list_privacy_targets()

列出分类下的 target_key。

HTTP API

GET /api/v1/privacy-configs/{category}
bash
curl -X GET http://localhost:1933/api/v1/privacy-configs/skill \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice"

响应

json
{
  "status": "ok",
  "result": ["byted-viking-search-knowledgebase"],
  "time": 0.01
}

get_privacy_current()

获取 target 当前生效配置(meta + current)。

HTTP API

GET /api/v1/privacy-configs/{category}/{target_key}
bash
curl -X GET "http://localhost:1933/api/v1/privacy-configs/skill/byted-viking-search-knowledgebase" \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice"

响应

json
{
  "status": "ok",
  "result": {
    "meta": {
      "category": "skill",
      "target_key": "byted-viking-search-knowledgebase",
      "active_version": 3,
      "latest_version": 5
    },
    "current": {
      "version": 3,
      "category": "skill",
      "target_key": "byted-viking-search-knowledgebase",
      "values": {
        "api_key": "***",
        "base_url": "https://example.com"
      }
    }
  },
  "time": 0.01
}

若 target 不存在,返回 NOT_FOUND


upsert_privacy_config()

写入新版本并将其设为当前生效版本。

行为说明

  • values 按整包快照写入(本次传入内容成为新版本的 values
  • 传入新 key 会直接写入(允许新增)
  • 若与当前版本完全一致,则复用当前版本号,不新建版本

HTTP API

POST /api/v1/privacy-configs/{category}/{target_key}

请求体

字段类型必填默认值说明
valuesobject-隐私配置键值
change_reasonstring""变更原因
labelsobjectnull元信息标签
bash
curl -X POST "http://localhost:1933/api/v1/privacy-configs/skill/byted-viking-search-knowledgebase" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice" \
  -d '{
    "values": {
      "api_key": "secret-2",
      "base_url": "https://example.com",
      "region": "cn"
    },
    "change_reason": "rotate key",
    "labels": {
      "env": "prod"
    }
  }'

响应

json
{
  "status": "ok",
  "result": {
    "version": 4,
    "category": "skill",
    "target_key": "byted-viking-search-knowledgebase",
    "values": {
      "api_key": "secret-2",
      "base_url": "https://example.com",
      "region": "cn"
    },
    "change_reason": "rotate key"
  },
  "time": 0.02
}

list_privacy_versions()

列出 target 的所有版本号。

HTTP API

GET /api/v1/privacy-configs/{category}/{target_key}/versions
bash
curl -X GET "http://localhost:1933/api/v1/privacy-configs/skill/byted-viking-search-knowledgebase/versions" \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice"

响应

json
{
  "status": "ok",
  "result": [1, 2, 3, 4],
  "time": 0.01
}

若 target 不存在,返回 NOT_FOUND


get_privacy_version()

获取某个历史版本详情。

HTTP API

GET /api/v1/privacy-configs/{category}/{target_key}/versions/{version}
bash
curl -X GET "http://localhost:1933/api/v1/privacy-configs/skill/byted-viking-search-knowledgebase/versions/2" \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice"

响应

json
{
  "status": "ok",
  "result": {
    "version": 2,
    "category": "skill",
    "target_key": "byted-viking-search-knowledgebase",
    "values": {
      "api_key": "secret-1",
      "base_url": "https://example.com"
    }
  },
  "time": 0.01
}

若 target/version 不存在,返回 NOT_FOUND


activate_privacy_version()

切换当前生效版本。

HTTP API

POST /api/v1/privacy-configs/{category}/{target_key}/activate

请求体

字段类型必填说明
versionint要激活的版本号
bash
curl -X POST "http://localhost:1933/api/v1/privacy-configs/skill/byted-viking-search-knowledgebase/activate" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-key" \
  -H "X-OpenViking-Account: default" \
  -H "X-OpenViking-User: alice" \
  -d '{"version": 2}'

响应

json
{
  "status": "ok",
  "result": {
    "version": 2,
    "category": "skill",
    "target_key": "byted-viking-search-knowledgebase",
    "values": {
      "api_key": "secret-1",
      "base_url": "https://example.com"
    }
  },
  "time": 0.01
}

若 target/version 不存在,返回 NOT_FOUND


CLI 快速操作

bash
# 分类/目标
openviking privacy categories
openviking privacy list skill

# 当前生效配置(支持快捷形式)
openviking privacy get skill byted-viking-search-knowledgebase
openviking privacy skill byted-viking-search-knowledgebase

# 更新(整包 JSON)
openviking privacy upsert skill byted-viking-search-knowledgebase \
  --values-json '{"api_key":"secret-2","base_url":"https://example.com"}'

# 仅更新部分 key(先读取 current 再合并)
openviking privacy upsert skill byted-viking-search-knowledgebase \
  --key-api_key secret-3

# 版本查询与切换
openviking privacy versions skill byted-viking-search-knowledgebase
openviking privacy version skill byted-viking-search-knowledgebase 2
openviking privacy activate skill byted-viking-search-knowledgebase 2

相关文档

Released under the Apache-2.0 License.