QualityHub

Sistema de Gestión de Calidad · SaaS Multi-tenant

Arquitectura completa, modelo de datos (ERD), seguridad, API contracts, stack tecnológico y plan de despliegue para la plataforma de control de calidad de marca propia.

SaaS Multi-tenant JWT + OAuth 2.0 + MFA PostgreSQL + S3 REST API + OpenAPI 3.1 RBAC Granular 8 roles i18n ES / EN CI/CD GitOps GDPR / LOPD
Version 2.0 · MVP Preview · May 2025
1. Arquitectura General del Sistema

Arquitectura SaaS multi-tenant, cloud-native, diseñada con separación de capas y aislamiento estricto de datos por tenant (Row-Level Security en PostgreSQL). Escala horizontal a ≥500 proveedores y ≥5.000 productos sin rediseño.

Capa de Presentación — Clientes
Web App (Next.js 14 + React 18)
Mobile PWA (auditores en campo)
API Clients (ERP, Power BI)
Reportes PDF / Excel
↕ HTTPS / TLS 1.3
Capa de Seguridad / Borde
CDN (CloudFront / Cloudflare)
WAF + DDoS Protection
SSL/TLS Termination
Rate Limiting por tenant
API Gateway & Autenticación / Autorización
API Gateway (Kong / AWS API GW)
Auth Service (Keycloak / Auth0)
JWT + MFA + SSO (OAuth 2.0 / OIDC)
RBAC Middleware (8 roles)
OpenAPI 3.1 Docs
Capa de Servicios — Backend (NestJS / FastAPI) · Microservicios
Suppliers Service
Products Service
Audits Service
Action Plans Service
Lab Analysis Service
Messaging Service
Notifications Service
Audit Log Service
Reports & BI Service
Config & Tenant Service
Mensajería Asíncrona & Background Workers
Message Queue (RabbitMQ / AWS SQS)
Cron Jobs (alertas, análisis vencidos)
Email Worker (SendGrid / SES)
PDF Generator Worker
Push Notification Worker
Capa de Datos & Almacenamiento
PostgreSQL 16 (RDS Multi-AZ) — Datos Relacionales + RLS
Redis 7 — Cache / Sesiones / Rate limit
AWS S3 / Azure Blob — PDFs, evidencias, reportes
Elasticsearch — Búsqueda full-text en logs y análisis
Datadog / CloudWatch — APM & Métricas
Sentry — Error Tracking
ELK Stack — Logging centralizado
SIEM — Alertas de seguridad
2. Stack Tecnológico

Tecnologías modernas, battle-tested a escala enterprise. La selección prioriza productividad del equipo, ecosistema maduro y facilidad de operación en producción.

Frontend
React 18 + Next.js 14
Framework UI · App Router · SSR/SSG
TailwindCSS + shadcn/ui
Design system + componentes accesibles
Chart.js + ECharts
Visualización KPIs y analytics
PWA + Capacitor
App móvil / modo offline auditores
i18next
Internacionalización ES / EN
Zustand + React Query
State + server cache management
React Hook Form + Zod
Formularios + validación tipo-segura
react-pdf + jsPDF
Generación de informes PDF cliente
Backend — Opción A (Node.js / TypeScript)
NestJS 10
Framework modular + DI + decoradores
Prisma ORM
Type-safe ORM + migraciones
Passport.js + JWT
Auth multi-estrategia
Swagger / OpenAPI
Documentación API auto-generada
Backend — Opción B (Python)
FastAPI 0.110
Async · OpenAPI auto · alto rendimiento
Pydantic v2
Validación y serialización
SQLAlchemy 2 + Alembic
ORM async + migraciones
Celery + Redis
Background tasks distribuidos
Infraestructura & DevOps
AWS ECS / GCP Cloud Run
Containers serverless auto-scaling
Kubernetes (EKS)
Orquestación a escala enterprise
RDS PostgreSQL 16
Multi-AZ · Read replicas · Backups
AWS S3 + CloudFront
Objetos · CDN · Firma URLs
Docker + Compose
Containerización dev/staging/prod
GitHub Actions
CI/CD Pipeline completo
Terraform
IaC · Infraestructura versionada
Datadog / New Relic
APM · Alertas · Dashboards Ops
3. Módulos Funcionales

9 módulos que conforman el sistema integral. Cada uno es independiente y deployable por separado gracias a la arquitectura de microservicios.

M1 — Gestión de Proveedores

Alta/baja/modificación de proveedores con datos legales completos. Certificaciones con alertas automáticas de vencimiento (90/30/7 días). Scoring histórico y gestión documental.

CRUD completoCertificacionesAlertas vencimiento Score automáticoHistorialMulti-contacto

M2 — Productos Marca Propia

Ficha técnica completa con especificaciones fisicoquímicas, microbiológicas y organolépticas. Versionado de fichas, gestión de alérgenos e información nutricional estructurada.

EAN / códigoEspecificacionesVersionado AlérgenosInfo nutricionalN:N con proveedores

M3 — Auditorías

Plantillas personalizables por tipo (BPM, HACCP, ISO). Programación automática, ejecución online con hallazgos clasificados, scoring automático e informe PDF firmado.

ChecklistsProgramaciónScoring auto Hallazgos tipificadosPDF firmadoNotif. automática

M4 — Planes de Acción

Workflow causa-raíz → acción inmediata → correctiva con aprobaciones multinivel, carga de evidencias, comentarios con trazabilidad y alertas de vencimiento por SLA.

Causa raízWorkflowAprobación multinivel EvidenciasAlertas SLAHistorial comentarios

M5 — Análisis de Laboratorio

Calendario automático de solicitudes por frecuencia configurada. Carga de resultados + PDF, validación automática vs especificaciones del producto, trazabilidad por lote.

Calendario autoValidación vs specHistorial lotes Upload PDFDesvíosAlertas NC

M6 — Configuración

Gestión de catálogos maestros: tipos de análisis, frecuencias, plantillas de auditoría, criterios de aprobación, SLAs, usuarios y permisos RBAC del tenant.

FrecuenciasPlantillasCatálogos SLAsCriteriosUsuarios RBAC

M7 — Comunicaciones

Mensajería interna con trazabilidad completa, adjuntos, hilos por proveedor/producto. Notificaciones por email y push. Centro de alertas centralizado.

MensajeríaHilosAdjuntos Notif. emailPushPrioridades

M8 — Reportes & Analytics

Dashboard ejecutivo con KPIs en tiempo real. Ranking de proveedores, evolución de compliance, exportación a Excel/PDF y conectores para Power BI / Tableau.

Dashboard KPIsRankingTendencias Export ExcelExport PDFPower BI API

M9 — Log de Auditoría del Sistema

Registro inmutable (append-only) de cada acción con usuario, IP, entidad afectada y resultado. Cumplimiento normativo ISO 22000, BRC, FDA 21 CFR Part 11. Retención 5 años.

InmutableUsuario + IPBúsqueda Exportación5 años retenciónISO 22000 compliant
4. Modelo Entidad-Relación (ERD)

Esquema PostgreSQL 16 con 16 tablas principales. Cada tabla principal incluye tenant_id para aislamiento multi-tenant con Row-Level Security (RLS). PKs en UUID v4.

tenants
idUUIDPK
nameVARCHAR(200)
slugVARCHAR(100)UQ
planENUM(basic,pro,enterprise)
settingsJSONB
activeBOOLEAN DEFAULT true
created_atTIMESTAMPTZ
users
idUUIDPK
tenant_idUUIDFK→tenants
supplier_idUUID?FK→suppliers
nameVARCHAR(200)
emailVARCHAR(255)UQ
roleENUM(8 roles)
password_hashTEXT
mfa_secretTEXT (cifrado)
activeBOOLEAN
last_loginTIMESTAMPTZ
created_atTIMESTAMPTZ
suppliers
idUUIDPK
tenant_idUUIDFK→tenants
codeVARCHAR(20)UQ
nameVARCHAR(200)
trade_nameVARCHAR(100)
rut / tax_idVARCHAR(20)
categoryVARCHAR(100)
statusENUM(active,suspended,evaluation)
risk_levelENUM(low,medium,high)
overall_scoreINT CHECK(0..100)
deleted_atTIMESTAMPTZ (soft)
created_atTIMESTAMPTZ
supplier_certifications
idUUIDPK
supplier_idUUIDFK→suppliers
nameVARCHAR(200)
issued_byVARCHAR(200)
issue_dateDATE
expiry_dateDATE
document_urlTEXT (S3 signed URL)
statusENUM(active,expiring,expired)
products
idUUIDPK
tenant_idUUIDFK→tenants
codeVARCHAR(20)UQ
eanVARCHAR(13)UQ
nameVARCHAR(200)
categoryVARCHAR(100)
brandVARCHAR(100)
shelf_lifeINT
statusENUM(active,suspended,development)
versionINT DEFAULT 1
allergensTEXT[]
nutritional_infoJSONB
created_atTIMESTAMPTZ
product_suppliers
idUUIDPK
product_idUUIDFK→products
supplier_idUUIDFK→suppliers
is_primaryBOOLEAN
effective_fromDATE
effective_toDATE?
product_specifications
idUUIDPK
product_idUUIDFK→products
parameterVARCHAR(200)
typeENUM(fisicoquimico,microbiologico,organoleptico)
min_valueNUMERIC
max_valueNUMERIC
unitVARCHAR(50)
methodVARCHAR(200)
acceptableTEXT (criterio organol.)
audits
idUUIDPK
tenant_idUUIDFK→tenants
codeVARCHAR(20)UQ
supplier_idUUIDFK→suppliers
typeVARCHAR(50) — BPM, HACCP…
statusENUM(scheduled,in_progress,completed,cancelled)
resultENUM(approved,conditional,rejected)
scheduled_dateDATE
execution_dateDATE?
auditor_idUUIDFK→users
scoreINT CHECK(0..100)
report_urlTEXT (S3)
created_atTIMESTAMPTZ
audit_findings
idUUIDPK
audit_idUUIDFK→audits
typeENUM(critical,major,minor)
areaVARCHAR(200)
descriptionTEXT
statusENUM(open,in_progress,closed)
evidence_urlsTEXT[] (S3)
action_plans
idUUIDPK
finding_idUUIDFK→audit_findings
codeVARCHAR(20)UQ
statusENUM(sent,in_review,approved,rejected,closed)
root_causeTEXT
immediate_actionTEXT
corrective_actionTEXT
responsible_idUUIDFK→users
due_dateDATE
approved_byUUID?FK→users
created_atTIMESTAMPTZ
action_plan_comments
idUUIDPK
plan_idUUIDFK→action_plans
user_idUUIDFK→users
contentTEXT
evidence_urlsTEXT[] (S3)
created_atTIMESTAMPTZ
lab_analysis
idUUIDPK
tenant_idUUIDFK→tenants
codeVARCHAR(20)UQ
product_idUUIDFK→products
supplier_idUUIDFK→suppliers
laboratoryVARCHAR(200)
statusENUM(pending,compliant,non_compliant,overdue)
lotVARCHAR(100)
sampling_dateDATE
frequencyENUM(mensual,trimestral,semestral,anual)
report_urlTEXT (S3)
validated_byUUID?FK→users
created_atTIMESTAMPTZ
analysis_results
idUUIDPK
analysis_idUUIDFK→lab_analysis
parameterVARCHAR(200)
result_valueTEXT (valor o "Ausente")
unitVARCHAR(50)
min_valueNUMERIC
max_valueNUMERIC
is_compliantBOOLEAN
deviation_pctNUMERIC (calculado)
messages
idUUIDPK
tenant_idUUIDFK→tenants
thread_idUUID (hilo)
subjectVARCHAR(300)
from_user_idUUIDFK→users
to_user_idUUIDFK→users
contentTEXT
priorityENUM(normal,high,urgent)
readBOOLEAN DEFAULT false
attachment_urlsTEXT[] (S3)
created_atTIMESTAMPTZ
notifications
idUUIDPK
tenant_idUUIDFK→tenants
user_idUUIDFK→users
typeENUM(danger,warning,success,info)
titleVARCHAR(200)
messageTEXT
linkVARCHAR(200)
readBOOLEAN DEFAULT false
created_atTIMESTAMPTZ
audit_log
idUUIDPK
tenant_idUUIDFK→tenants
user_idUUIDFK→users
actionVARCHAR(200)
entity_typeVARCHAR(100)
entity_idUUID
resultVARCHAR(200)
ip_addressINET
user_agentTEXT
created_atTIMESTAMPTZ (immutable)
Relaciones Clave del Modelo
suppliers1 ── Nsupplier_certifications
productsN ── Nsuppliersvía product_suppliers
products1 ── Nproduct_specifications
suppliers1 ── Naudits
audits1 ── Naudit_findings
audit_findings1 ── 1action_plans
action_plans1 ── Naction_plan_comments
products1 ── Nlab_analysis
lab_analysis1 ── Nanalysis_results
tenants1 ── Ntodas las entidades principales (RLS)
Principios de Diseño del Esquema
🏢 Multi-tenancy RLS: Cada tabla principal incluye tenant_id con Row-Level Security en PostgreSQL para aislamiento total.
🔑 UUIDs v4: PKs en UUID para evitar enumeración, facilitar sharding y distribución multi-región.
📋 Soft deletes: Entidades críticas usan deleted_at. audit_log es append-only e inmutable.
🔒 Cifrado: Campos sensibles (password, MFA, API keys) con AES-256. PII ofuscada en logs.
📊 JSONB: Campos flexibles (nutritional_info, settings) con índices GIN para búsquedas eficientes.
⚡ Índices: En tenant_id, status, created_at. Índices parciales para registros activos. Read replicas para reportes.
5. Roles y Permisos (RBAC)

Control de acceso basado en roles con 8 perfiles diferenciados. Aislamiento estricto entre usuarios internos de la cadena y externos (proveedores / laboratorios).

Módulo / Acción Admin Jefe Calidad Auditor Analista Comprador Proveedor Admin Proveedor Calidad Usuario Lab
Gestión de Proveedores — Crear/Editar/SuspenderR/OR/OR/O
Productos — Crear/Editar/VersionarR/OR/O
Auditorías — Programar
Auditorías — Ejecutar (checklist + hallazgos)R/O
Auditorías — Aprobar resultado
Planes de Acción — Ver / Comentar
Planes de Acción — Aprobar / Rechazar
Análisis de Lab — Cargar resultado + PDFR/O
Análisis de Lab — Validar oficialmente
Mensajería — Ver / Enviar mensajesR/O
Reportes & KPIs — VerR/OSolo propiosSolo propios
Configuración del Sistema — Editar
Log de Auditoría del Sistema — Ver
Gestión de Usuarios & Tenant
Acceso completo (CRUD) R/O Solo lectura Sin acceso
6. API Contracts (REST / OpenAPI 3.1)

Endpoints principales siguiendo REST convencional. Todas las rutas requieren header Authorization: Bearer <JWT> y el claim tenant_id en el token. Documentación completa disponible en /api/docs (Swagger UI).

Suppliers API
GET/api/v1/suppliersListar (filtros: status, risk, category, q)
POST/api/v1/suppliersCrear proveedor
GET/api/v1/suppliers/:idDetalle + certificaciones + score
PUT/api/v1/suppliers/:idActualizar datos
PATCH/api/v1/suppliers/:id/statusCambiar estado (active/suspended)
GET/api/v1/suppliers/:id/score-historyHistorial de scores
POST/api/v1/suppliers/:id/certificationsAgregar certificación
Products API
GET/api/v1/productsListar (filtros: status, category, supplier)
POST/api/v1/productsCrear producto
GET/api/v1/products/:idFicha completa + especificaciones
PUT/api/v1/products/:idActualizar (incrementa versión)
GET/api/v1/products/:id/specsEspecificaciones técnicas
POST/api/v1/products/:id/specsAgregar especificación
GET/api/v1/products/:id/analysisHistorial análisis del producto
Audits API
GET/api/v1/auditsListar (filtros: status, result, supplier)
POST/api/v1/auditsProgramar auditoría
GET/api/v1/audits/:idDetalle + hallazgos + checklist
PATCH/api/v1/audits/:id/executeEjecutar (score + result + findings)
PATCH/api/v1/audits/:id/approveAprobar auditoría completada
GET/api/v1/audits/:id/reportURL firmada del PDF de informe
POST/api/v1/audits/:id/findingsAgregar hallazgo
Action Plans API
GET/api/v1/action-plansListar (filtros: status, criticality, supplier)
GET/api/v1/action-plans/:idDetalle + comentarios + evidencias
PATCH/api/v1/action-plans/:id/respondProveedor responde (causa + acciones)
PATCH/api/v1/action-plans/:id/approveAprobar plan (Jefe Calidad)
PATCH/api/v1/action-plans/:id/rejectRechazar y solicitar mejoras
POST/api/v1/action-plans/:id/commentsAgregar comentario
POST/api/v1/action-plans/:id/evidencesSubir evidencia (S3 multipart)
Lab Analysis API
GET/api/v1/lab-analysisListar (filtros: status, product, supplier, freq)
POST/api/v1/lab-analysisCrear solicitud / cargar resultado
GET/api/v1/lab-analysis/:idDetalle + resultados + comparación spec
PATCH/api/v1/lab-analysis/:id/validateValidar oficialmente (analista)
GET/api/v1/lab-analysis/:id/reportURL firmada del PDF de resultados
GET/api/v1/lab-analysis/overdueAnálisis vencidos (uso en alertas cron)
Reports & KPIs API
GET/api/v1/reports/kpisKPIs principales del dashboard
GET/api/v1/reports/supplier-scoresRanking de scores de proveedores
GET/api/v1/reports/compliance-trendTendencia de compliance mensual
GET/api/v1/reports/findings-summaryResumen de hallazgos por tipo y área
GET/api/v1/reports/export/excelExportar datos a Excel (streaming)
GET/api/v1/reports/export/pdfExportar informe ejecutivo PDF
GET/api/v1/reports/audit-logLog de auditoría paginado y filtrable
7. Flujos de Proceso Clave

Diagramas paso a paso de los 4 procesos principales del sistema. Cada nodo muestra actor + acción.

Flujo de Auditoría Completa
1
Jefe Calidad programa auditoría (fecha, auditor, tipo)
2
Sistema notifica al Auditor y Proveedor vía email
3
Auditor ejecuta checklist en planta (online/offline PWA)
4
Auditor registra hallazgos (crítico / mayor / menor)
5
Sistema calcula score automáticamente y clasifica resultado
6
Sistema genera Plan de Acción por cada hallazgo
7
Sistema genera Informe PDF firmado y lo envía
8
Jefe Calidad revisa y aprueba / rechaza resultado
Flujo de Análisis de Laboratorio
1
Cron: Sistema genera solicitud automática según frecuencia
2
Proveedor recibe notificación de análisis pendiente
3
Proveedor carga PDF + resultados estructurados al portal
4
Sistema valida automáticamente vs especificaciones del producto
5a
CONFORME → Registro en histórico de lote · Score +
5b
NO CONFORME → Alerta automática + Plan de Acción generado
6
Analista de Calidad revisa y valida oficialmente
7
Log inmutable registra validación con usuario + IP
Flujo de Plan de Acción Correctiva
1
Hallazgo generado (auditoría o análisis NC) → Plan creado automáticamente
2
Proveedor recibe notificación con fecha límite de respuesta
3
Proveedor ingresa: causa raíz + acción inmediata + correctiva + evidencias
4
Plan pasa a estado "En Revisión" → Notificación a Analista
5
Analista / Jefe Calidad revisa plan, evidencias y datos
6a
APROBADO → Hallazgo cerrado · Score del proveedor actualizado
6b
RECHAZADO → Proveedor recibe feedback y debe resubmitir
7
Log inmutable registra toda la cadena de acciones
Flujo de Alta y Onboarding de Proveedor
1
Admin crea proveedor en el sistema (datos básicos)
2
Sistema envía invitación por email (link de activación 48h)
3
Proveedor activa cuenta, configura MFA y completa perfil
4
Proveedor carga certificaciones y documentación requerida
5
Jefe Calidad revisa documentación → Aprueba o solicita correcciones
6
Jefe Calidad programa Auditoría Inicial de Calificación
7
Auditoría ejecutada: APROBADO → Proveedor activo en plataforma
8
Proveedor puede recibir solicitudes de análisis y planes de acción
8. Plan MVP en 3 Fases

Priorización de módulos para entrega incremental de valor. El objetivo de Fase 1 es eliminar los correos y Excel desde el primer día de uso.

1
Fase 1 — Core
Meses 1–3 · Base sólida
3–4 devs · ~USD 80K

Eliminar correos y Excel para comunicación de calidad. Portal unificado para internos y proveedores.

M1 — Gestión completa de Proveedores
M2 — Catálogo de Productos con Fichas Técnicas
Autenticación RBAC multi-rol (8 perfiles)
Multi-tenancy con RLS en PostgreSQL
Dashboard básico con KPIs principales
M7 — Mensajería interna proveedor ↔ cadena
Notificaciones por email (SendGrid/SES)
CI/CD base + ambientes DEV/QA/PROD
✅ KPI de éxito: 100% comunicación migrada al portal. 0 emails sueltos.
2
Fase 2 — Calidad
Meses 4–6 · Trazabilidad total
4–5 devs · ~USD 120K

Trazabilidad 100% de auditorías, análisis y planes de acción. Cero procesos manuales fuera del sistema.

M3 — Auditorías con checklists y scoring
M4 — Planes de Acción con workflow completo
M5 — Análisis de Laboratorio y validación
Generación automática de solicitudes de análisis
Informes PDF firmados de auditorías
M9 — Log de auditoría inmutable
Alertas automáticas de vencimientos (cron)
App móvil PWA para auditores en campo
✅ KPI de éxito: Trazabilidad 100% de cada análisis, auditoría y plan de acción.
3
Fase 3 — Inteligencia
Meses 7–10 · Escala enterprise
3–4 devs · ~USD 100K

Decisiones basadas en datos, predicción de riesgos e integración con ecosistema corporativo (ERP, BI, SSO).

M8 — Dashboard ejecutivo avanzado con BI
Exportación automatizada a Power BI / Tableau
Integración ERP (SAP, Oracle) vía REST API
Scoring predictivo de riesgo proveedores (ML)
SSO corporativo (Azure AD / Okta OIDC)
Firma digital de informes (DocuSign / eIDAS)
API pública documentada (OpenAPI / Swagger)
Soporte multi-país · multi-moneda · multi-idioma
✅ KPI de éxito: +500 proveedores, +5.000 productos. Reducción 50% tiempo de respuesta.
Cronograma General (10 Meses)
Fase 1
Fase 2
Fase 3
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
Fase 1 — Core (M1-M3) ~USD 80K
Fase 2 — Calidad (M4-M6) ~USD 120K
Fase 3 — Inteligencia (M7-M10) ~USD 100K
9. Requisitos No Funcionales (NFR)

Criterios de calidad del sistema que aplican de forma transversal a todos los módulos.

Rendimiento

  • Respuesta API P95 < 300ms
  • Dashboard carga en < 2s (LCP)
  • ≥ 500 proveedores activos simultáneos
  • ≥ 5.000 productos sin degradación
  • Exportación Excel/PDF < 30s
  • Throughput ≥ 1.000 req/s (load test)

Disponibilidad

  • SLA 99.9% uptime (≤ 8.7h/año downtime)
  • Multi-AZ deployment (failover automático)
  • Health checks cada 30s
  • Rollback automático si health check falla
  • RPO < 1h · RTO < 4h
  • Backups automáticos cada 6h

Seguridad

  • JWT RS256 + refresh tokens rotados
  • MFA TOTP obligatorio (admins)
  • Cifrado AES-256 en reposo
  • TLS 1.3 en tránsito
  • OWASP Top 10 cubierto (SAST/DAST)
  • Penetration test semestral

Privacidad & Compliance

  • GDPR · LOPD (España) compliant
  • ISO 22000 · BRC · FDA 21 CFR Part 11
  • Derecho al olvido implementado
  • Log inmutable 5 años (retención)
  • PII ofuscado en logs y backups
  • DPA (Data Processing Agreement) por tenant

Escalabilidad

  • Auto-scaling horizontal (HPA en K8s)
  • Arquitectura stateless (sesiones en Redis)
  • Read replicas para reportes y BI
  • Queue-based load leveling (SQS)
  • Multi-región (DR) para enterprise
  • Diseño para 10× crecimiento sin rediseño

Usabilidad & i18n

  • WCAG 2.1 AA (accesibilidad)
  • i18n: Español (ES-CL, ES-ES) + English
  • Responsive: desktop, tablet, móvil
  • PWA offline-first para auditores
  • Onboarding guiado (< 30 min primer uso)
  • Tiempo de respuesta percibido < 1s
10. Plan de Despliegue CI/CD

Pipeline GitOps automatizado con GitHub Actions. 3 ambientes con criterios de promotion explícitos y rollback automático.

Pipeline GitHub Actions — 8 Etapas
Code Push
git push → PR
Tests
Unit + Integration + E2E
SAST / DAST
Snyk + SonarQube
Build Image
Docker multi-stage
Push Registry
ECR / GCR (tagged)
Deploy DEV
Auto en merge a main
QA Review
Aprobación manual
Deploy PROD
Blue/Green · Health check
DEV — Desarrollo
  • Auto-deploy en cada commit a main
  • Hot reload habilitado
  • DB local con datos de prueba (seed)
  • Sin restricciones de acceso
  • Feature flags habilitados
QA / STAGING — Pruebas
  • Deploy al aprobar PR con 2 reviewers
  • Datos anonimizados de producción
  • Pruebas de carga (k6 / Gatling)
  • Penetration testing automático
  • Notificaciones Slack en fallos
PRODUCCIÓN — Live
  • Aprobación explícita del tech lead
  • Blue/Green deployment (0 downtime)
  • Rollback automático si health check falla
  • Monitoreo 24/7 · Alertas PagerDuty
  • Changelog automático (release notes)