Referência do campo de configuração
Referência completa para todos os campos em config.json. Este arquivo controla o comportamento do produto em tempo de execução – limites do plano, faturamento, webhooks e sinalizadores de recursos. É separado de .env, que guarda segredos e fiação de infraestrutura.
Exemplo inicial
Este é o ponto de partida recomendado para uma implantação auto-hospedada sem cobrança configurada. Todos os limites estão definidos para null (ilimitado) e os recursos de faturamento estão desativados. Substituir [email protected] com seu próprio endereço.
administradores#
Uma matriz de endereços de e-mail aos quais é concedido acesso de administrador do site. Os administradores podem acessar páginas privilegiadas, como o agendador de processos em lote e painéis de uso de todo o sistema.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| admins | string[] | Obrigatória | Lista de endereços de e-mail com acesso de administrador. Deve corresponder ao e-mail associado à conta de funcionário do usuário. |
características#
Sinalizadores de recursos que controlam quais partes da IU do produto estão ativas. Para implantações simples auto-hospedadas, você pode desabilitar todos os recursos de cobrança e deixar apenas o sinalizador do agendador, se necessário.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| subscriptionEnforcementEnabled | boolean | Obrigatória | Quando verdadeiro, os usuários podem visualizar e fazer upgrade para planos pagos. Quando falso, a IU de atualização mostra um espaço reservado para cobrança em breve. |
| workspaceBillingEnabled | boolean | Obrigatória | Quando verdadeiro, os níveis de cobrança e as informações do plano aparecem na barra lateral e nas configurações do espaço de trabalho. Defina como falso para ocultar totalmente toda a IU de cobrança. |
| batchSchedulerEnabled | boolean | Obrigatória | Quando verdadeiro, o agendador do processo em lote fica ativo e acessível pelo administrador. Requer que Redis e BullMQ estejam em execução. |
| customMCPServerTokens | boolean | Obrigatória | Quando falso, o servidor MCP autentica usando o token OAuth/Clerk padrão. Quando verdadeiro, tokens de API autogerenciados são usados — úteis para ambientes sem suporte do Clerk MCP. |
limites#
Uma série de conjuntos de limites que controlam o uso de recursos. Cada entrada pode ser vinculada a um nível de faturamento por meio de billingTier, ou definido como null para se aplicar a todos os usuários, independentemente do plano. Para implantações simples sem cobrança, uma única entrada com "billingTier": null é suficiente. null valores para limites numéricos significam ilimitado.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| id | string | Obrigatória | Identificador exclusivo para este conjunto de limites (por exemplo, gratuito, profissional, padrão). |
| maxTrackableItems | number | Obrigatória | Número máximo de itens rastreáveis (formulários + endpoints de API) que um usuário pode criar por workspace. |
| maxResponsesPerSurvey | number | null | Obrigatória | Número máximo de respostas permitidas por pesquisa/formulário. nulo significa ilimitado. |
| maxWorkspaceMembers | number | null | Obrigatória | Número máximo de membros em um espaço de trabalho. nulo significa ilimitado. |
| maxApiLogsPerMinute | number | Obrigatória | Número máximo de eventos de log que podem ser ingeridos por minuto por item rastreável. Solicitações em excesso têm taxa limitada. |
| maxApiPayloadBytes | number | Obrigatória | Tamanho máximo em bytes de uma única carga de log. Solicitações maiores que isso serão rejeitadas. |
| logRetentionDays | number | Obrigatória | Número de dias em que as entradas de log são retidas antes de serem eliminadas. Aplica-se a todos os logs nesta camada. |
| maxCreatedWorkspaces | number | null | Obrigatória | Número máximo de espaços de trabalho que um único usuário pode criar. nulo significa ilimitado. |
| billingTier | string | null | Obrigatória | O ID do nível de cobrança ao qual esse limite se aplica. Deve corresponder a um ID na matriz billing.tiers. Defina como nulo para aplicar esse limite a todos os usuários, independentemente do plano. |
cobrança#
Configuração de faturamento opcional para integração com Lemon Squeezy. Se você não estiver usando planos pagos, defina lemonSqueezyStoreId e manageUrl para null e sair tiers como uma matriz vazia. Os valores de ID de camada são referenciados por limites[].billingTier — eles devem corresponder exatamente.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| lemonSqueezyStoreId | string | null | Opcional | Seu ID da loja Lemon Squeezy. Obrigatório se você estiver processando pagamentos através do Lemon Squeezy. |
| manageUrl | string | null | Opcional | URL para a página de gerenciamento de faturamento mostrada aos usuários. Normalmente, o URL do portal do cliente Lemon Squeezy. |
billing.tiers[]
Matriz de níveis de cobrança exibidos na IU de atualização. Cada camada deve ter um ID exclusivo que corresponda a uma entrada correspondente em limites[].billingTier.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| id | string | Obrigatória | Identificador de nível exclusivo. Referenciado por limites[].billingTier. |
| name | string | Obrigatória | Nome de exibição mostrado aos usuários (por exemplo, Pro, Team). |
| priceLabel | string | Obrigatória | String de preço mostrada na IU (por exemplo, US$ 25). |
| priceInterval | string | Obrigatória | Intervalo de cobrança mostrado abaixo do preço (por exemplo, por mês). |
| description | string | Obrigatória | Breve descrição do que esta camada inclui. |
| tone | "neutral" | "accent" | "strong" | Obrigatória | Tema visual do cartão de nível. sotaque e forte são estilos destacados; neutro é o padrão. |
| mostPopular | boolean | Obrigatória | Quando verdadeiro, mostra um selo Mais Popular neste cartão de nível. |
| lemonSqueezyVariantId | string | null | Opcional | ID da variante do produto Lemon Squeezy para esta camada. Necessário para que o checkout funcione. |
| enabled | boolean | Obrigatória | Quando falso, esse nível fica oculto na IU de atualização, mesmo que a cobrança esteja habilitada. |
uso#
Controles globais de uso de API que se aplicam a todos os espaços de trabalho e usuários.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| invalidApiKeyRateLimitPerMinute | number | Obrigatória | Número máximo de solicitações com uma chave de API inválida permitida por minuto por IP antes que a origem seja limitada pela taxa. Ajuda a evitar o excesso de credenciais. |
| maxBodyBytes | number | Obrigatória | Tamanho máximo em bytes para um corpo de solicitação de log no nível do gateway de API. Solicitações que excedam esse valor são rejeitadas antes de atingirem a camada de serviço. |
| pageSize | number | Obrigatória | Número de entradas de log buscadas por página ao carregar o visualizador de log. |
webhooks#
Controla a fila de entrega de webhook de saída apoiada por Redis e BullMQ. A limitação de taxa aqui se aplica ao consumidor da fila, não à ingestão de log de entrada.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| queue.enabled | boolean | Obrigatória | Quando verdadeiro, os webhooks de saída são enfileirados no Redis e entregues de forma assíncrona. Requer que o Redis esteja em execução. |
| queue.rateLimitMs | number | Obrigatória | Milissegundos mínimos de espera entre entregas consecutivas de webhook da fila. |
| queue.rateLimitMax | number | Obrigatória | Número máximo de eventos de webhook que podem ser enviados na janela rateLimitMs. |
lote#
Configuração para o agendador de lote em segundo plano. O agendador também deve ser habilitado via features.batchSchedulerEnabled.
| Campo | Tipo | Obrigatória | Descrição |
|---|---|---|---|
| schedulerTimeZone | string | Obrigatória | String de fuso horário IANA usada para agendar trabalhos em lote (por exemplo, UTC, América/Nova_Iorque). Afeta quando os jobs baseados em cron são acionados. |