Files
zt-dsc/sql/dm/统一对外网关_20251010.sql
chenbowen 78bc88b7a6 1. 新增外部系统编码部门编码关联管理
2. 新增统一的 api 对外门户管理
3. 修正各个模块的 api 命名
2025-10-17 17:40:46 +08:00

239 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.
/*
* Databus API portal schema for DM8
* Generated on 2025-10-10
*/
-- ----------------------------
-- Table structure for databus_api_definition
-- ----------------------------
CREATE TABLE databus_api_definition (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
api_code VARCHAR(128) NOT NULL,
http_method VARCHAR(16) NOT NULL,
version VARCHAR(32) NOT NULL,
status SMALLINT DEFAULT 0 NOT NULL,
description VARCHAR(512),
rate_limit_id BIGINT,
response_template CLOB,
updated_at DATETIME,
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE UNIQUE INDEX uk_databus_api_definition_code_ver ON databus_api_definition (tenant_id, api_code, version);
CREATE INDEX idx_databus_api_definition_status ON databus_api_definition (tenant_id, status);
COMMENT ON TABLE databus_api_definition IS '统一外部 API 门户 - API 定义表';
COMMENT ON COLUMN databus_api_definition.id IS '主键 ID';
COMMENT ON COLUMN databus_api_definition.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_definition.api_code IS 'API 编码';
COMMENT ON COLUMN databus_api_definition.http_method IS 'HTTP 方法';
COMMENT ON COLUMN databus_api_definition.version IS '版本号';
COMMENT ON COLUMN databus_api_definition.status IS '发布状态';
COMMENT ON COLUMN databus_api_definition.description IS '描述信息';
COMMENT ON COLUMN databus_api_definition.rate_limit_id IS '限流策略 ID';
COMMENT ON COLUMN databus_api_definition.response_template IS '响应模板 JSON';
COMMENT ON COLUMN databus_api_definition.updated_at IS '业务更新时间';
COMMENT ON COLUMN databus_api_definition.creator IS '创建者';
COMMENT ON COLUMN databus_api_definition.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_definition.updater IS '更新者';
COMMENT ON COLUMN databus_api_definition.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_definition.deleted IS '逻辑删除标记';
-- ----------------------------
-- Table structure for databus_api_flow_publish
-- ----------------------------
CREATE TABLE databus_api_flow_publish (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
api_id BIGINT NOT NULL,
release_tag VARCHAR(64),
snapshot CLOB,
status VARCHAR(32),
active BIT DEFAULT '0' NOT NULL,
description VARCHAR(512),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE INDEX idx_databus_api_flow_publish_api ON databus_api_flow_publish (tenant_id, api_id, active);
COMMENT ON TABLE databus_api_flow_publish IS '统一外部 API 门户 - 发布记录表';
COMMENT ON COLUMN databus_api_flow_publish.id IS '主键 ID';
COMMENT ON COLUMN databus_api_flow_publish.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_flow_publish.api_id IS '关联的 API ID';
COMMENT ON COLUMN databus_api_flow_publish.release_tag IS '发布批次标识';
COMMENT ON COLUMN databus_api_flow_publish.snapshot IS '配置快照 JSON';
COMMENT ON COLUMN databus_api_flow_publish.status IS '发布状态';
COMMENT ON COLUMN databus_api_flow_publish.active IS '是否当前生效';
COMMENT ON COLUMN databus_api_flow_publish.description IS '备注信息';
COMMENT ON COLUMN databus_api_flow_publish.creator IS '创建者';
COMMENT ON COLUMN databus_api_flow_publish.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_flow_publish.updater IS '更新者';
COMMENT ON COLUMN databus_api_flow_publish.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_flow_publish.deleted IS '逻辑删除标记';
-- ----------------------------
-- Table structure for databus_policy_rate_limit
-- ----------------------------
CREATE TABLE databus_policy_rate_limit (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
name VARCHAR(128) NOT NULL,
type VARCHAR(64) NOT NULL,
config CLOB,
description VARCHAR(512),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE UNIQUE INDEX uk_databus_policy_rate_limit_name ON databus_policy_rate_limit (tenant_id, name);
COMMENT ON TABLE databus_policy_rate_limit IS '统一外部 API 门户 - 限流策略表';
COMMENT ON COLUMN databus_policy_rate_limit.id IS '主键 ID';
COMMENT ON COLUMN databus_policy_rate_limit.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_policy_rate_limit.name IS '策略名称';
COMMENT ON COLUMN databus_policy_rate_limit.type IS '策略类型';
COMMENT ON COLUMN databus_policy_rate_limit.config IS '策略配置 JSON';
COMMENT ON COLUMN databus_policy_rate_limit.description IS '描述信息';
COMMENT ON COLUMN databus_policy_rate_limit.creator IS '创建者';
COMMENT ON COLUMN databus_policy_rate_limit.create_time IS '创建时间';
COMMENT ON COLUMN databus_policy_rate_limit.updater IS '更新者';
COMMENT ON COLUMN databus_policy_rate_limit.update_time IS '更新时间';
COMMENT ON COLUMN databus_policy_rate_limit.deleted IS '逻辑删除标记';
-- ----------------------------
-- Table structure for databus_api_step
-- ----------------------------
CREATE TABLE databus_api_step (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
api_id BIGINT NOT NULL,
step_order INT DEFAULT 0 NOT NULL,
parallel_group VARCHAR(64),
type VARCHAR(32) NOT NULL,
target_endpoint VARCHAR(512),
request_mapping_expr CLOB,
response_mapping_expr CLOB,
transform_id BIGINT,
timeout BIGINT,
fallback_strategy CLOB,
condition_expr CLOB,
stop_on_error BIT DEFAULT '0' NOT NULL,
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE INDEX idx_databus_api_step_api_order ON databus_api_step (tenant_id, api_id, parallel_group, step_order);
COMMENT ON TABLE databus_api_step IS '统一外部 API 门户 - 编排步骤表';
COMMENT ON COLUMN databus_api_step.id IS '主键 ID';
COMMENT ON COLUMN databus_api_step.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_step.api_id IS '关联的 API ID';
COMMENT ON COLUMN databus_api_step.step_order IS '执行顺序';
COMMENT ON COLUMN databus_api_step.parallel_group IS '并行分组标识';
COMMENT ON COLUMN databus_api_step.type IS '步骤类型';
COMMENT ON COLUMN databus_api_step.target_endpoint IS '目标端点';
COMMENT ON COLUMN databus_api_step.request_mapping_expr IS '请求映射表达式';
COMMENT ON COLUMN databus_api_step.response_mapping_expr IS '响应映射表达式';
COMMENT ON COLUMN databus_api_step.transform_id IS '默认变换 ID';
COMMENT ON COLUMN databus_api_step.timeout IS '超时时间(毫秒)';
COMMENT ON COLUMN databus_api_step.fallback_strategy IS '降级策略 JSON';
COMMENT ON COLUMN databus_api_step.condition_expr IS '执行条件表达式';
COMMENT ON COLUMN databus_api_step.stop_on_error IS '出错是否终止';
COMMENT ON COLUMN databus_api_step.creator IS '创建者';
COMMENT ON COLUMN databus_api_step.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_step.updater IS '更新者';
COMMENT ON COLUMN databus_api_step.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_step.deleted IS '逻辑删除标记';
-- ----------------------------
-- Table structure for databus_api_transform
-- ----------------------------
CREATE TABLE databus_api_transform (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
api_id BIGINT,
step_id BIGINT,
phase VARCHAR(32) NOT NULL,
expression_type VARCHAR(32) NOT NULL,
expression CLOB NOT NULL,
description VARCHAR(512),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE INDEX idx_databus_api_transform_api ON databus_api_transform (tenant_id, api_id);
CREATE INDEX idx_databus_api_transform_step ON databus_api_transform (tenant_id, step_id);
COMMENT ON TABLE databus_api_transform IS '统一外部 API 门户 - 变换配置表';
COMMENT ON COLUMN databus_api_transform.id IS '主键 ID';
COMMENT ON COLUMN databus_api_transform.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_transform.api_id IS '关联的 API ID';
COMMENT ON COLUMN databus_api_transform.step_id IS '关联的步骤 ID';
COMMENT ON COLUMN databus_api_transform.phase IS '执行阶段';
COMMENT ON COLUMN databus_api_transform.expression_type IS '表达式类型';
COMMENT ON COLUMN databus_api_transform.expression IS '表达式内容';
COMMENT ON COLUMN databus_api_transform.description IS '描述信息';
COMMENT ON COLUMN databus_api_transform.creator IS '创建者';
COMMENT ON COLUMN databus_api_transform.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_transform.updater IS '更新者';
COMMENT ON COLUMN databus_api_transform.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_transform.deleted IS '逻辑删除标记';
-- 统一外部网关 - 客户端凭证表DM8
-- 可重复执行的建表脚本,执行前请备份历史数据
DROP TABLE IF EXISTS databus_api_client_credential;
CREATE TABLE databus_api_client_credential (
id BIGINT NOT NULL PRIMARY KEY,
app_id VARCHAR(64) NOT NULL,
app_name VARCHAR(128),
encryption_key VARCHAR(512) NOT NULL,
encryption_type VARCHAR(32) NOT NULL,
signature_type VARCHAR(32) NOT NULL,
enabled BIT DEFAULT '1' NOT NULL,
remark VARCHAR(255),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE UNIQUE INDEX uk_databus_api_client_credential_app ON databus_api_client_credential (app_id);
CREATE INDEX idx_databus_api_client_credential_enabled ON databus_api_client_credential (enabled);
COMMENT ON TABLE databus_api_client_credential IS '统一外部 API 门户 - 客户端凭证表';
COMMENT ON COLUMN databus_api_client_credential.id IS '主键 ID';
COMMENT ON COLUMN databus_api_client_credential.app_id IS '客户端标识';
COMMENT ON COLUMN databus_api_client_credential.app_name IS '客户端名称';
COMMENT ON COLUMN databus_api_client_credential.encryption_key IS '加密密钥 Base64';
COMMENT ON COLUMN databus_api_client_credential.encryption_type IS '加密算法';
COMMENT ON COLUMN databus_api_client_credential.signature_type IS '签名算法';
COMMENT ON COLUMN databus_api_client_credential.enabled IS '是否启用';
COMMENT ON COLUMN databus_api_client_credential.remark IS '备注';
COMMENT ON COLUMN databus_api_client_credential.creator IS '创建者';
COMMENT ON COLUMN databus_api_client_credential.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_client_credential.updater IS '更新者';
COMMENT ON COLUMN databus_api_client_credential.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_client_credential.deleted IS '逻辑删除标记';