Referencia del campo de configuración
Referencia completa para cada campo en config.json. Este archivo controla el comportamiento del producto en tiempo de ejecución: límites del plan, facturación, webhooks e indicadores de funciones. esta separado de .env, que guarda secretos y cableado de infraestructura.
Ejemplo inicial
Este es el punto de partida recomendado para una implementación autohospedada sin facturación configurada. Todos los límites están establecidos en null (ilimitado) y las funciones de facturación están deshabilitadas. Reemplazar [email protected] con tu propia dirección.
administradoras#
Una serie de direcciones de correo electrónico a las que se les concede acceso de administrador del sitio. Los administradores pueden acceder a páginas privilegiadas, como el programador de procesos por lotes y los paneles de uso de todo el sistema.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| admins | string[] | Requerida | Lista de direcciones de correo electrónico con acceso de administrador. Debe coincidir con el correo electrónico asociado con la cuenta de Secretario del usuario. |
características#
Indicadores de funciones que controlan qué partes de la interfaz de usuario del producto están activas. Para implementaciones autohospedadas simples, puede desactivar todas las funciones de facturación y dejar solo el indicador del programador si es necesario.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| subscriptionEnforcementEnabled | boolean | Requerida | Cuando es verdadero, los usuarios pueden ver y actualizar a planes pagos. Cuando es falso, la interfaz de usuario de actualización muestra un marcador de posición de facturación próximamente. |
| workspaceBillingEnabled | boolean | Requerida | Cuando es verdadero, los niveles de facturación y la información del plan aparecen en la barra lateral y en la configuración del espacio de trabajo. Configúrelo en falso para ocultar por completo toda la interfaz de usuario de facturación. |
| batchSchedulerEnabled | boolean | Requerida | Cuando es verdadero, el programador de procesos por lotes está activo y el administrador puede acceder a él. Requiere que Redis y BullMQ estén en ejecución. |
| customMCPServerTokens | boolean | Requerida | Cuando es falso, el servidor MCP se autentica utilizando el token estándar OAuth/Clerk. Cuando es cierto, se utilizan tokens de API autoadministrados, lo que resulta útil para entornos sin compatibilidad con Clerk MCP. |
límites#
Una serie de conjuntos de límites que controlan el uso de recursos. Cada entrada se puede vincular a un nivel de facturación mediante billingTier, o establecer en null para aplicarse a todos los usuarios independientemente del plan. Para implementaciones simples sin facturación, una sola entrada con "billingTier": null es suficiente. null los valores para límites numéricos significan ilimitados.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| id | string | Requerida | Identificador único para este conjunto de límites (por ejemplo, gratuito, profesional, predeterminado). |
| maxTrackableItems | number | Requerida | Número máximo de elementos rastreables (formularios + puntos finales de API) que un usuario puede crear por espacio de trabajo. |
| maxResponsesPerSurvey | number | null | Requerida | Número máximo de respuestas permitidas por encuesta/formulario. nulo significa ilimitado. |
| maxWorkspaceMembers | number | null | Requerida | Número máximo de miembros en un espacio de trabajo. nulo significa ilimitado. |
| maxApiLogsPerMinute | number | Requerida | Número máximo de eventos de registro que se pueden ingerir por minuto por elemento rastreable. Las solicitudes en exceso tienen una tarifa limitada. |
| maxApiPayloadBytes | number | Requerida | Tamaño máximo en bytes de una carga útil de registro único. Las solicitudes mayores a esta cantidad se rechazan. |
| logRetentionDays | number | Requerida | Número de días que se conservan las entradas del registro antes de eliminarlas. Se aplica a todos los registros dentro de este nivel. |
| maxCreatedWorkspaces | number | null | Requerida | Número máximo de espacios de trabajo que un solo usuario puede crear. nulo significa ilimitado. |
| billingTier | string | null | Requerida | El ID del nivel de facturación al que se aplica este límite. Debe coincidir con una identificación en la matriz billing.tiers. Configúrelo en nulo para aplicar este límite a todos los usuarios independientemente del plan. |
facturación#
Configuración de facturación opcional para la integración de Lemon Squeezy. Si no estás utilizando planes pagos, configura lemonSqueezyStoreId y manageUrl a null y dejar tiers como una matriz vacía. Los valores de ID de nivel están referenciados por limites[].billingTier: deben coincidir exactamente.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| lemonSqueezyStoreId | string | null | Opcional | Tu ID de tienda Lemon Squeezy. Requerido si está procesando pagos a través de Lemon Squeezy. |
| manageUrl | string | null | Opcional | URL a la página de administración de facturación que se muestra a los usuarios. Normalmente, la URL del portal del cliente de Lemon Squeezy. |
billing.tiers[]
Matriz de niveles de facturación que se muestran en la interfaz de usuario de actualización. Cada nivel debe tener una identificación única que coincida con una entrada correspondiente en limites[].billingTier.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| id | string | Requerida | Identificador de nivel único. Referenciado por límites[].billingTier. |
| name | string | Requerida | Nombre para mostrar que se muestra a los usuarios (por ejemplo, Pro, Team). |
| priceLabel | string | Requerida | Cadena de precio que se muestra en la interfaz de usuario (por ejemplo, $25). |
| priceInterval | string | Requerida | Intervalo de facturación que se muestra debajo del precio (por ejemplo, por mes). |
| description | string | Requerida | Breve descripción de lo que incluye este nivel. |
| tone | "neutral" | "accent" | "strong" | Requerida | Tema visual de la tarjeta de nivel. acento y fuerte son estilos resaltados; neutral es el valor predeterminado. |
| mostPopular | boolean | Requerida | Cuando es verdadero, muestra una insignia de Más popular en esta tarjeta de nivel. |
| lemonSqueezyVariantId | string | null | Opcional | ID de variante del producto Lemon Squeezy para este nivel. Requerido para que el pago funcione. |
| enabled | boolean | Requerida | Cuando es falso, este nivel está oculto en la interfaz de usuario de actualización incluso si la facturación está habilitada. |
uso#
Controles globales de uso de API que se aplican en todos los espacios de trabajo y usuarios.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| invalidApiKeyRateLimitPerMinute | number | Requerida | Número máximo de solicitudes con una clave API no válida permitidas por minuto por IP antes de que la fuente tenga una velocidad limitada. Ayuda a prevenir el relleno de credenciales. |
| maxBodyBytes | number | Requerida | Tamaño máximo en bytes para el cuerpo de una solicitud de registro en el nivel de puerta de enlace API. Las solicitudes que superen este límite se rechazan antes de llegar a la capa de servicio. |
| pageSize | number | Requerida | Número de entradas de registro obtenidas por página al cargar el visor de registros. |
ganchos web#
Controla la cola de entrega de webhooks salientes respaldada por Redis y BullMQ. La limitación de velocidad aquí se aplica al consumidor de la cola, no a la ingesta de registros entrantes.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| queue.enabled | boolean | Requerida | Cuando es verdadero, los webhooks salientes se ponen en cola en Redis y se entregan de forma asincrónica. Requiere que Redis esté ejecutándose. |
| queue.rateLimitMs | number | Requerida | Milisegundos mínimos de espera entre entregas consecutivas de webhooks desde la cola. |
| queue.rateLimitMax | number | Requerida | Número máximo de eventos de webhook que se pueden enviar dentro de la ventana rateLimitMs. |
lote#
Configuración para el programador por lotes en segundo plano. El programador también debe habilitarse a través de features.batchSchedulerEnabled.
| Campo | Tipo | Requerida | Descripción |
|---|---|---|---|
| schedulerTimeZone | string | Requerida | Cadena de zona horaria de IANA utilizada para programar trabajos por lotes (por ejemplo, UTC, América/Nueva_York). Afecta cuando se activan los trabajos basados en cron. |