Konfigurationsfeldreferenz

Vollständige Referenz für jedes Feld in config.json. Diese Datei steuert das Laufzeitproduktverhalten – Planlimits, Abrechnung, Webhooks und Feature-Flags. Es ist getrennt von .env, das Geheimnisse und Infrastrukturverkabelung birgt.

Starter-Beispiel


Dies ist der empfohlene Ausgangspunkt für eine selbstgehostete Bereitstellung ohne konfigurierte Abrechnung. Alle Grenzen sind auf eingestellt null (unbegrenzt) und die Abrechnungsfunktionen sind deaktiviert. Ersetzen [email protected] mit eigener Adresse.

Administratorinnen#


Ein Array von E-Mail-Adressen, denen Site-Administratorzugriff gewährt wird. Administratoren können auf privilegierte Seiten wie den Batch-Prozessplaner und systemweite Nutzungs-Dashboards zugreifen.

FeldTypErforderlichBeschreibung
adminsstring[]ErforderlichListe der E-Mail-Adressen mit Administratorzugriff. Muss mit der E-Mail-Adresse übereinstimmen, die mit dem Clerk-Konto des Benutzers verknüpft ist.

Merkmale#


Funktionsflags, die steuern, welche Teile der Produkt-Benutzeroberfläche aktiv sind. Bei einfachen selbstgehosteten Bereitstellungen können Sie alle Abrechnungsfunktionen deaktivieren und bei Bedarf nur das Planer-Flag belassen.

FeldTypErforderlichBeschreibung
subscriptionEnforcementEnabledbooleanErforderlichWenn dies der Fall ist, können Benutzer kostenpflichtige Pläne anzeigen und auf diese upgraden. Bei „Falsch“ zeigt die Upgrade-Benutzeroberfläche stattdessen einen Platzhalter für die bald verfügbare Abrechnung an.
workspaceBillingEnabledbooleanErforderlichWenn „true“, werden Abrechnungsstufen und Planinformationen in der Seitenleiste und den Arbeitsbereichseinstellungen angezeigt. Auf „false“ setzen, um die gesamte Abrechnungs-Benutzeroberfläche vollständig auszublenden.
batchSchedulerEnabledbooleanErforderlichBei „true“ ist der Batch-Prozessplaner aktiv und für den Administrator zugänglich. Erfordert die Ausführung von Redis und BullMQ.
customMCPServerTokensbooleanErforderlichBei „false“ authentifiziert sich der MCP-Server mithilfe des Standard-OAuth/Clerk-Tokens. Wenn „true“, werden stattdessen selbstverwaltete API-Tokens verwendet – nützlich für Umgebungen ohne Clerk MCP-Unterstützung.

Grenzen#


Ein Array von Grenzwertsätzen, die die Ressourcennutzung steuern. Jeder Eintrag kann über mit einer Abrechnungsstufe verknüpft werden billingTier, oder setzen Sie auf null gilt für alle Benutzer, unabhängig vom Plan. Für einfache Bereitstellungen ohne Abrechnung genügt ein einziger Eintrag mit "billingTier": null ist ausreichend. null Werte für numerische Grenzen bedeuten unbegrenzt.

FeldTypErforderlichBeschreibung
idstringErforderlichEindeutige Kennung für diesen Limitsatz (z. B. Free, Pro, Default).
maxTrackableItemsnumberErforderlichMaximale Anzahl nachverfolgbarer Elemente (Formulare + API-Endpunkte), die ein Benutzer pro Arbeitsbereich erstellen kann.
maxResponsesPerSurveynumber | nullErforderlichMaximal zulässige Anzahl von Antworten pro Umfrage/Formular. null bedeutet unbegrenzt.
maxWorkspaceMembersnumber | nullErforderlichMaximale Anzahl von Mitgliedern in einem Arbeitsbereich. null bedeutet unbegrenzt.
maxApiLogsPerMinutenumberErforderlichMaximale Anzahl von Protokollereignissen, die pro Minute und nachverfolgbarem Element erfasst werden können. Überschüssige Anfragen sind ratenbegrenzt.
maxApiPayloadBytesnumberErforderlichMaximale Größe in Bytes einer einzelnen Protokollnutzlast. Größere Anfragen werden abgelehnt.
logRetentionDaysnumberErforderlichAnzahl der Tage, die Protokolleinträge aufbewahrt werden, bevor sie gelöscht werden. Gilt für alle Protokolle innerhalb dieser Stufe.
maxCreatedWorkspacesnumber | nullErforderlichMaximale Anzahl an Arbeitsbereichen, die ein einzelner Benutzer erstellen kann. null bedeutet unbegrenzt.
billingTierstring | nullErforderlichDie Abrechnungsstufen-ID, für die dieses Limit gilt. Muss mit einer ID im billing.tiers-Array übereinstimmen. Legen Sie den Wert auf null fest, um dieses Limit unabhängig vom Plan auf alle Benutzer anzuwenden.

Abrechnung#


Optionale Abrechnungskonfiguration für die Lemon Squeezy-Integration. Wenn Sie keine kostenpflichtigen Pläne verwenden, legen Sie fest lemonSqueezyStoreId Und manageUrl Zu null und gehen tiers als leeres Array. Ebenen-ID-Werte werden durch limits[].billingTier referenziert – sie müssen genau übereinstimmen.

FeldTypErforderlichBeschreibung
lemonSqueezyStoreIdstring | nullOptionalIhre Lemon Squeezy-Store-ID. Erforderlich, wenn Sie Zahlungen über Lemon Squeezy abwickeln.
manageUrlstring | nullOptionalURL zur Rechnungsverwaltungsseite, die Benutzern angezeigt wird. Normalerweise die URL Ihres Lemon Squeezy-Kundenportals.

billing.tiers[]

Array von Abrechnungsstufen, die in der Upgrade-Benutzeroberfläche angezeigt werden. Jede Stufe muss eine eindeutige ID haben, die mit einem entsprechenden Eintrag in limits[].billingTier übereinstimmt.

FeldTypErforderlichBeschreibung
idstringErforderlichEindeutiger Ebenenbezeichner. Referenziert durch limits[].billingTier.
namestringErforderlichAnzeigename, der Benutzern angezeigt wird (z. B. Pro, Team).
priceLabelstringErforderlichIn der Benutzeroberfläche angezeigte Preiszeichenfolge (z. B. 25 $).
priceIntervalstringErforderlichAbrechnungsintervall wird unterhalb des Preises angezeigt (z. B. pro Monat).
descriptionstringErforderlichKurze Beschreibung dessen, was diese Stufe beinhaltet.
tone"neutral" | "accent" | "strong"ErforderlichVisuelles Thema der Rangkarte. Akzent und Stark sind hervorgehobene Stile; Neutral ist die Standardeinstellung.
mostPopularbooleanErforderlichWenn „true“, wird auf dieser Rangkarte ein „Beliebtheit“-Abzeichen angezeigt.
lemonSqueezyVariantIdstring | nullOptionalID der Lemon Squeezy-Produktvariante für diese Stufe. Erforderlich, damit der Checkout funktioniert.
enabledbooleanErforderlichBei „false“ wird diese Stufe auf der Upgrade-Benutzeroberfläche ausgeblendet, auch wenn die Abrechnung aktiviert ist.

Verwendung#


Globale API-Nutzungskontrollen, die für alle Arbeitsbereiche und Benutzer gelten.

FeldTypErforderlichBeschreibung
invalidApiKeyRateLimitPerMinutenumberErforderlichMaximal zulässige Anzahl von Anfragen mit einem ungültigen API-Schlüssel pro Minute und IP, bevor die Quelle ratenbegrenzt wird. Hilft, Credential Stuffing zu verhindern.
maxBodyBytesnumberErforderlichMaximale Größe in Bytes für einen Protokollanforderungstext auf API-Gateway-Ebene. Darüber hinausgehende Anfragen werden abgewiesen, bevor sie die Serviceschicht erreichen.
pageSizenumberErforderlichAnzahl der pro Seite abgerufenen Protokolleinträge beim Laden des Protokoll-Viewers.

Webhooks#


Steuert die ausgehende Webhook-Übermittlungswarteschlange, die von Redis und BullMQ unterstützt wird. Die Ratenbegrenzung gilt hier für den Warteschlangenkonsumenten und nicht für die eingehende Protokollaufnahme.

FeldTypErforderlichBeschreibung
queue.enabledbooleanErforderlichBei „true“ werden ausgehende Webhooks in Redis in die Warteschlange gestellt und asynchron zugestellt. Erfordert die Ausführung von Redis.
queue.rateLimitMsnumberErforderlichMindestwartezeit in Millisekunden zwischen aufeinanderfolgenden Webhook-Zustellungen aus der Warteschlange.
queue.rateLimitMaxnumberErforderlichMaximale Anzahl von Webhook-Ereignissen, die innerhalb des rateLimitMs-Fensters gesendet werden können.

Charge#


Konfiguration für den Hintergrund-Batch-Scheduler. Der Scheduler muss ebenfalls über aktiviert werden features.batchSchedulerEnabled.

FeldTypErforderlichBeschreibung
schedulerTimeZonestringErforderlichIANA-Zeitzonenzeichenfolge, die zum Planen von Batch-Jobs verwendet wird (z. B. UTC, Amerika/New_York). Wirkt sich darauf aus, wann Cron-basierte Jobs ausgelöst werden.