环境变量
判断环境变量能否提交的标准不是文件名,而是它最终运行在哪里:进入浏览器构建的值都应视为公开;数据库、JWT 等服务端秘密永远不能进入前端产物或 Git。
环境责任表
Admin 公开变量
APP_ENV:development、test或production。API_BASE_URL:管理 API 地址;生产通常使用同源/api。
这些值会进入浏览器 JS,不能放数据库密码、JWT Secret 或第三方私钥。
Admin API 秘密变量
DATABASE_URL:PostgreSQL 连接串,用户名和密码中的特殊字符需要 URL 编码。CORS_ORIGINS:允许访问管理 API 的精确浏览器 Origin。JWT_SECRET:生产独立随机密钥,泄露后立即轮换。JWT_EXPIRES_IN:Access Token 有效期。PORT:本地由启动器注入,部署由平台注入。
默认 API 变量
默认 API 没有管理 JWT 变量。未来增加终端用户认证时,应建立自己的环境契约,不复用 admin-api 的秘密文件。
本地 Setup 的写入边界
pnpm setup:
- 只校验已提交的 Admin development API 地址;
- 生成两个服务端
.env.development; - 不生成根
.env; - 不生成 test 或 production 文件;
- 不把密码写入命令行或日志。
非交互模式通过进程环境传入:
CI 应从 Secret 注入这些值。非交互模式检测到已有服务端 .env.development 时会失败,避免静默覆盖。
CORS 填写规则
正确:
错误:
多个 Origin 使用英文逗号分隔。协议、主机和端口任一不同,浏览器都视为不同 Origin。
更完整的维护约束见仓库专题文档:环境配置。