让七月迭代具备可直接部署的配置基线

补齐三套环境配置、测试环境部署门禁与 system_config 初始化,并按当前无企微应用的约束将企微凭据改为明文存储。

Constraint: 当前测试环境尚无企微应用及历史企微密文数据

Rejected: 使用启动环境变量加密企微凭据 | 用户明确要求直接明文保存并移除加密密钥

Confidence: high

Scope-risk: moderate

Directive: 企微真实闭环完成前保持两个旧审批入口开关为 true

Tested: gofmt;git diff --check;bash -n;docker compose config;Gitea workflow YAML 解析;OpenAPI 重新生成

Not-tested: go test;常规 go build;LSP;实际数据库迁移;真实测试环境部署;企微真实联调
This commit is contained in:
2026-07-25 18:18:45 +08:00
parent 73f5125d3d
commit cb26217205
29 changed files with 277 additions and 232 deletions

View File

@@ -0,0 +1,3 @@
-- 系统配置上线后可能已经被环境管理员修改,回滚代码时不得删除业务配置事实。
-- 旧版本会把无法识别的配置按未注册只读项处理,因此这里安全保留数据。
SELECT 1;

View File

@@ -0,0 +1,81 @@
-- 初始化七月迭代已注册的受控系统配置。
-- 已存在的配置由环境管理员维护,迁移不得覆盖人工设置。
INSERT INTO tb_system_config (
config_key,
config_value,
value_type,
module,
description,
is_readonly,
is_sensitive,
creator,
updater
)
VALUES
(
'carrier_callback.ctcc_realname.enabled',
'false',
'bool',
'carrier_callback',
'是否处理中国电信实名回调',
false,
false,
0,
0
),
(
'carrier_callback.cmcc_realname.enabled',
'false',
'bool',
'carrier_callback',
'是否处理中国移动实名回调',
false,
false,
0,
0
),
(
'carrier_callback.cucc_realname.enabled',
'false',
'bool',
'carrier_callback',
'是否处理中国联通实名成功回调',
false,
false,
0,
0
),
(
'carrier_callback.cucc_realname_removal.enabled',
'false',
'bool',
'carrier_callback',
'是否处理中国联通解除实名回调',
false,
false,
0,
0
),
(
'c2b.payment.card_allowed_methods',
'["wallet","wechat","alipay"]',
'json',
'c2b.payment',
'卡资产允许的C端支付方式',
false,
false,
0,
0
),
(
'c2b.payment.device_allowed_methods',
'["wallet","wechat","alipay"]',
'json',
'c2b.payment',
'设备资产允许的C端支付方式',
false,
false,
0,
0
)
ON CONFLICT (config_key) DO NOTHING;

View File

@@ -0,0 +1,15 @@
-- 回滚到密文字段结构;当前无企微应用数据,不执行凭据转换。
ALTER TABLE tb_wecom_application
ADD COLUMN secret_ciphertext bytea NOT NULL DEFAULT ''::bytea,
ADD COLUMN callback_token_ciphertext bytea NOT NULL DEFAULT ''::bytea,
ADD COLUMN encoding_aes_key_ciphertext bytea NOT NULL DEFAULT ''::bytea;
ALTER TABLE tb_wecom_application
DROP COLUMN secret,
DROP COLUMN callback_token,
DROP COLUMN encoding_aes_key;
COMMENT ON TABLE tb_wecom_application IS '企业微信自建应用安全连接配置';
COMMENT ON COLUMN tb_wecom_application.secret_ciphertext IS '应用 Secret 的 AES-256-GCM 密文';
COMMENT ON COLUMN tb_wecom_application.callback_token_ciphertext IS '回调 Token 的 AES-256-GCM 密文';
COMMENT ON COLUMN tb_wecom_application.encoding_aes_key_ciphertext IS '回调 EncodingAESKey 的 AES-256-GCM 密文';

View File

@@ -0,0 +1,15 @@
-- 当前环境尚未创建企微应用,直接将企微连接凭据改为明文存储。
ALTER TABLE tb_wecom_application
ADD COLUMN secret varchar(512) NOT NULL DEFAULT '',
ADD COLUMN callback_token varchar(512) NOT NULL DEFAULT '',
ADD COLUMN encoding_aes_key varchar(43) NOT NULL DEFAULT '';
ALTER TABLE tb_wecom_application
DROP COLUMN secret_ciphertext,
DROP COLUMN callback_token_ciphertext,
DROP COLUMN encoding_aes_key_ciphertext;
COMMENT ON TABLE tb_wecom_application IS '企业微信自建应用连接配置';
COMMENT ON COLUMN tb_wecom_application.secret IS '企业微信自建应用 Secret 明文';
COMMENT ON COLUMN tb_wecom_application.callback_token IS '企业微信回调 Token 明文';
COMMENT ON COLUMN tb_wecom_application.encoding_aes_key IS '企业微信回调 EncodingAESKey 明文';