ToolJet 3.20 配置参数详解

ToolJet v3.20.246-lts 全量配置参数详解:实例基础、安全密钥、主库与内置数据库、队列工作流、会话口令、注册访问控制、SSO、SMTP、可观测与功能开关逐项给出含义、默认值与生效方式,全部经真实部署实测或官方文档实查。

ToolJetToolJet低代码2026/10/21

ToolJet 3.20 配置参数详解

目标:系统梳理 ToolJet v3.20.246-lts 的全部配置参数,按「实例基础 / 安全密钥 / 数据库 / 队列与工作流 / 会话与口令 / 登录注册 / SSO / 邮件 / 集成 / 可观测 / 功能开关」逐项给出含义、默认值与生效方式,参数行为均经真实部署实测或官方文档实查(查询日期 2026-10-21),帮助读者一次配准生产实例。

一、环境信息

  • 操作系统:Ubuntu 22.04.4 LTS(x86_64)
  • ToolJet:v3.20.246-lts 社区版(tooljet/tooljet-ce,2026-10-15 发布)
  • 部署形态:官方 Docker Compose 方案(主服务 + PostgreSQL 16,.env 统一注入),部署过程见《ToolJet 3.20 Docker Compose 部署指南》
  • 参数来源:随部署镜像发布的 .env.example(v3.20.246-lts 标签,182 行)、官方环境变量文档 docs.tooljet.ai/docs/setup/env-vars、以及本文实测部署的行为验证
  • 标注约定:【实测】= 本文部署环境中验证过实际行为;【实查】= 官方文档/示例文件实查(2026-10-21)

二、前置条件

  1. 已按《ToolJet 3.20 Docker Compose 部署指南》完成一次成功部署(curl /api/health 返回 {"works":"yeah",...});
  2. 能编辑部署目录下的 .env 并重建服务;
  3. 理解两条基本原则:ToolJet 的配置面几乎全部收敛在 .env 一处;改完必须重建服务才生效(不是简单 restart,见第三节)。

三、参数查看与修改方式

3.1 查看当前生效参数

方式一:进入服务打印进程环境(实测):

cd /opt/tooljet
docker compose exec tooljet env | grep -E '^(PG_|TOOLJET_|SECRET_KEY|LOCKBOX)' | sort

实测输出节选:

LOCKBOX_MASTER_KEY=30f0b8b62ab3360b21759611df643f8210ba00e2a9a7e29da5f2d3e1c22b1b0d
PG_DB=tooljet_production
PG_HOST=postgres
PG_PASS=q1w2e3r4
PG_USER=postgres
TOOLJET_DB=tooljet_db
TOOLJET_DB_HOST=postgres
TOOLJET_DB_PASS=q1w2e3r4
TOOLJET_DB_USER=postgres
TOOLJET_HOST=http://192.168.1.62:8137

方式二:看启动自检日志。主服务每次启动会输出一段配置摘要(实测日志行,逐行照抄):

{"level":"info","msg":"global HTTP proxy: Not configured"}
{"level":"info","msg":"Frame embedding: enabled"}
{"level":"info","msg":"Metrics Enabled: true"}
{"level":"info","msg":"OpenTelemetry: false"}
{"level":"info","msg":"Environment: production"}
{"level":"info","msg":"ORM logging level: error"}

💡 这段自检日志是核对配置是否注入成功的最快手段:Metrics Enabled、ORM logging level、global HTTP proxy 三行分别对应 ENABLE_METRICS、ORM_LOGGING、TOOLJET_HTTP_PROXY 的当前值。

3.2 修改参数与生效方式

cd /opt/tooljet
vi .env                      # 修改参数
docker compose up -d         # 重建服务使新值生效

⚠️ 注意:docker compose restart 只重启进程、不会重读 .env(环境变量在创建时注入)。正确做法是 docker compose up -d,Compose 检测到配置变化会自动重建对应服务(实测重建期间服务中断约 20~40 秒,低峰操作)。

3.3 参数命名规律

  • 库连接类前缀:PG_*(主库)、TOOLJET_DB_*(内置库)、PGRST_*(内置库 REST API);
  • 开关类变量取值就是字符串 true/false,不是布尔解析(例如 ENABLE_METRICS === 'true' 才生效,实测留空等同关闭);
  • 时长类变量单位各异:会话/链接为分钟,工作流节点超时为毫秒,工作流整体超时为秒,口令有效期为天。

四、参数总览

v3.20.246-lts 的 .env.example 与官方文档覆盖的参数约 80 项,按用途分 12 类:

分类代表参数作用
实例基础TOOLJET_HOST、TOOLJET_EDITION、DEPLOYMENT_PLATFORM对外地址与版本形态
安全密钥LOCKBOX_MASTER_KEY、SECRET_KEY_BASE、MFA_MASTER_SECRET凭据与会话加密
主库连接PG_HOST/DB/USER/PASS、DATABASE_URL、ORM_LOGGING应用元数据库
内置数据库TOOLJET_DB_、PGRST_、PG_DB_OWNERToolJet Database 功能
队列与工作流WORKER、REDIS_、TOOLJET_WORKFLOW_CONCURRENCY、WORKFLOW_任务处理与自动化
会话与口令USER_SESSION_EXPIRY、PASSWORD_、LINK_EXPIRY_MINUTES、PAT_登录态与口令策略
注册与访问控制DISABLE_SIGNUPS、SSO_ACCEPTED_DOMAINS、ENABLE_CORS、DISABLE_APP_EMBED谁能进、怎么进
SSO/LDAPSSO_GOOGLE_OAUTH2_CLIENT_ID、SSO_GIT_OAUTH2_*、DISABLE_LDAP_GROUP_SYNC单点登录
邮件 SMTPSMTP_*、DEFAULT_FROM_EMAIL邀请/重置邮件
第三方集成GOOGLE_CLIENT_ID、SLACK_CLIENT_ID、GOOGLE_MAPS_API_KEY数据源 OAuth
可观测ENABLE_METRICS、ENABLE_OTEL、APM_VENDOR、SENTRY_DNS、LOG_LEVEL指标与日志
功能开关ENABLE_MULTIPLAYER_EDITING、COMMENT_FEATURE_ENABLE、ENABLE_MARKETPLACE_FEATURE、MAX_JSON_SIZE、FORWARD_RESTAPI_COOKIES特性取舍

关键差异与读表建议:先保住「必配 12 项」(部署篇第六节的最小集),再按场景增配——多人协作先看「会话与口令」,对外暴露实例先看「注册与访问控制」,接企业身份源看 SSO 类,接监控看可观测类。

五、核心参数分类详解

5.1 实例基础

TOOLJET_HOST 【实测】:实例对外完整地址,必须 http:// 或 https:// 开头。实测值 http://192.168.1.62:8137。影响应用分享链接、邀请链接、密码重置链接与 reset-superadmin 生成的重置链接;端口必须与对外映射端口一致,否则生成的链接打不开。

TOOLJET_EDITION 【实查】:ce(默认)/ ee。compose 部署时在 docker compose up 前设置;配合企业版镜像使用,社区版不用管。

DEPLOYMENT_PLATFORM 【实查】:docker。遥测上报的部署平台标记,照抄示例文件即可。

SERVER_HOST 【实查】:服务器主机名标记,示例文件中为 <hostname> 占位,一般不填。

CHECK_FOR_UPDATES 【实查】:默认 true,每 24 小时检查一次新版本;离线环境设 false。

5.2 安全密钥

LOCKBOX_MASTER_KEY 【实测】:32 字节十六进制(openssl rand -hex 32 生成)。加密所有数据源凭据。⚠️ 一旦投入使用不可更换,否则全部凭据无法解密;轮换必须走官方 rotate:keys:prod 脚本(支持 --dry-run 演练,实查脚本支持该参数)。

SECRET_KEY_BASE 【实测】:64 字节十六进制。加密会话 Cookie。更换后所有登录态失效(用户需重新登录),可在告知用户的前提下更换。

MFA_MASTER_SECRET 【实查】:企业版两步认证的派生根密钥,社区版不用。

PGRST_JWT_SECRET 【实查】:内置数据库 REST API 的 JWT 密钥,openssl rand -hex 32 生成;不设则内置数据库拒绝认证请求。

5.3 主库连接

PG_HOST / PG_PORT / PG_DB / PG_USER / PG_PASS 【实测】:主库连接五件套。compose 部署 PG_HOST=postgres(服务名,实测可用);首次启动自动建库(实测启动日志 Created database tooljet_production)。

DATABASE_URL 【实查】:合并式连接串 postgres://用户:口令@主机:5432/库名?sslmode=disable。设置后启动脚本从连接串解析库地址(实测 entrypoint 脚本逻辑:DATABASE_URL 非空时优先按其解析 PG_HOST/PG_PORT),两套写法二选一。

PG_DB_OWNER 【实查】:默认开启——启动时自动建库并创建所需 PostgreSQL 扩展(实测迁移日志含 CREATE EXTENSION IF NOT EXISTS "pgcrypto")。数据库账号无 CREATEDB 权限时设 false 并手工建库建扩展。

ORM_LOGGING 【实测】:TypeORM 日志级别。all=全量 SQL(实测启动后每条查询都打 query: SELECT ... 日志,控制台噪声极大);生产推荐 error(仅错误与慢查询)或留空。实测 ORM_LOGGING=error 后仅剩业务日志。

LOG_LEVEL 【实查】:应用日志总开关(pino 级别 trace|debug|info|warn|error|fatal)。未设置时回退到 ORM_LOGGING 的值(官方 .env.example 注释说明)。想看访问日志设 info。

SLOW_QUERY_LOGGING_THRESHOLD / CUSTOM_QUERY_LOGGING_LEVEL / DISABLE_CUSTOM_QUERY_LOGGING 【实查】:慢查询阈值(毫秒,默认 1)、ORM 查询日志级别覆盖(['query','warn','error'])、关闭自定义查询日志。

5.4 内置数据库(ToolJet Database)

TOOLJET_DB / TOOLJET_DB_HOST / TOOLJET_DB_USER / TOOLJET_DB_PASS / TOOLJET_DB_PORT 【实测】:内置库连接信息。库 tooljet_db 启动时自动创建(实测 \l 可见);compose 部署 TOOLJET_DB_HOST=postgres。

TOOLJET_DB_RECONFIG 【实测】:默认 true,启动时重建内置库访问配置。

TOOLJET_DB_STATEMENT_TIMEOUT 【实查】:内置库单条语句超时,默认 60000 毫秒。

TOOLJET_DB_BULK_UPLOAD_MAX_ROWS / TOOLJET_DB_BULK_UPLOAD_MAX_CSV_FILE_SIZE_MB 【实查】:内置库批量上传限制,默认 5000 行 / 5MB。

PGRST_DB_URI / PGRST_HOST / PGRST_SERVER_PORT / PGRST_DB_PRE_CONFIG 【实测】:内置库 REST API(PostgREST)配置。PGRST_DB_URI 必须与 TOOLJET_DB_* 凭据一致(实测值 postgres://postgres:q1w2e3r4@postgres/tooljet_db);PGRST_DB_PRE_CONFIG=postgrest.pre_config 为固定值照抄。

5.5 队列与工作流

WORKER 【实测】:true 开启工作流任务处理;false/留空为纯 HTTP 模式。实测单实例部署 WORKER=true 时主服务自动拉起内建 Redis(启动日志首行 Redis started),无需外部 Redis。

💡 技术拓展:任务队列存储的选型——单实例用内建 Redis(随服务进程启动,零配置);多实例/独立 Worker 必须外接有状态 Redis(官方要求 v7.x,且启动参数须含 --appendonly yes --maxmemory-policy noeviction 防任务丢失)。另有早期版本的 Temporal 方案已被 BullMQ 取代(官方提供迁移指引)。本文单实例实测采用内建 Redis。

队列形态特点适用场景
内建 Redis随服务自启、零配置单实例部署
外接 Redis(BullMQ)持久化、多 Worker 共享队列多实例/独立 Worker 扩容
Temporal(旧方案)已废弃迁移路线仅存量环境

REDIS_HOST / REDIS_PORT / REDIS_USER / REDIS_PASSWORD / REDIS_DB / REDIS_TLS 【实查】:外接 Redis 连接参数,仅多实例或独立 Worker 部署需要;内建 Redis 时不用填(单实例实测未填、工作流正常)。

TOOLJET_WORKFLOW_CONCURRENCY 【实查】:每个 Worker 并发处理工作流任务数,默认 5。

WORKFLOW_TIMEOUT_SECONDS / WORKFLOW_JS_MEMORY_LIMIT_MB / WORKFLOW_JS_TIMEOUT_MS 【实查】:工作流执行超时(默认 60 秒)、runjs/loop 节点内存上限(默认 20MB)、节点执行超时(默认 100 毫秒)。

TOOLJET_QUEUE_DASH_PASSWORD 【实查】:工作流队列看板口令(开启 Worker 后访问队列管理界面用)。

TOOLJET_WORKFLOW_SANDBOX_BYPASS 【实查】:true 时绕过 Python 执行沙箱(不支持 SYS_ADMIN 能力的平台用,安全降级需明知)。

5.6 会话与口令策略

USER_SESSION_EXPIRY 【实测】:登录会话时长(分钟),实测配置 2880(2 天)。

PASSWORD_RETRY_LIMIT / DISABLE_PASSWORD_RETRY_LIMIT 【实查】:连续登录失败锁定阈值(默认 5 次);DISABLE_PASSWORD_RETRY_LIMIT=true 关闭锁定。

LINK_EXPIRY_MINUTES 【实查】:邀请、忘记密码、邮箱验证链接有效期(分钟),默认 1440(24 小时)。

PASSWORD_EXPIRY_DAYS 【实查】:口令有效期(天),默认 30,到期强制重置;0 关闭过期策略。

ENABLE_PASSWORD_COMPLEXITY_RULES 【实查】:true 启用强口令规则——12~24 位且必须含大小写字母、数字、特殊字符;默认规则仅要求至少 5 位。

PAT_SESSION_EXPIRY / PAT_EXPIRY 【实查】:个人访问令牌(PAT)的会话时长(分钟)与有效期(天)。

5.7 注册与访问控制

DISABLE_SIGNUPS 【实查】:true 后仅受邀用户可注册,注册页保留但不可用(实测部署开启此策略需多工作区特性)。

SSO_DISABLE_SIGNUPS / SSO_ACCEPTED_DOMAINS 【实查】:SSO 登录是否禁止自动建号;允许登录的邮箱域名白名单(逗号分隔)。

HIDE_ACCOUNT_SETUP_LINK 【实查】:true 隐藏管理员页面的账号开通链接(配 SMTP 发欢迎邮件的场景)。

ENABLE_ONBOARDING_QUESTIONS_FOR_ALL_SIGN_UPS 【实查】:true 让所有新注册用户都走引导问卷。

ENABLE_CORS 【实查】:默认拒绝跨 TOOLJET_HOST 的访问;前后端不同域部署时设 true(实测启动日志可见 CORS 域集合随 TOOLJET_HOST 生成:Rebuilt CORS origins set in Redis: 0 origin(s))。

DISABLE_APP_EMBED / ENABLE_PRIVATE_APP_EMBED 【实查】:true 禁用应用 iframe 嵌入;ENABLE_PRIVATE_APP_EMBED=true 允许私有应用嵌入(实测启动日志行 Frame embedding: enabled 对应默认状态)。

MAX_JSON_SIZE 【实查】:服务端接受的最大 JSON 体积,默认 50MB,导入大应用 JSON 时调大(如 "150mb")。

FORWARD_RESTAPI_COOKIES 【实查】:true 时 REST API 数据源转发 Cookie(仅自托管)。

NODE_EXTRA_CA_CERTS 【实查】:自签名 HTTPS 端点场景,指向 PEM 证书文件绝对路径。

TOOLJET_HTTP_PROXY 【实测】:服务出网代理(数据源走代理)。实测未配置时启动日志输出 global HTTP proxy: Not configured;需要让 ToolJet 经代理访问外部数据源时设置该值。

5.8 SSO / LDAP / SAML

SSO_GOOGLE_OAUTH2_CLIENT_ID 【实查】:Google SSO 客户端 ID。

SSO_GIT_OAUTH2_CLIENT_ID / SSO_GIT_OAUTH2_CLIENT_SECRET / SSO_GIT_OAUTH2_HOST 【实查】:GitHub SSO 三件套(自建 GitHub 企业实例时补 HOST)。

SSO_UNIQUE_ID_FIELD / SSO_CUSTOM_EMAIL_DOMAIN 【实查】:OIDC 用非邮箱标识(如工号)登录时的字段名与合成邮箱域。

DISABLE_LDAP_GROUP_SYNC / DISABLE_SAML_GROUP_SYNC 【实查】:true 跳过对应协议的登录时组同步。

5.9 邮件 SMTP

SMTP_DISABLED 【实测】:实验室离线环境设 true 关闭发信(本文部署实测值)。生产要发邀请/重置邮件时删除此行。

SMTP_USERNAME / SMTP_PASSWORD / SMTP_DOMAIN / SMTP_PORT / DEFAULT_FROM_EMAIL 【实查】:社区版 SMTP 五件套与发件人地址(默认 hello@tooljet.io,务必改成自己的)。企业版 v2.62.0 起改在管理界面配置 SMTP,.env 仅对社区版生效。

5.10 第三方集成

GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET 【实查】:Google Sheets 等服务的 OAuth 凭据。

SLACK_CLIENT_ID / SLACK_CLIENT_SECRET 【实查】:Slack 数据源应用凭据。

GOOGLE_MAPS_API_KEY 【实查】:地图组件的 API Key。

5.11 可观测

ENABLE_METRICS 【实测】:true 开启指标端点。实测 curl -H 'Accept: application/json' http://localhost:8137/api/metrics 返回:

{"memory":{"rss":475766784,"heapTotal":375103488,"heapUsed":316223160,"external":39508851},"cpu":{"user":9115.21,"system":1169.378},"system":{"loadAverage":[4.52,4.03,3.4],"freeMemory":16082620416,"totalMemory":33607299072},"timestamp":"2026-10-21T08:14:32.152Z"}

Accept: text/plain 时返回 Prometheus 文本格式(实测节选):

# HELP process_cpu_user_seconds_total Total user CPU time spent in seconds.
# TYPE process_cpu_user_seconds_total counter
process_cpu_user_seconds_total{app="nestjs-app"} 1.510249

⚠️ 注意:端点路径是 /api/metrics 而不是 .env 注释里写的 /metrics——实测不带 /api 前缀的 /metrics 会被前端路由接管返回 HTML 页面。接入 Prometheus 抓取时务必写 /api/metrics。

ENABLE_OTEL / ENABLE_OTEL_FRONTEND / OTEL_EXPORTER_OTLP_TRACES / OTEL_EXPORTER_OTLP_METRICS / OTEL_EXPORTER_OTLP_LOGS / OTEL_HEADER / OTEL_LOG_LEVEL / OTEL_FRONTEND_FLUSH_INTERVAL_SECONDS 【实查】:OpenTelemetry 导出开关与 OTLP 端点(traces/metrics/logs 三路),前端 beacon 需同时开 ENABLE_OTEL_FRONTEND,刷新间隔默认 30 秒(限 5–600)。

APM_VENDOR / SENTRY_DNS / SENTRY_DEBUG 【实查】:APM 供应商(sentry)、Sentry DSN 与调试开关。

5.12 功能开关

ENABLE_MULTIPLAYER_EDITING 【实测】:多人协同编辑,官方示例默认 true(本文部署实测值)。

COMMENT_FEATURE_ENABLE 【实查】:画布评论功能开关,需协同编辑开启。

ENABLE_MARKETPLACE_FEATURE 【实查】:插件市场开关(官方部署示例默认 true)。

DISABLE_TOOLJET_TELEMETRY 【实测】:true 关闭每 24 小时的使用数据上报(本文部署实测值)。

DISABLE_DATA_QUERY_RUN_THROTTLE / DATA_QUERY_RUN_TTL / DATA_QUERY_RUN_LIMIT 【实查】:数据查询运行限流。默认每 1000 毫秒窗口内每(用户,应用)50 次,超限返回 HTTP 429;DISABLE_DATA_QUERY_RUN_THROTTLE=true 整体关闭。

AI_ATTACHMENTS_MAX_UPLOADS / AI_ATTACHMENTS_MAX_PROVIDER_UPLOADS 【实查】:AI 附件上传预算(主库内/上传到提供商),示例文件默认 100/1000。

5.13 GitSync(Beta)

GITHUB_URL / GITHUB_BRANCH / GITHUB_APP_ID / GITHUB_INSTALLATION_ID / GITHUB_PRIVATE_KEY 【实查】:用环境变量预置 GitSync 的 GitHub HTTPS 配置(私钥换行写成 \n);同样支持 GitLab 与 SSH 方式。官方标注 Beta,生产慎用。

5.14 授权与 SCIM(企业向)

TJ_LICENSE 【实查】:预置 License Key,启动时自动应用,避免每实例手工录入(Beta)。

ORGANIZATION_LICENSE_URL / ORGANIZATION_LICENSE_API_KEY 【实查】:云特定授权接口。

SCIM_ENABLED / SCIM_BASIC_AUTH_USER / SCIM_BASIC_AUTH_PASS / SCIM_HEADER_AUTH_TOKEN 【实查】:SCIM 用户目录同步开关与认证凭据(示例文件默认值仅演示,生产必须改强值)。

六、生产配置模板

适用场景:8C16G 服务器、NVMe SSD、50 人以内部门、compose 单实例 + 内置 PostgreSQL(在此规模下单实例表现稳定,实测空闲内存占用约 450MiB,留足增长空间):

# ---- 实例基础 ----
TOOLJET_HOST=https://tooljet.example.com
DEPLOYMENT_PLATFORM=docker

# ---- 安全密钥(部署时生成后固定,勿再改动)----
LOCKBOX_MASTER_KEY=<openssl rand -hex 32 的结果>
SECRET_KEY_BASE=<openssl rand -hex 64 的结果>
PGRST_JWT_SECRET=<openssl rand -hex 32 的结果>

# ---- 主库 ----
ORM_LOGGING=error
PG_DB=tooljet_production
PG_USER=tooljet
PG_HOST=postgres
PG_PASS=<强口令>
PG_PORT=5432

# ---- 内置数据库 ----
TOOLJET_DB=tooljet_db
TOOLJET_DB_USER=tooljet
TOOLJET_DB_HOST=postgres
TOOLJET_DB_PASS=<强口令>
TOOLJET_DB_RECONFIG=true
TOOLJET_DB_STATEMENT_TIMEOUT=60000
PGRST_DB_URI=postgres://tooljet:<强口令>@postgres/tooljet_db
PGRST_HOST=localhost:3002
PGRST_SERVER_PORT=3002
PGRST_DB_PRE_CONFIG=postgrest.pre_config

# ---- 队列与工作流(单实例内建队列)----
WORKER=true
TOOLJET_WORKFLOW_CONCURRENCY=5
WORKFLOW_TIMEOUT_SECONDS=60
TOOLJET_QUEUE_DASH_PASSWORD=<看板强口令>

# ---- 会话与口令 ----
USER_SESSION_EXPIRY=2880
PASSWORD_EXPIRY_DAYS=0
LINK_EXPIRY_MINUTES=1440

# ---- 注册与访问 ----
DISABLE_SIGNUPS=true

# ---- 邮件(接入后删除 SMTP_DISABLED)----
DEFAULT_FROM_EMAIL=tooljet@example.com
SMTP_USERNAME=tooljet@example.com
SMTP_PASSWORD=<SMTP口令>
SMTP_DOMAIN=smtp.example.com
SMTP_PORT=587

# ---- 可观测 ----
ENABLE_METRICS=true
LOG_LEVEL=info
CHECK_FOR_UPDATES=true
DISABLE_TOOLJET_TELEMETRY=true

模板要点:ORM_LOGGING=error 避免日志刷屏(实测 all 级别每条查询都会输出);PASSWORD_EXPIRY_DAYS=0 关闭强制改密周期(按企业合规要求取舍);DISABLE_SIGNUPS=true 收紧入口;口令类占位在落地时全部替换为强随机值,LOCKBOX_MASTER_KEY 落地后立即离线备份。

七、常见问题(FAQ)

Q1:改了 .env 为什么不生效? docker compose restart 不会重读 .env。执行 docker compose up -d 让 Compose 重建服务(实测重建后用 docker compose exec tooljet env 核对新值)。

Q2:日志被 query: SELECT ... 刷屏? ORM_LOGGING=all 的表现(实测每条 SQL 一行日志)。改为 ORM_LOGGING=error 或留空,重建生效。

Q3:/metrics 打不开或返回 HTML? 三步排查:确认 .env 有 ENABLE_METRICS=true;确认用 up -d 重建过;确认路径是 /api/metrics(实测根路径 /metrics 返回前端页面)。启动自检日志里 Metrics Enabled: true 说明开关已生效。

Q4:LOCKBOX_MASTER_KEY 丢了/要换怎么办? 丢失 = 所有数据源凭据不可恢复,只能重配数据源。轮换用官方 rotate:keys:prod 脚本,先 --dry-run 演练(实查脚本输出含「DRY RUN MODE: No changes will be made」提示),确认备份后再正式执行。

Q5:邀请邮件发不出去? 检查是否还留着 SMTP_DISABLED=true(实测该值直接关闭发信);社区版确认 SMTP_USERNAME/SMTP_PASSWORD/SMTP_DOMAIN/SMTP_PORT 四项齐全;企业版(v2.62.0 起)改到管理界面配置。

Q6:数据查询偶发 429? 命中了查询运行限流(默认 1000ms 窗口 50 次)。确认是否有人在应用里写了递归触发;确需放开再调整 DATA_QUERY_RUN_LIMIT,不建议直接 DISABLE_DATA_QUERY_RUN_THROTTLE=true。

八、参考链接