Configuración
BeneficiosCenter no arranca sin su configuración externa (INV-O04): falla rápido con un
mensaje que indica qué falta. Vive en backend/config/application.yml, resuelto contra el
directorio de trabajo del proceso (no la ubicación del jar) — el jar y config/ deben
quedar en la misma carpeta. La plantilla versionada es
backend/config/application.yml.example.
spring.datasource y Flyway
| Clave |
Significado |
spring.datasource.url |
Cadena de conexión SQL Server (jdbc:sqlserver://host:1433;databaseName=beneficioscenter;...). |
spring.datasource.username / .password |
Credenciales del login dedicado a la aplicación (no sa en producción). |
spring.flyway.enabled |
Debe quedar en true: Flyway aplica las migraciones al arrancar. |
bc.gateway
| Clave |
Significado |
bc.gateway.api-key |
X-Api-Key que acepta POST /api/v1/beneficios/resolver (INV-S01). Generarla con openssl rand -hex 24. Se lee una sola vez al arrancar — rotarla implica reiniciar el servicio. |
bc.admin
| Clave |
Significado |
bc.admin.usuario |
Usuario ADMIN que se siembra en el primer arranque, si la tabla usuario está vacía (AC-23). |
bc.admin.password |
Contraseña de ese primer admin. Cambiarla desde la consola después del primer login. |
bc.resolver
| Clave |
Significado |
bc.resolver.refresh-seconds |
Cada cuántos segundos se reconstruye el snapshot en memoria como red de seguridad (por defecto 60). Un guardado desde la consola ya refresca al instante, sin esperar este valor. |
bc.auditoria
| Clave |
Significado |
bc.auditoria.queue-size |
Capacidad de la cola de auditoría (por defecto 10 000). Si se llena, el excedente se cuenta en auditoria.perdidas en vez de frenar la respuesta al gateway. |
bc.auditoria.retencion-dias |
Días de consulta (con consulta_beneficio por cascada) y de resultado_pago en línea antes de que PurgaAuditoriaJob los borre en lotes (AC-67, por defecto 365, mínimo 1). Exportar antes de bajarlo — ver Despliegue. |
bc.auditoria.purga-cron |
Cron (formato @Scheduled: seg min hora día mes día-semana) del job de purga; opcional, por defecto 0 30 3 * * SUN (domingos 03:30, AC-67 — antes corría todas las noches). |
bc.auditoria.purga-lote |
Filas eliminadas por pasada durante la purga, por tabla; opcional, por defecto 5 000. |
bc.resultado
| Clave |
Significado |
bc.resultado.queue-size |
Capacidad de la cola de resultados de pago (por defecto 10 000, mismo mecanismo que bc.auditoria.queue-size). Si se llena, el excedente se cuenta en resultados.perdidos en vez de frenar la respuesta al gateway (entrega 3, ver Pipeline de resultado de pago). |
bc.branding
| Clave |
Significado |
bc.branding.logo-url |
URL que la consola pone en el <img src> del logo del sidebar. Para usar el logo propio servido por assets-dir, apuntarla a /branding/logo.png. |
bc.branding.color-primario |
Hex #RRGGBB; se aplica como color primario de la consola, como theme_color/background_color del manifest PWA y como <meta name="theme-color"> del navegador. |
bc.branding.cliente-nombre |
Nombre mostrado en el sidebar y usado como name/short_name (truncado a 12 caracteres) del manifest PWA. |
bc.branding.assets-dir |
Directorio absoluto con logo.png, icon-192.png e icon-512.png propios del cliente, servidos en GET /branding/** (AC-44). Opcional — ver Marca blanca. |
Si esta sección completa se omite, se usan los valores DINI de la entrega 1 (lima #E0F848).
bootui.enabled
| Clave |
Significado |
bootui.enabled |
Prende la consola de desarrollo embebida BootUI en /bootui (sin login). Opcional — omitida o en OFF, queda dormida en producción. No activar en un servidor productivo: expone internals de la aplicación. Ver Despliegue. |
Nota sobre el simulador del gateway
El simulador (tools/gateway-sim/gateway_sim.py) no lee application.yml: recibe la URL base
y la API key del gateway por línea de comandos o variable de entorno BC_API_KEY, para probar
el contrato de resolución sin depender de un GatewayQR real. Ver
Simulador del gateway.
Dónde sigue