feat(settings): 运行配置中心——.env 业务参数统一到后台页面维护
CI / backend (push) Canceled after 0s

- 新增 app_configs 表与 appconfig 注册表:读取优先级 页面 → .env → 默认,删除即回退
- 页面可配 7 项:支付回调基址、成功回跳、Webhook 密钥(加密入库)、未验签放行开关、CORS、可信代理、GeoIP 路径
- 引导密钥(JWT_SECRET / OPSLIC_MASTER_KEY / OFFLINE_LICENSE_SEED)与部署参数只读展示掩码+指纹,永不入库
- 校验:URL 格式、密钥长度≥16、CIDR、release 下禁止开启未验签回调;变更写审计日志
- 消费点改造:支付回调地址、Waffo 回跳、webhook 验签、可信代理、CORS、GeoIP 统一走配置中心
- 前端新增「审计与设置 → 运行配置」页(分组表格 + 来源标记 + 编辑弹窗 + 恢复默认)
- .env.example 补注释:哪些必须留在 .env、哪些已收敛到页面
This commit is contained in:
Logan.Li committed 2026-11-01 06:17:58 +08:00
1 parent b0b611eee2
commit 83a3630404
17 files changed
+1204 -33

No files matched your search

+22
View File
@@ -117,6 +117,7 @@ SUCCESS_URL=https://l123.91ai.io/api/v1/purchase/success
# 目录权限 0700、文件 0600,不通过任何静态路由对外暴露。默认 /data/payment-certs
# PAYMENT_CERT_DIR=/data/payment-certs
# 对外基址(用于生成微信/支付宝回调地址展示)
# 已收敛到后台「系统设置 → 运行配置」,此处仅作兜底(页面值优先)
# PAYMENT_PUBLIC_BASE_URL=https://licence.rlwj.cn
# 宿主机映射端口(容器内固定 9001)
HOST_PORT=9001
@@ -131,3 +132,24 @@ VITE_API_BASE_URL=http://localhost:9001/api
# 生产环境 API 地址(构建时注入)
# VITE_APP_BASE_API=/api
# ============================================
# 运行配置中心(后台「系统设置 → 运行配置」)
# ============================================
# 读取优先级:app_configs 表(页面) → 环境变量 → 注册表默认值。
# 下面的业务参数建议只在页面维护,.env 里的同名值会被页面值覆盖
# (页面点「恢复默认」即删除库值、回退到这里):
# PAYMENT_PUBLIC_BASE_URL 支付回调对外基址
# SUCCESS_URL 支付成功回跳地址
# INTERNAL_WEBHOOK_SECRET 通用回调验签密钥(页面加密入库)
# ALLOW_UNVERIFIED_WEBHOOK 放行未验签回调(仅调试;release 下页面禁止开启)
# CORS_ORIGINS 跨域白名单(改后需重启)
# TRUSTED_PROXIES 可信反代网段(改后需重启)
# GEOIP_DB_PATH GeoIP 库路径(改后需重启)
#
# 以下引导密钥【必须】留在 .env,页面只读展示指纹,不接受页面写入:
# PORT / GIN_MODE / DB_DRIVER / DB_NAME 进程启动参数(数据库之前就要用)
# JWT_SECRET 直接决定后台登录令牌签发能力
# OPSLIC_MASTER_KEY 解开库内全部密文的根密钥(不入库)
# OFFLINE_LICENSE_SEED 离线授权签名种子(轮换将使旧离线证失效)
# PAYMENT_CERT_DIR 容器内证书目录(数据卷路径)