Saltar a contenido

Configuración (.env)

Variables de entorno del backend, leídas por app/config.py (clase Config) y la app factory. Se cargan con python-dotenv desde el .env de la raíz.

Variables principales

# --- Seguridad ---
SECRET_KEY=<cadena-aleatoria-larga>      # firma de JWT; OBLIGATORIA en producción

# --- Base de datos ---
DATABASE_URL=postgresql://user:pass@host:5432/gestion_civis
# Si no se define, cae a SQLite local (solo desarrollo)

# --- Almacenamiento ---
STORAGE_PROVIDER=local                   # 'local' o 'gcs'
STORAGE_LOCAL_PATH=./storage             # ruta base si es local

# --- Frontend / CORS ---
FRONTEND_URL=http://localhost:5173
FRONTEND_ALLOWED_ORIGINS=http://localhost:5173,http://127.0.0.1:5173

# --- IA ---
IA_AUDITORIA_ENABLED=false
GOOGLE_API_KEY=<api-key>

# --- Feature flags de presupuesto ---
PRESUPUESTO_EDICION_CONCEJALIAS=false
PRESUPUESTO_PRORROGA_AUTO=false
PRESUPUESTO_LOG_LEVEL=INFO

Tokens JWT

Los tiempos de caducidad están en Config (no en .env por defecto):

  • Access token: 15 minutos.
  • Refresh token: 7 días.

SIR / Registro (si se usa interconexión real)

SIR_MODE=production            # 'mock' (def.) o 'production'
SIR_WSDL_URL=<url-wsdl>
SIR_USERNAME=<usuario-minhap>
SIR_PASSWORD=<password>
SIR_CERT_P12_PATH=/ruta/sello-organo.p12
SIR_CERT_P12_PWD=<password-cert>
SIR_TIMEOUT_S=60

Google Cloud Storage (si STORAGE_PROVIDER=gcs)

GOOGLE_APPLICATION_CREDENTIALS=/ruta/credenciales.json
GCS_BUCKET_NAME=<bucket>

Seguridad de SECRET_KEY

En producción SECRET_KEY debe ser una cadena aleatoria fuerte y secreta. No usar el valor por defecto del código (es solo para desarrollo). La auditoría de seguridad del proyecto recoge la retirada del fallback débil como tarea pendiente: confirmar que en el despliegue real se define explícitamente.

load_dotenv

El proyecto puede convivir con otras aplicaciones; conviene asegurar que el .env de Gestión Civis no se vea contaminado por variables globales del shell (especialmente DATABASE_URL).