Odniesienie do pola konfiguracji
Pełne odniesienia do każdego pola w config.json. Ten plik kontroluje zachowanie produktu w czasie wykonywania — limity planu, rozliczenia, webhooki i flagi funkcji. Jest oddzielony od .env, który skrywa tajemnice i okablowanie infrastruktury.
Przykład startowy
Jest to zalecany punkt wyjścia w przypadku wdrożenia samodzielnego bez skonfigurowanych rozliczeń. Wszystkie limity ustawione na null (bez ograniczeń), a funkcje rozliczeniowe są wyłączone. Zastępować [email protected] z własnym adresem.
administratorzy#
Tablica adresów e-mail, którym przyznano dostęp administratora witryny. Administratorzy mają dostęp do uprzywilejowanych stron, takich jak harmonogram procesów wsadowych i ogólnosystemowe pulpity nawigacyjne użytkowania.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| admins | string[] | Wymagany | Lista adresów e-mail z dostępem administracyjnym. Musi być zgodny z adresem e-mail powiązanym z kontem Clerk użytkownika. |
cechy#
Flagi funkcji kontrolujące, które części interfejsu użytkownika produktu są aktywne. W przypadku prostych wdrożeń hostowanych samodzielnie możesz wyłączyć wszystkie funkcje rozliczeniowe i w razie potrzeby pozostawić tylko flagę programu planującego.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| subscriptionEnforcementEnabled | boolean | Wymagany | Jeśli ma wartość true, użytkownicy mogą przeglądać plany płatne i przechodzić na nie. Jeśli wartość ma wartość false, interfejs uaktualnienia wyświetla zamiast tego symbol zastępczy rozliczeń, który będzie wkrótce dostępny. |
| workspaceBillingEnabled | boolean | Wymagany | Jeśli ma wartość true, poziomy rozliczeniowe i informacje o planie będą wyświetlane na pasku bocznym i w ustawieniach obszaru roboczego. Ustaw na false, aby całkowicie ukryć cały interfejs rozliczeniowy. |
| batchSchedulerEnabled | boolean | Wymagany | Jeśli ma wartość true, harmonogram procesów wsadowych jest aktywny i dostępny dla administratora. Wymaga działania Redis i BullMQ. |
| customMCPServerTokens | boolean | Wymagany | Jeśli ma wartość false, serwer MCP uwierzytelnia się przy użyciu standardowego tokena OAuth/Clerk. Jeśli ma wartość true, zamiast tego używane są samodzielnie zarządzane tokeny API — przydatne w środowiskach bez obsługi MCP Clerk. |
limity#
Tablica zestawów limitów kontrolujących użycie zasobów. Każdy wpis można powiązać z poziomem rozliczeniowym za pośrednictwem billingTierlub ustaw na null dotyczyć wszystkich użytkowników niezależnie od planu. W przypadku prostych wdrożeń bez rozliczeń wystarczy pojedynczy wpis "billingTier": null jest wystarczające. null wartości limitów liczbowych oznaczają nieograniczone.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| id | string | Wymagany | Unikalny identyfikator tego zestawu limitów (np. bezpłatny, profesjonalny, domyślny). |
| maxTrackableItems | number | Wymagany | Maksymalna liczba możliwych do śledzenia elementów (formularze + punkty końcowe API), które użytkownik może utworzyć na obszar roboczy. |
| maxResponsesPerSurvey | number | null | Wymagany | Maksymalna liczba odpowiedzi dozwolona na ankietę/formularz. null oznacza nieograniczony. |
| maxWorkspaceMembers | number | null | Wymagany | Maksymalna liczba członków w obszarze roboczym. null oznacza nieograniczony. |
| maxApiLogsPerMinute | number | Wymagany | Maksymalna liczba zdarzeń dziennika, które można pozyskać na minutę na element możliwy do śledzenia. Nadmiar żądań jest ograniczony stawką. |
| maxApiPayloadBytes | number | Wymagany | Maksymalny rozmiar w bajtach ładunku pojedynczego dziennika. Żądania większe niż podane są odrzucane. |
| logRetentionDays | number | Wymagany | Liczba dni przechowywania wpisów dziennika przed ich usunięciem. Dotyczy wszystkich dzienników w tej warstwie. |
| maxCreatedWorkspaces | number | null | Wymagany | Maksymalna liczba obszarów roboczych, które może utworzyć pojedynczy użytkownik. null oznacza nieograniczony. |
| billingTier | string | null | Wymagany | Identyfikator poziomu rozliczeniowego, którego dotyczy ten limit. Musi pasować do identyfikatora w tablicy billing.tiers. Ustaw na null, aby zastosować ten limit do wszystkich użytkowników niezależnie od planu. |
rozliczenia#
Opcjonalna konfiguracja rozliczeń dla integracji Lemon Squeezy. Jeśli nie korzystasz z płatnych planów, ustaw lemonSqueezyStoreId I manageUrl Do null i wyjdź tiers jako pusta tablica. Wartości identyfikatora poziomu odwołują się do limitów[].billingTier — muszą dokładnie pasować.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| lemonSqueezyStoreId | string | null | Fakultatywny | Twój identyfikator sklepu Lemon Squeezy. Wymagane, jeśli przetwarzasz płatności za pośrednictwem Lemon Squeezy. |
| manageUrl | string | null | Fakultatywny | Adres URL strony zarządzania płatnościami wyświetlanej użytkownikom. Zwykle jest to adres URL portalu klienta Lemon Squeezy. |
billing.tiers[]
Tablica poziomów rozliczeniowych wyświetlana w interfejsie aktualizacji. Każdy poziom musi mieć unikalny identyfikator pasujący do odpowiedniego wpisu w limitach[].billingTier.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| id | string | Wymagany | Unikalny identyfikator poziomu. Odwołuje się do limitów[].billingTier. |
| name | string | Wymagany | Nazwa wyświetlana użytkownikom (np. Pro, Team). |
| priceLabel | string | Wymagany | Ciąg cenowy wyświetlany w interfejsie użytkownika (np. 25 USD). |
| priceInterval | string | Wymagany | Okres rozliczeniowy pokazany pod ceną (np. miesięczny). |
| description | string | Wymagany | Krótki opis tego, co obejmuje ten poziom. |
| tone | "neutral" | "accent" | "strong" | Wymagany | Motyw wizualny karty poziomu. akcent i mocny to podkreślone style; neutralny jest ustawieniem domyślnym. |
| mostPopular | boolean | Wymagany | Jeśli ma wartość true, wyświetla odznakę Najpopularniejszej na karcie tego poziomu. |
| lemonSqueezyVariantId | string | null | Fakultatywny | Identyfikator wariantu produktu Lemon Squeezy dla tego poziomu. Wymagane, aby płatność działała. |
| enabled | boolean | Wymagany | Jeśli ma wartość false, ta warstwa jest ukryta w interfejsie użytkownika aktualizacji, nawet jeśli włączone są rozliczenia. |
stosowanie#
Globalne kontrole użycia interfejsu API, które mają zastosowanie we wszystkich obszarach roboczych i użytkownikach.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| invalidApiKeyRateLimitPerMinute | number | Wymagany | Maksymalna liczba żądań z nieprawidłowym kluczem API dozwolona na minutę na adres IP, zanim źródło zostanie ograniczone. Pomaga zapobiegać upychaniu poświadczeń. |
| maxBodyBytes | number | Wymagany | Maksymalny rozmiar w bajtach treści żądania dziennika na poziomie bramy interfejsu API. Żądania przekraczające ten limit są odrzucane przed dotarciem do warstwy usług. |
| pageSize | number | Wymagany | Liczba wpisów dziennika pobranych na stronę podczas ładowania przeglądarki dziennika. |
webhooki#
Kontroluje wychodzącą kolejkę dostarczania webhooka obsługiwaną przez Redis i BullMQ. Ograniczenie szybkości dotyczy tutaj konsumenta kolejki, a nie pozyskiwania dzienników przychodzących.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| queue.enabled | boolean | Wymagany | Jeśli ma wartość true, wychodzące webhooki są umieszczane w kolejce w Redis i dostarczane asynchronicznie. Wymaga działania Redis. |
| queue.rateLimitMs | number | Wymagany | Minimalna liczba milisekund oczekiwania między kolejnymi dostawami elementu webhook z kolejki. |
| queue.rateLimitMax | number | Wymagany | Maksymalna liczba zdarzeń webhooka, które można wysłać w oknierateLimitMs. |
seria#
Konfiguracja harmonogramu wsadowego w tle. Harmonogram musi być również włączony poprzez features.batchSchedulerEnabled.
| Pole | Typ | Wymagany | Opis |
|---|---|---|---|
| schedulerTimeZone | string | Wymagany | Ciąg znaków strefy czasowej IANA używany do planowania zadań wsadowych (np. UTC, America/New_York). Wpływa na moment uruchomienia zadań opartych na cron. |