Estado real y fronteras de despliegue

Este documento es la referencia corta para evitar que la documentación confunda fixtures, conexiones live, persistencia local y despliegue público. La implementación y sus pruebas siguen siendo la autoridad final.

Modos de ejecución

Modo Fuente de evidencia Persistencia Qué demuestra Qué no demuestra
fixture Snapshots sintéticos versionados SQLite local o PostgreSQL configurado Contrato, reglas, UI, escenarios y reproducibilidad Volumen, distribución o permisos de una base productiva
local Motor configurado por el operador SQLite por defecto o PostgreSQL por referencia Conexión, discovery e inspección read-only acotada Certificación de producción o equivalencia entre motores
secure Motor live con TLS, scope y referencias de secretos SQLite o PostgreSQL por referencia La misma inspección con controles de transporte/configuración SLO, RPO/RTO, KMS, alta disponibilidad o datos reales autorizados

Una evidencia sample o incomplete conserva su límite, no publica métricas globales que no pueda justificar y nunca puede producir APROBADO. Los adaptadores live solo conectan, descubren e inspeccionan dentro de sus capabilities; no ejecutan migraciones ni certifican la salud de producción.

ReportStore

ReportStore mantiene el mismo contrato en ambos proveedores:

  • SQLite (DATABASE_PATH) es el modo local/demo y la opción predeterminada cuando no se configura DATABASE_URL_REF.
  • PostgreSQL se habilita con DATABASE_URL_REF=env:SCHEMASAFE_DATABASE_URL; usa la migración 001, índices, retención y transacciones.
  • Ningún frontend accede directamente a cualquiera de los dos stores ni se guardan credenciales en reportes, logs o el repositorio.

Despliegue M10

La topología pública documentada y seleccionada es:

GitHub Actions → imagen GHCR → Azure Container Apps Consumption
                                      ├─ minReplicas=0, maxReplicas=1
                                      ├─ fixtures sintéticos por defecto
                                      └─ PostgreSQL opcional y separado
Revisor → Cloudflare Pages Free → API HTTPS

Cloudflare Pages Free fue la decisión de proveedor para el frontend y los manuales. Azure Static Web Apps se evaluó como alternativa, pero no forma parte de la topología seleccionada; no debe aparecer como un recurso desplegado ni como una URL pública garantizada. El workflow permanece credential-gated: si faltan Azure OIDC, Cloudflare o los secretos de demo, no se ejecuta una provisión ni se inventa una URL.

Container Apps puede despertar en frío y escala a cero fuera de las solicitudes. MongoDB, CouchDB y Cassandra no se publican: sus fixtures se incluyen para la demo y los adaptadores live se validan localmente/CI.

Referencias