Configuración
La API lee la configuración del entorno (un .env opcional cubre los huecos; el entorno real siempre gana). Lo esencial:
Obligatorio
SVITRIO_JWT_SECRET— clave de firma HS256. El arranque falla si no está definida o tiene menos de 32 bytes.
Núcleo
SVITRIO_ADDR— dirección de escucha (por defecto:8080).SVITRIO_SCHEMA— ruta aschema.gate(incrustado en la imagen en/schema.gate).SVITRIO_ADMIN_URL— origen del administrador; destino de redirección del enlace mágico y allow-origin de CORS.SVITRIO_JWT_ISSUER— claimissdel JWT.
Base de datos
SVITRIO_DB— ruta/DSN de la BD (por defecto./svitrio.db).SVITRIO_DB_PROVIDER—sqlite | turso | postgres | neon, con elSVITRIO_DB_HOST/TOKEN/USER/PASSWORD/NAME/PORT/SSLMODEcorrespondiente.SVITRIO_CONTENT_DSN— almacén de contenido separado opcional.
Secretos y autenticación
SVITRIO_SECRETS_KEY— clave AES-256 de 32 bytes en base64 que sella en reposo las claves de facturación/IA/licencia. Sin definir ⇒ texto plano + un aviso de arranque.SVITRIO_ACCESS_TTL(15m),SVITRIO_REFRESH_TTL(7d),SVITRIO_MAGIC_TTL(15m).SVITRIO_WEBAUTHN_RP_ID/SVITRIO_WEBAUTHN_ORIGINS/SVITRIO_WEBAUTHN_RP_NAME— passkeys (opcional).SVITRIO_RATELIMIT_DISABLED / _BURST(8) / _EVERY(20s)— la limitación del endpoint de autenticación.
Correo
SVITRIO_EMAIL_PROVIDER—console | brevo | smtp.SVITRIO_BREVO_API_KEY, oSVITRIO_SMTP_HOST/PORT/USER/PASS.SVITRIO_EMAIL_FROM/SVITRIO_EMAIL_FROM_NAME.
Webhooks y portal
SVITRIO_CONTENT_WEBHOOK_URL/SVITRIO_CONTENT_WEBHOOK_SECRET— ping de contenido saliente.SVITRIO_TICKETS_INBOUND_SECRET/SVITRIO_TICKETS_BREVO_SECRET— webhooks de tickets entrantes.SVITRIO_PORTAL_ADDR(:8081),SVITRIO_PORTAL_URL,SVITRIO_PORTAL_BASE_DOMAIN,SVITRIO_RESERVED_SUBDOMAINS.