- 上游客户端接口化:UpstreamClient + HTTP / fixture 两实现(env UPSTREAM_SOURCE 切换;fixture 读仓库根样例快照,错误分支由 key 内容约定触发)
- 失败分类:401 / 403 → key_rejected;其余非 2xx / 网络故障 / 超时 / 响应异常 → upstream_unavailable
- /api/manage/api-keys 三端点:清单(按 id 升序,敏感列不出接口)· 登记(上游验证 → 上游字段全组入库)· 启停(幂等、启用需验证并清 consecutive_401s)
- 登记成功触发「立即异步补一轮」hook(引擎骨架占位,阶段 4 填充)
- 统一错误信封:onError → 500 internal · notFound → 404
- 修正:load-env 未被服务端接线(此前只有 drizzle-kit 接了),env.ts 顶部补副作用导入
- 实施计划:进度表阶段 2 ✅ · 实现假设 #11–#14
29 lines
1.2 KiB
Bash
29 lines
1.2 KiB
Bash
# 环境变量样例 —— 复制为 .env 并填真实值(.env 不入库;部署时由实例运营方经 env 注入)
|
||
|
||
# ---- 服务端(apps/server) ----
|
||
|
||
# 监听端口(Vite dev 代理与生产反代都指向它)
|
||
PORT=3000
|
||
|
||
# PostgreSQL 连接串
|
||
# 本地开发:与仓库根 docker-compose.yml 配套(宿主端口 5433)
|
||
# 生产:改为实例运营方提供的连接串
|
||
DATABASE_URL=postgres://naku:naku-dev@localhost:5433/naku
|
||
|
||
# 管理面口令(请求头 X-Manage-Token;见 API 契约 约定 6)
|
||
MANAGE_TOKEN=change-me
|
||
|
||
# 凭证主密钥(HKDF 派生 hmac / aes 子密钥;丢失 = 全部 key 需重新登记)
|
||
# 生成示例:openssl rand -base64 32
|
||
KEYS_MASTER_KEY=change-me-32-bytes-base64
|
||
|
||
# 上游 NewAPI 站点地址(同步引擎调用的 BaseURL,不带尾部斜杠)
|
||
NEWAPI_BASE=https://your-newapi-instance.example.com
|
||
|
||
# 上游客户端实现:http(默认,调真实站点)/ fixture(开发期读仓库根样例快照,见实施计划 §6)
|
||
# 仅在离线开发 / 本地验证时设为 fixture——生产必须保持 http
|
||
# UPSTREAM_SOURCE=fixture
|
||
|
||
# 样例文件目录(仅 fixture 实现使用;留空 = 仓库根)
|
||
# NEWAPI_FIXTURE_DIR=
|