feat: 系统密钥管理模块(数据库加密存储)

后端:
- 新增 system_secrets 表(AES-256-GCM 加密存储)
- 新增 crypto.util.ts 加解密工具
- 新增 SecretService 共享服务(CRUD + 加解密)
- 新增 AdminSecretController 管理端 API(仅超管)
- API 返回值脱敏(*** + 最后4位)

前端(平台后台):
- 新增系统密钥管理页面(按分组展示、CRUD 操作)
- 侧边栏新增「系统密钥」菜单

管理员可在后台网页管理所有密钥,不再需要 SSH 到服务器改配置

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 12:03:37 +08:00
parent b358dbdab1
commit 3b75e26599
14 changed files with 723 additions and 0 deletions
@@ -0,0 +1,13 @@
-- 系统密钥管理表
CREATE TABLE IF NOT EXISTS `system_secrets` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`secret_key` varchar(100) NOT NULL COMMENT '密钥名',
`secret_value` text NOT NULL COMMENT '加密后的值',
`description` varchar(200) DEFAULT NULL COMMENT '说明',
`group_name` varchar(50) DEFAULT 'default' COMMENT '分组',
`env` enum('all','prod','test') DEFAULT 'all' COMMENT '适用环境',
`created_at` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
`updated_at` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_secret_key_env` (`secret_key`, `env`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统密钥管理';