安全公告 — 恶意 litellm 版本 1.82.7 与 1.82.8 已从 PyPI 移除(存在 API 密钥外泄风险)。请卸载、轮换已暴露凭据,并升级至安全版本(如 1.82.9+)。运行 pip show litellm 以确认。 PyPI · README

Vercel 环境变量清单(复制到 `.local-secrets` 后再填)

Framework: Next.js · Node: 20。

Vercel 环境变量清单(复制到 `.local-secrets` 后再填)

不要把填好真实值的副本提交 Git。请在本地创建:

enterprise/.local-secrets/vercel-env-values.local.md,把下面整块复制进去再替换 <…>

Vercel 项目设置摘要

ProjectRoot Directory
web-portalenterprise/apps/web-portal
admin-consoleenterprise/apps/admin-console
字段Install Command
两端相同(install)cd ../.. && npx --yes pnpm@9.12.0 install --no-frozen-lockfile
admin-console(build)cd ../.. && npx --yes pnpm@9.12.0 exec turbo run build --filter=@agenticx/app-admin-console
web-portal(build)cd ../.. && npx --yes pnpm@9.12.0 exec turbo run build --filter=@agenticx/app-web-portal

Vercel 机器上直接执行 `pnpm` 往往是 6.35.1,会触发 ERR_PNPM_UNSUPPORTED_ENGINE;须用 npx pnpm@9.12.0pnpm-lock.yaml 未入库(见 enterprise/.gitignore),不能用 --frozen-lockfile

字段Build Command
web-portalcd ../.. && pnpm exec turbo run build --filter=@agenticx/app-web-portal
admin-consolecd ../.. && pnpm exec turbo run build --filter=@agenticx/app-admin-console

Framework: Next.js · Node: 20


两项目共通(Production / Preview 均建议配置)

web-portal 与 admin-console 两套 Vercel Project 里都加同名变量:

变量名说明
DATABASE_URLSupabase Postgres 直连串,通常带 ?sslmode=require
AUTH_JWT_PRIVATE_KEYPEM 全文(含 BEGIN/END,多行)
AUTH_JWT_PUBLIC_KEYPEM 全文
DEFAULT_TENANT_ID默认租户
DEFAULT_DEPT_ID默认部门
NEXT_PUBLIC_SSO_PROVIDERS如:id:显示名,多个逗号分隔
SSO_STATE_SIGNING_SECRETOIDC state 签名
SSO_PROVIDER_SECRET_KEY与 SSO 会话/加密相关的密钥(按仓库实际约定填写)
AGX_PROVIDER_SECRET_KEYAdmin 写入 provider Key 的对称加密密钥(AES-GCM),须与文档/实现一致

各 IdP 的 SSO_OIDC_* 按控制台要求一并配置(两台若都要 SSO,就都配)。


仅 web-portal

变量名示例
GATEWAY_COMPLETIONS_URLhttps://gateway.<你的域名>/v1/chat/completions

按需(不建议生产长期使用):

变量名说明
AUTH_DEV_OWNER_PASSWORD开发/引导用
ENABLE_DEV_BOOTSTRAP生产建议关闭

仅 admin-console

变量名说明
ADMIN_CONSOLE_SESSION_SECRET管理台 session,生产必填
ADMIN_CONSOLE_LOGIN_PASSWORD管理台密码登录(生产建议过渡到真实账号 RBAC)
GATEWAY_INTERNAL_TOKEN提供给 gateway GATEWAY_INTERNAL_TOKEN,拉 internal 快照/配额/供应商
GATEWAY_BASE_URLhttps://gateway.<你的域名>(无尾随 /v1

若 internal 路由为绝对 URL,按需增加管理台侧的 base URL env(以实现为准)。


Gateway(Fly/Railway/VM)侧应对齐(非 Vercel)

网关在别处部署时至少需与 admin 约定的:

变量名说明
DATABASE_URL与 Supabase 相同库(audit/usage 等)
AUTH_JWT_PUBLIC_KEY与前台签发 access JWT 一致
GATEWAY_INTERNAL_TOKEN与 admin GATEWAY_INTERNAL_TOKEN 一致
GATEWAY_REMOTE_POLICY_SNAPSHOT_URLGET,Bearer 同上
GATEWAY_REMOTE_PROVIDERS_URLGET,Bearer 同上
GATEWAY_REMOTE_QUOTA_CONFIG_URLGET,Bearer 同上

具体路径以实现仓库中 admin internal/* API 为准。


`.local-secrets` 可复制骨架(填空后仅存本地)

以下为骨架,可复制到 enterprise/.local-secrets/vercel-env-values.local.md

markdown
1# Vercel 填值草稿(请勿提交)
2
3## web-portal
4DATABASE_URL=<>
5AUTH_JWT_PRIVATE_KEY=
6(多行 PEM)
7AUTH_JWT_PUBLIC_KEY=
8DEFAULT_TENANT_ID=<>
9DEFAULT_DEPT_ID=<>
10NEXT_PUBLIC_SSO_PROVIDERS=<>
11SSO_STATE_SIGNING_SECRET=<>
12SSO_PROVIDER_SECRET_KEY=<>
13AGX_PROVIDER_SECRET_KEY=<>
14GATEWAY_COMPLETIONS_URL=https://gateway.<>/v1/chat/completions
15
16## admin-console
17(同上共通项再填一遍)
18
19ADMIN_CONSOLE_SESSION_SECRET=<>
20ADMIN_CONSOLE_LOGIN_PASSWORD=<>
21GATEWAY_INTERNAL_TOKEN=<>
22GATEWAY_BASE_URL=https://gateway.<>