3.2 KiB
3.2 KiB
2026-04-21 Env Normalization Checklist
P2-C-01 三服务环境枚举与别名盘点
gateway- 当前输入源是
GATEWAY_ENV。 - 共享环境判定历史上同时接受
production、prod、online。 staging也被视为非开发共享环境,禁止inmemorytoken runtime。
- 当前输入源是
supply-apiResolveEnv只接受dev、staging、prod。- 默认配置路径按
config.<env>.yaml组装。 - 现有 devtest 脚本曾存在
-env=staging -config=config.dev.yaml的错配。
platform-token-runtimeTOKEN_RUNTIME_ENV只接受dev、staging、prod。staging/prod需要显式 PostgreSQL store,dev才允许内存 store。
- 本次盘点覆盖的枚举全集:
- 规范值:
dev、staging、prod - 兼容别名:
production、online
- 规范值:
P2-C-02 统一枚举
仓库内部只保留三种规范值:
devstagingprod
统一规则:
production、online只允许作为兼容输入存在。- 兼容输入一进入服务边界就必须立即折叠为
prod。 - 文档、模板、脚本、报告、CI 产物里不再引入新的别名。
P2-C-03 gateway 归一化入口
唯一入口定在 gateway/internal/config/config.go:
LoadConfig读取GATEWAY_ENV后立刻归一化。ValidateAuthConfig与启动安全校验只消费归一化后的值。bootstrap.go不再维护独立的production/online判定分支。
P2-C-04 supply-api 错配拒绝规则
拒绝条件:
- 当
-env为staging或prod时,-config不得指向config.dev.yaml或config.dev.yml。
错误信息草稿:
config path "<path>" is a dev template and cannot be used with -env=<env>; use config.<env>.yaml or a <env> example template instead
P2-C-05 staging 模板骨架
supply-api/config/config.staging.example.yaml 至少保留以下段落:
serverdatabaseredistokenaudit
P2-C-06 prod 模板骨架
supply-api/config/config.prod.example.yaml 必须额外显式包含:
server.default_supplier_id: 0token.algorithm: RS256token.public_keysettlement.withdraw_enabledsms占位字段
P2-C-07 devtest 参数设计
scripts/devtest/start_dev_stack.sh 改为:
- 使用
LIJIAOQIAO_DEVTEST_SUPPLY_CONFIG作为supply-api配置路径参数。 - 默认值改为
./config/config.staging.example.yaml。 - 不再把
config.dev.yaml硬编码进 staging 启动链路。
P2-C-08 环境归一化检查清单
启动前检查
- 所有新文档和样例文件只出现
dev、staging、prod三种规范值。 - 兼容别名只存在于输入归一化代码,不存在于模板与脚本默认值。
supply-api的staging/prod启动命令不引用config.dev.yaml。
启动后检查
gateway在production或online输入下对外表现为prod语义。supply-api在-env=staging -config=config.dev.yaml时必须 fail fast。platform-token-runtime仍然只接受dev/staging/prod,不新增额外别名。
CI 检查
gateway运行环境归一化相关单测。supply-api运行命令行错配拒绝测试。scripts/devtest/start_dev_stack.sh至少通过bash -n语法检查。