环境变量
字段自动 + 说明手写。代码里新增 process.env.* 而本表未登记时,CI 告警(不阻断)。
| 变量 | 必填 | 场景 | 说明 |
|---|---|---|---|
PAYLOAD_SECRET | 是 | runtime | Payload 会话/密码哈希密钥;首次部署用 `deploy.sh <env> secret` 写入 Worker secret。 |
NODE_ENV | 否 | runtime | Next/Payload 运行模式;生产为 production,测试缝在 production 下 fail closed。 |
NEXT_PHASE | 否 | build | Next 构建阶段标记;构建期 D1 使用独立临时库,避免 SQLITE_BUSY。 |
CLOUDFLARE_API_TOKEN | 是 | ops | 部署/迁移执行者的 CF API Token(Workers/D1/R2 编辑权限);不落文件。 |
CLOUDFLARE_ACCOUNT_ID | 是 | ops | CF 账号 id;与 Token 一起由执行者环境变量注入。 |
CRON_SECRET | 否 | runtime | staging/production 的 5 分钟通知 outbox 消费入口鉴权(x-cron-secret)。 |
BIZ_D1_REMOTE | 否 | ops | `true` 时迁移打远端 D1;本地 dev/测试保持未设置。 |
BIZ_D1_PERSIST | 否 | test | 本地 D1 落盘目录;e2e/int 用独立目录,不污染 dev 库。 |
BIZ_R2_PERSIST | 否 | test | 本地 R2 落盘目录(附件/存储测试)。 |
BIZ_WRANGLER_MODULE | 否 | ops | 本地 wrangler 模块入口覆盖(getPlatformProxy 启动本地 D1/R2)。 |
BIZ_PUBLIC_BASE_URL | 否 | runtime | 公开站 canonical/绝对 URL 的基址;未设置时按请求 Host 推导。 |
BIZ_DOCS_URL | 否 | runtime | 独立 docs 子域基址(www-staging/docs/* 301 目标;默认 https://docs-staging.coreott.com)。 |
MAIL_PROVIDER | 否 | runtime | BIZ 事务邮件通道:cf | resend | console(默认 cf;缺 binding/key 回 console)。 |
MAILER_PROVIDER | 否 | runtime | MAIL_PROVIDER 的旧名兼容;MAIL_PROVIDER 优先。 |
BIZ_INSTANCE_COMPATIBILITY_DATE | 否 | runtime | trial/实例 Worker 的 compatibility_date 覆盖(默认 2025-08-15)。 |
BIZ_INSTANCE_KV_NAMESPACE_ID | 否 | runtime | trial/实例 Worker 复用的 STUDIO_CONFIG_KV namespace id。 |
BIZ_CONSOLE_URL | 否 | runtime | 通知邮件正文里的控制台基址(默认 https://console.coreott.com)。 |
BIZ_CF_CREDENTIAL_KEY | 否 | runtime | 实例 CF 凭据密文的加密 key(BIZPROV);生产由 ops 注入。 |
BIZ_E2E | 否 | test | e2e 测试缝总开关;仅非生产 + 显式 1 生效,生产 fail closed。 |
BIZ_E2E_TOKEN_EXPOSURE | 否 | test | 把验证/重置 token 回给测试客户端;生产设置会启动失败。 |
BIZ_E2E_TOTP_PERIOD_SECONDS | 否 | test | e2e 的 TOTP 周期覆盖(默认 30s,测试缩短)。 |
BIZ_AUTH_LOCK_SECONDS | 否 | runtime | 登录失败锁定时长(默认 900s;e2e 缩短为 2s)。 |