feat:升级功能、密码卡框架、主密钥接口

This commit is contained in:
waner
2026-03-26 17:30:48 +08:00
parent c1e91e76b0
commit 11ed0b5edf
208 changed files with 16742 additions and 1156 deletions
@@ -0,0 +1,26 @@
CREATE TABLE IF NOT EXISTS t_upgrade_task (
id BIGINT PRIMARY KEY,
task_id VARCHAR(64) NOT NULL,
upgrade_mode VARCHAR(16) NOT NULL,
target_component VARCHAR(32) NOT NULL,
package_file_id VARCHAR(64) NOT NULL,
package_name VARCHAR(255) NOT NULL,
package_hash VARCHAR(128) NOT NULL,
current_version VARCHAR(64) NOT NULL,
target_version VARCHAR(64) NOT NULL,
status VARCHAR(32) NOT NULL,
verify_passed TINYINT(1) NOT NULL DEFAULT 0,
verify_message VARCHAR(1024) NULL,
manifest_json TEXT NULL,
detail_log_path VARCHAR(1024) NULL,
error_message VARCHAR(1024) NULL,
operator VARCHAR(64) NULL,
started_at DATETIME(3) NULL,
finished_at DATETIME(3) NULL,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
UNIQUE KEY uk_t_upgrade_task_task_id (task_id),
KEY idx_t_upgrade_task_status (status),
KEY idx_t_upgrade_task_component (target_component),
KEY idx_t_upgrade_task_create_time (create_time)
);
@@ -0,0 +1,157 @@
CREATE TABLE IF NOT EXISTS tms_role_account (
id BIGINT PRIMARY KEY,
role_code VARCHAR(64) NOT NULL,
display_name VARCHAR(128) NOT NULL,
required_ukey_count INT NOT NULL,
password_hash VARCHAR(256) NOT NULL,
password_salt VARCHAR(128) NOT NULL,
status VARCHAR(32) NOT NULL,
need_change_password TINYINT(1) NOT NULL DEFAULT 1,
failed_count INT NOT NULL DEFAULT 0,
locked_until DATETIME(3) NULL,
last_login_at DATETIME(3) NULL,
last_active_at DATETIME(3) NULL,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
UNIQUE KEY uk_tms_role_account_role_code (role_code)
);
CREATE TABLE IF NOT EXISTS tms_role_ukey_binding (
id BIGINT PRIMARY KEY,
role_code VARCHAR(64) NOT NULL,
slot_no INT NOT NULL,
ukey_serial VARCHAR(128) NOT NULL,
ukey_pubkey TEXT NOT NULL,
issuer_sign TEXT NULL,
status VARCHAR(32) NOT NULL,
bound_at DATETIME(3) NOT NULL,
unbound_at DATETIME(3) NULL,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
UNIQUE KEY uk_tms_role_ukey_binding_role_slot (role_code, slot_no),
KEY idx_tms_role_ukey_binding_role_status (role_code, status)
);
CREATE TABLE IF NOT EXISTS tms_auth_session (
id BIGINT PRIMARY KEY,
session_token VARCHAR(128) NOT NULL,
role_code VARCHAR(64) NOT NULL,
auth_level VARCHAR(32) NOT NULL,
issued_at DATETIME(3) NOT NULL,
last_active_at DATETIME(3) NOT NULL,
expires_at DATETIME(3) NOT NULL,
logout_at DATETIME(3) NULL,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
UNIQUE KEY uk_tms_auth_session_token (session_token),
KEY idx_tms_auth_session_role_code (role_code)
);
CREATE TABLE IF NOT EXISTS tms_auth_challenge (
id BIGINT PRIMARY KEY,
challenge_id VARCHAR(128) NOT NULL,
role_code VARCHAR(64) NOT NULL,
purpose VARCHAR(32) NOT NULL,
nonce VARCHAR(256) NOT NULL,
expires_at DATETIME(3) NOT NULL,
used TINYINT(1) NOT NULL DEFAULT 0,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
UNIQUE KEY uk_tms_auth_challenge_challenge_id (challenge_id)
);
CREATE TABLE IF NOT EXISTS tms_auth_audit_log (
id BIGINT PRIMARY KEY,
event_type VARCHAR(64) NOT NULL,
role_code VARCHAR(64) NULL,
operator_role_code VARCHAR(64) NULL,
result VARCHAR(32) NOT NULL,
detail_json JSON NULL,
remote_ip VARCHAR(64) NULL,
create_time DATETIME(3) NOT NULL,
update_time DATETIME(3) NOT NULL,
KEY idx_tms_auth_audit_log_event_type (event_type),
KEY idx_tms_auth_audit_log_role_code (role_code)
);
INSERT IGNORE INTO tms_role_account (
id,
role_code,
display_name,
required_ukey_count,
password_hash,
password_salt,
status,
need_change_password,
failed_count,
locked_until,
last_login_at,
last_active_at,
create_time,
update_time
)
VALUES
(
11001,
'SUPER_ADMIN',
'超级管理员',
3,
'Viuew8WE+qziUZwGGU0x25cUpzsTF+QvQFU0uhb+yVA=',
'init-super-admin-salt-20260325',
'UNENABLED',
1,
0,
NULL,
NULL,
NULL,
CURRENT_TIMESTAMP(3),
CURRENT_TIMESTAMP(3)
),
(
11002,
'KEY_ADMIN',
'密钥管理员',
2,
'/xqmDy3A/q9X5p7XWznIPSBabQ6bxTLAPgtHQ6Be33c=',
'init-key-admin-salt-20260325',
'ACTIVE',
1,
0,
NULL,
NULL,
NULL,
CURRENT_TIMESTAMP(3),
CURRENT_TIMESTAMP(3)
),
(
11003,
'AUDIT_ADMIN',
'审计管理员',
1,
'j/J1LKyUOzVEJfbbHe2dwKBKNdabRk502olk/LWIwhg=',
'init-audit-admin-salt-20260325',
'UNENABLED',
1,
0,
NULL,
NULL,
NULL,
CURRENT_TIMESTAMP(3),
CURRENT_TIMESTAMP(3)
),
(
11004,
'OPS_ADMIN',
'运维管理员',
1,
'2e9F4aCgsDb+AuD1LrBEqEg8yjy3ODo27UHtx06vj/A=',
'init-ops-admin-salt-20260325',
'UNENABLED',
1,
0,
NULL,
NULL,
NULL,
CURRENT_TIMESTAMP(3),
CURRENT_TIMESTAMP(3)
);
@@ -0,0 +1,2 @@
ALTER TABLE tms_init_task
ADD COLUMN task_type VARCHAR(32) NOT NULL DEFAULT 'INIT' COMMENT '任务类型:INIT/RESET' AFTER task_id;
@@ -0,0 +1,12 @@
CREATE TABLE IF NOT EXISTS sys_device_software_version (
id BIGINT PRIMARY KEY,
component_code VARCHAR(64) NOT NULL,
component_name VARCHAR(128) NOT NULL,
current_version VARCHAR(128) NOT NULL,
source_type VARCHAR(32) NOT NULL,
detected_at DATETIME NULL,
remarks VARCHAR(255) NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_sys_device_software_version_component_code (component_code)
);
@@ -0,0 +1 @@
RENAME TABLE sys_device_software_version TO tms_device_software_version;
@@ -0,0 +1,15 @@
INSERT INTO tms_device_software_version
(id, component_code, component_name, current_version, source_type, detected_at, remarks)
VALUES
(1001, 'RABBITMQ', '消息队列', 'RabbitMQ V3.8.21', 'MANUAL', NOW(), '出厂预置'),
(1002, 'TLQ', '消息队列', 'tonglink/Q V8.1.11', 'MANUAL', NOW(), '出厂预置'),
(1003, 'TIDB', '数据库', 'TiDB V8.1.0', 'MANUAL', NOW(), '出厂预置'),
(1004, 'NGINX', 'Nginx', 'Nginx V1.20', 'MANUAL', NOW(), '出厂预置'),
(1005, 'APP', '标准收发器企业版', '标准收发器企业版 V1.3.2', 'MANUAL', NOW(), '出厂预置')
ON DUPLICATE KEY UPDATE
component_name = VALUES(component_name),
current_version = VALUES(current_version),
source_type = VALUES(source_type),
detected_at = VALUES(detected_at),
remarks = VALUES(remarks),
update_time = CURRENT_TIMESTAMP;