reallife_asset/scripts/uapi_volcengine_ark.sql
yumoqing 0e5696f5da feat: 真人人像素材管理模块初始版本
- 支持火山方舟(Volcengine Ark)真人人像素材API
- AK/SK HMAC-SHA256签名(纯stdlib实现)
- 素材组合(Asset Group)管理: 创建认证、查询、删除
- 素材资产(Asset)管理: 上传、状态同步、删除
- 多供应商可扩展架构
- 完整CRUD + 前端UI + uapi SQL配置
- 12个API端点 + 6个前端页面
- 数据库表: rl_asset_group, rl_asset
2026-05-28 08:55:09 +08:00

336 lines
12 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- uapi SQL Configuration for Volcengine Ark Real Person Portrait APIs
-- Execute against the Sage database to register these APIs
-- ============================================================
-- 1. Register Volcengine Ark as an external application (upapp)
-- The AK/SK signing is handled by the dynamic_func
INSERT INTO upapp (id, name, description, ownerid, apisetid, secretkey, baseurl, myappid, dynamic_func, auth_apiname) VALUES (
'volcengine_ark',
'volcengine_ark',
'火山方舟 - 真人人像素材管理API (AK/SK签名)',
'0',
'',
'',
'https://open.volcengineapi.com',
'',
'volcengine_ark_sign',
NULL
) ON DUPLICATE KEY UPDATE description=VALUES(description), baseurl=VALUES(baseurl);
-- 2. Register API Key storage (upappkey)
-- Replace <YOUR_AK> and <YOUR_SK> with actual Volcengine credentials
-- The apikey = Access Key, secretkey = Secret Key
-- INSERT INTO upappkey (id, upappid, ownerid, myappid, apikey, secretkey) VALUES (
-- 'volcengine_ark_key_1',
-- 'volcengine_ark',
-- '<owner_user_id>',
-- '',
-- password_encode('<YOUR_ACCESS_KEY>'),
-- password_encode('<YOUR_SECRET_KEY>')
-- );
-- 3. Input/Output definitions (uapiio)
-- CreateVisualValidateSession IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_cvvs_io',
'创建真人认证会话',
'拉起H5真人认证页',
'{"CallbackURL": {"type": "string", "required": true, "description": "回调URL"}, "ProjectName": {"type": "string", "required": false, "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- GetVisualValidateResult IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_gvvr_io',
'获取真人认证结果',
'查询认证创建的Asset Group ID',
'{"BytedToken": {"type": "string", "required": true}, "ProjectName": {"type": "string", "required": false, "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- CreateAsset IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_create_asset_io',
'创建素材资产',
'上传素材到真人认证组合',
'{"GroupId": {"type": "string", "required": true}, "URL": {"type": "string", "required": true}, "AssetType": {"type": "string", "required": true, "options": ["Image","Video","Audio"]}, "Name": {"type": "string", "required": false}, "ProjectName": {"type": "string", "required": false, "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- GetAsset IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_get_asset_io',
'获取素材信息',
'查询单个素材资产状态和信息',
'{"Id": {"type": "string", "required": true}, "ProjectName": {"type": "string", "required": false, "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- ListAssets IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_list_assets_io',
'查询素材列表',
'分页查询素材资产列表',
'{"Filter": {"type": "object", "required": false}, "PageNumber": {"type": "integer", "default": 1}, "PageSize": {"type": "integer", "default": 10}, "SortBy": {"type": "string", "default": "CreateTime"}, "SortOrder": {"type": "string", "default": "Desc"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- ListAssetGroups IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_list_groups_io',
'查询素材组合列表',
'分页查询素材组合列表',
'{"Filter": {"type": "object", "required": false}, "PageNumber": {"type": "integer", "default": 1}, "PageSize": {"type": "integer", "default": 10}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- GetAssetGroup IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_get_group_io',
'获取素材组合信息',
'查询单个素材组合',
'{"Id": {"type": "string", "required": true}, "ProjectName": {"type": "string", "required": false, "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- UpdateAsset IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_update_asset_io',
'更新素材信息',
'更新素材资产名称等',
'{"Id": {"type": "string", "required": true}, "Name": {"type": "string"}, "ProjectName": {"type": "string", "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- UpdateAssetGroup IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_update_group_io',
'更新素材组合',
'更新素材组合信息',
'{"Id": {"type": "string", "required": true}, "Name": {"type": "string"}, "Title": {"type": "string"}, "Description": {"type": "string"}, "ProjectName": {"type": "string", "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- DeleteAsset IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_delete_asset_io',
'删除素材',
'删除单个素材资产',
'{"Id": {"type": "string", "required": true}, "ProjectName": {"type": "string", "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- DeleteAssetGroup IO
INSERT INTO uapiio (id, name, description, input_fields) VALUES (
'volc_delete_group_io',
'删除素材组合',
'删除指定素材组合',
'{"Id": {"type": "string", "required": true}, "ProjectName": {"type": "string", "default": "default"}}'
) ON DUPLICATE KEY UPDATE description=VALUES(description);
-- 4. API definitions (uapi)
-- NOTE: All APIs use POST method with Action/Version in query string
-- The dynamic_func 'volcengine_ark_sign' handles AK/SK HMAC signing
-- CreateVisualValidateSession
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_cvvs',
'volcengine_ark',
'createVisualValidateSession',
'创建真人认证会话',
'拉起H5真人认证页返回H5Link和BytedToken',
'0',
'false',
'/?Action=CreateVisualValidateSession&Version=2024-01-01',
'POST',
'BytedToken',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_cvvs_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- GetVisualValidateResult
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_gvvr',
'volcengine_ark',
'getVisualValidateResult',
'获取真人认证结果',
'获取认证创建的Asset Group ID',
'0',
'false',
'/?Action=GetVisualValidateResult&Version=2024-01-01',
'POST',
'GroupId',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_gvvr_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- CreateAsset
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_create_asset',
'volcengine_ark',
'createAsset',
'创建素材资产',
'上传素材到真人认证组合(异步)',
'0',
'false',
'/?Action=CreateAsset&Version=2024-01-01',
'POST',
'Id',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_create_asset_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- GetAsset
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_get_asset',
'volcengine_ark',
'getAsset',
'获取素材信息',
'查询单个素材资产',
'0',
'false',
'/?Action=GetAsset&Version=2024-01-01',
'POST',
'Status',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_get_asset_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- ListAssets
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_list_assets',
'volcengine_ark',
'listAssets',
'查询素材列表',
'分页查询素材资产',
'0',
'false',
'/?Action=ListAssets&Version=2024-01-01',
'POST',
'TotalCount',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_list_assets_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- ListAssetGroups
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_list_groups',
'volcengine_ark',
'listAssetGroups',
'查询素材组合列表',
'分页查询素材组合',
'0',
'false',
'/?Action=ListAssetGroups&Version=2024-01-01',
'POST',
'TotalCount',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_list_groups_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- GetAssetGroup
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_get_group',
'volcengine_ark',
'getAssetGroup',
'获取素材组合信息',
'查询单个素材组合',
'0',
'false',
'/?Action=GetAssetGroup&Version=2024-01-01',
'POST',
'Id',
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_get_group_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- UpdateAsset
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_update_asset',
'volcengine_ark',
'updateAsset',
'更新素材信息',
'更新素材名称等',
'0',
'false',
'/?Action=UpdateAsset&Version=2024-01-01',
'POST',
NULL,
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_update_asset_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- UpdateAssetGroup
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_update_group',
'volcengine_ark',
'updateAssetGroup',
'更新素材组合',
'更新素材组合信息',
'0',
'false',
'/?Action=UpdateAssetGroup&Version=2024-01-01',
'POST',
NULL,
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_update_group_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- DeleteAsset
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_delete_asset',
'volcengine_ark',
'deleteAsset',
'删除素材',
'删除单个素材资产',
'0',
'false',
'/?Action=DeleteAsset&Version=2024-01-01',
'POST',
NULL,
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_delete_asset_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);
-- DeleteAssetGroup
INSERT INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
'volc_delete_group',
'volcengine_ark',
'deleteAssetGroup',
'删除素材组合',
'删除指定素材组合',
'0',
'false',
'/?Action=DeleteAssetGroup&Version=2024-01-01',
'POST',
NULL,
'{"Content-Type":"application/json","Host":"open.volcengineapi.com"}',
NULL,
'{{jsondata}}',
'{{response}}',
'volc_delete_group_io'
) ON DUPLICATE KEY UPDATE title=VALUES(title), path=VALUES(path);