配置字段参考

每个领域的完整参考 config.json. 该文件控制运行时产品行为 - 计划限制、计费、Webhooks 和功能标志。 它是独立于 .env,其中保存着秘密和基础设施布线。

入门示例


这是未配置计费的自托管部署的建议起点。 所有限制均设置为 null (无限制),并且计费功能被禁用。 代替 [email protected] 与您自己的地址。

管理员#


被授予站点管理员访问权限的电子邮件地址数组。 管理员可以访问特权页面,例如批处理调度程序和系统范围的使用仪表板。

场地类型必需的描述
adminsstring[]必需的具有管理员访问权限的电子邮件地址列表。 必须与与用户文员帐户关联的电子邮件匹配。

特征#


控制产品 UI 的哪些部分处于活动状态的功能标志。 对于简单的自托管部署,您可以禁用所有计费功能,并根据需要仅保留调度程序标志。

场地类型必需的描述
subscriptionEnforcementEnabledboolean必需的如果为真,用户可以查看并升级到付费计划。 如果为 false,则升级 UI 将显示即将计费占位符。
workspaceBillingEnabledboolean必需的如果为 true,计费层和计划信息将显示在侧边栏和工作区设置中。 设置为 false 以完全隐藏所有计费 UI。
batchSchedulerEnabledboolean必需的如果为 true,则批处理调度程序处于活动状态并且可由管理员访问。 需要运行 Redis 和 BullMQ。
customMCPServerTokensboolean必需的当为 false 时,MCP 服务器使用标准 OAuth/Clerk 令牌进行身份验证。 如果为 true,则使用自我管理的 API 令牌 — 对于没有 Clerk MCP 支持的环境很有用。

限制#


控制资源使用的一组限制集。 每个条目都可以通过以下方式绑定到计费层 billingTier,或设置为 null 适用于所有用户,无论计划如何。 对于无需计费的简单部署,只需一个条目 "billingTier": null 就足够了。 null 数字限制值意味着无限制。

场地类型必需的描述
idstring必需的此限制集的唯一标识符(例如免费、专业版、默认)。
maxTrackableItemsnumber必需的用户可以为每个工作区创建的可跟踪项目(表单 + API 端点)的最大数量。
maxResponsesPerSurveynumber | null必需的每个调查/表格允许的最大回复数。 null 表示无限制。
maxWorkspaceMembersnumber | null必需的工作区中的最大成员数。 null 表示无限制。
maxApiLogsPerMinutenumber必需的每个可跟踪项目每分钟可以摄取的最大日志事件数。 超额请求受到速率限制。
maxApiPayloadBytesnumber必需的单个日志负载的最大大小(以字节为单位)。 大于此的请求将被拒绝。
logRetentionDaysnumber必需的日志条目在清除之前保留的天数。 适用于该层内的所有日志。
maxCreatedWorkspacesnumber | null必需的单个用户可以创建的最大工作区数量。 null 表示无限制。
billingTierstring | null必需的此限制适用的计费层 ID。 必须与 billing.tiers 数组中的 ID 匹配。 设置为 null 可将此限制应用于所有用户,无论计划如何。

计费#


Lemon Squeezy 集成的可选计费配置。 如果您不使用付费计划,请设置 lemonSqueezyStoreId manageUrl null 然后离开 tiers 作为一个空数组。 Tier id 值由 Limits[].billingTier 引用 — 它们必须完全匹配。

场地类型必需的描述
lemonSqueezyStoreIdstring | null选修的您的 Lemon Squeezy 商店 ID。 如果您通过 Lemon Squeezy 处理付款,则为必填项。
manageUrlstring | null选修的向用户显示的计费管理页面的 URL。 通常是您的 Lemon Squeezy 客户门户 URL。

billing.tiers[]

升级 UI 中显示的计费层级数组。 每个层必须有一个唯一的 ID,该 ID 与 Limits[].billingTier 中的相应条目相匹配。

场地类型必需的描述
idstring必需的唯一的层标识符。 由limits[].billingTier 引用。
namestring必需的向用户显示的显示名称(例如 Pro、Team)。
priceLabelstring必需的UI 中显示的价格字符串(例如 25 美元)。
priceIntervalstring必需的计费间隔显示在价格下方(例如每月)。
descriptionstring必需的该层包含内容的简短描述。
tone"neutral" | "accent" | "strong"必需的等级卡的视觉主题。 重音和强音是突出显示的样式; 默认为中性。
mostPopularboolean必需的如果为 true,则在此等级卡上显示最受欢迎徽章。
lemonSqueezyVariantIdstring | null选修的此层的 Lemon Squeezy 产品变体 ID。 需要结帐才能工作。
enabledboolean必需的如果为 false,即使启用了计费,此层也会从升级 UI 中隐藏。

用法#


适用于所有工作区和用户的全局 API 使用控制。

场地类型必需的描述
invalidApiKeyRateLimitPerMinutenumber必需的在源受到速率限制之前,每个 IP 每分钟允许的具有无效 API 密钥的最大请求数。 有助于防止撞库。
maxBodyBytesnumber必需的API 网关级别的日志请求正文的最大大小(以字节为单位)。 超过此限制的请求在到达服务层之前将被拒绝。
pageSizenumber必需的加载日志查看器时每页获取的日志条目数。

网络钩子#


控制由 Redis 和 BullMQ 支持的出站 Webhook 传递队列。 这里的速率限制适用于队列使用者,而不是入站日志摄取。

场地类型必需的描述
queue.enabledboolean必需的如果为 true,出站 Webhooks 将在 Redis 中排队并异步传送。 需要 Redis 正在运行。
queue.rateLimitMsnumber必需的队列中连续 Webhook 传送之间等待的最短毫秒数。
queue.rateLimitMaxnumber必需的rateLimitMs 窗口内可以发送的 Webhook 事件的最大数量。

#


后台批处理调度程序的配置。 调度程序还必须通过以下方式启用 features.batchSchedulerEnabled.

场地类型必需的描述
schedulerTimeZonestring必需的用于调度批处理作业的 IANA 时区字符串(例如 UTC、America/New_York)。 影响基于 cron 的作业何时触发。