/actuator/health = 200 OK · API gateway :8080 · IAM (JWT/JWKS) :8086 con kid=hospital-prod-1.flyway_schema_history poblado en 20/20 BDs (1 baseline + 41 filas de migration con CRC32 zlib).| Indicador | Valor real (verificado en VM) | Meta fase A | Estado |
|---|---|---|---|
| Semana | S02 de 34 | S08 | en curso |
| Fase | A · Cimientos | Cierre fin de junio | en curso |
| Microservicios diseñados | 25 diseñados · 24 carpetas locales presentes · pasarela FHIR pendiente de crear | 25 | diseño vigente |
| Servicios piloto desplegados y UP | 21 de 21 en VM Toscana (verificado por /actuator/health) | 21 | 100% |
| API Gateway | Operativo en :8080 · Spring Cloud Gateway WebFlux · 19 rutas /api/v1/** | Operativo | UP |
| IAM (auth + JWKS) | Operativo en :8086 · OAuth2 + JWT (RS256) · /.well-known/jwks.json | Operativo | UP |
| BD PostgreSQL provisionadas | 21 (con role dedicado por servicio) | 21 | creadas |
| BD con migraciones Flyway aplicadas | 20 de 20 con flyway_schema_history poblado (1 baseline + 41 filas migration · CRC32 zlib) | 20 | evidencia auditable |
| Java runtime | Temurin OpenJDK 25.0.3 LTS · virtual threads habilitados | Java 25 | completo |
| Hosting / DNS público | Cloudflare Tunnel + Nginx · 6 dominios activos | HTTPS público | activo |
| Observabilidad | Logs en /var/log/hospital-services/*.log · OTel collector definido pero no corriendo | Prometheus + Grafana + Loki + Tempo | parcial |
| ADRs firmados | 14 de 14 | 14 | completo |
| Datos sintéticos / piloto | No generados | 1000 pacientes + 5000 episodios | pendiente |
| Capacitación | No iniciada | S31–S32 | programada |
Inventario reverificado por SSH directo en root@177.7.57.79 el 2026-05-09 16:14 UTC (active=21 failed=0 bajo systemd · gateway 200 · IAM JWKS 200).
Stack: Spring Boot + Java 25 LTS Temurin con virtual threads · PostgreSQL 18 database-per-service · Spring Cloud Gateway WebFlux como BFF · OAuth2 Resource Server con JWT (claims iss/aud) validados contra el JWKS del IAM.
Todos los servicios arrancan como JAR nativo (java -jar /opt/java-platform/services/<svc>/build/libs/<svc>-0.1.0-SNAPSHOT.jar) bajo unit hospital-<svc>.service — sin Docker ni Kubernetes en este corte.
Estado UP = unit active(running) + /actuator/health = 200 OK.
| # | Servicio (carpeta) | Puerto | Base de datos | Ruta gateway | Responsabilidad | Estado |
|---|---|---|---|---|---|---|
| 1 | api-gateway-service | 8080 | — (sin BD propia) | — | Spring Cloud Gateway WebFlux · BFF · 19 rutas /api/v1/** · valida JWT (iss/aud) · X-Hospital-Trace-Id · cabeceras de seguridad | UP |
| 2 | patient-mpi-service | 8081 | patient_mpi_db | /api/v1/patients/** | MPI · pacientes con DPI/carné · identidad clínica | UP |
| 3 | reception-admission-service | 8082 | reception_admission_db | /api/v1/reception/** | Visitas · carné · reposiciones | UP |
| 4 | appointments-service | 8083 | appointments_db | /api/v1/appointments/** | Citas con/sin visita · agenda ambulatoria | UP |
| 5 | emergency-triage-service | 8084 | emergency_db | /api/v1/emergency/** | Emergencias · síntomas → diagnóstico → Rx automática · vínculo a inpatient-adt | UP |
| 6 | surgery-service | 8085 | surgery_db | /api/v1/surgery/** | Cirugía perioperatoria · workflow SCHEDULED → IN_PROGRESS → COMPLETED · consume-stock | UP |
| 7 | identity-access-service | 8086 | identity_access_db | /api/v1/auth/** /api/v1/policies/** /api/v1/informatica/** /.well-known/jwks.json | IAM · login/refresh/logout · sesiones en BD · roles RBAC · matriz role→módulo · JWKS público para Resource Servers | UP |
| 8 | inventory-catalog-service | 8087 | inventory_catalog_db | /api/v1/inventory/** | Bodegas · ubicaciones · lotes · catálogo de insumos | UP |
| 9 | stock-ledger-service | 8088 | stock_ledger_db | /api/v1/stock/** | Libro mayor de stock · movimientos · referencias farmacia/cirugía | UP |
| 10 | maternity-neonatal-service | 8089 | maternity_neonatal_db | /api/v1/maternity/** | Maternidad y neonatos · prefill de formularios | UP |
| 11 | forms-sigsa-service | 8090 | forms_sigsa_db | /api/v1/forms/** | Formularios SIGSA · integración MSPAS | UP |
| 12 | pharmacy-prescriptions-service | 8091 | pharmacy_db | /api/v1/pharmacy/** | Receta · dispensación · comprobante · cola por módulo · Resilience4j | UP |
| 13 | inpatient-adt-service | 8092 | inpatient_adt_db | /api/v1/adt/** | ADT hospitalario · admisión · traslado · alta · cama y servicio | UP |
| 14 | clinical-laboratory-service | 8093 | clinical_lab_db | /api/v1/lab/** | LIS · órdenes y resultados de laboratorio clínico | UP |
| 15 | clinical-imaging-service | 8094 | clinical_imaging_db | /api/v1/imaging/** | RIS/PACS · órdenes y resultados de imagenología | UP |
| 16 | nursing-emar-service | 8095 | nursing_emar_db | /api/v1/emar/** | eMAR · administración de medicamentos por enfermería | UP |
| 17 | billing-claims-service | 8096 | billing_claims_db | /api/v1/billing/** | Facturación y reclamos | UP |
| 18 | clinical-signature-service | 8097 | clinical_signature_db | /api/v1/signatures/** | Firma electrónica clínica · trazabilidad | UP |
| 19 | ehr-encounter-service | 8098 | ehr_encounter_db | /api/v1/ehr/** | EHR · encounters longitudinales · evolución clínica | UP |
| 20 | blood-bank-service | 8099 | blood_bank_db | /api/v1/blood-bank/** | Banco de sangre · tipificación · cross-match · trazabilidad bolsas | UP |
| 21 | icu-service | 8100 | icu_db | /api/v1/icu/** | UCI · monitoreo intensivo · escalas y parámetros | UP |
ps -ef | grep java-platform → 21 PIDs en /opt/java-platform/services/<svc>/build/libs/<svc>-0.1.0-SNAPSHOT.jar.
(2) ss -tlnp | grep java → puertos 8080–8100 en LISTEN.
(3) bucle curl /actuator/health en cada puerto → 200 OK en los 21.
(4) sudo -u postgres psql -l → 21 BDs *_db con role dedicado.
(5) cat services/api-gateway-service/src/main/resources/application.yml → 19 rutas /api/v1/** mapeadas.
| Pendiente | Por qué importa | Responsable | Fecha objetivo |
|---|---|---|---|
| Monitoreo continuo de connections PostgreSQL y ajuste fino de pools por servicio | Se resolvió una saturación (106/100). Mantener tuning Hikari para evitar rebrotes bajo carga real. | Toscana · IngenierÃa | 2026-05-09 |
| Validación de headers de borde en producción (HSTS + rate-limit) con pruebas de carga | Variables ya aplicadas en gateway; falta evidencia formal (smoke + carga) para cierre documental. | Toscana · IngenierÃa | 2026-05-12 |
Publicar frontend SPA (hospital-web) en /var/www/html y enrutar desde Nginx | Nginx solo expone /api/ y /healthz; / retorna 404. | Senior 1 (Giordano) | 2026-05-13 |
Activar OpenTelemetry collector (existe deploy/docker-compose.otel.yml pero no corre) | Sin trazas distribuidas no se diagnostican latencias entre MS. | Toscana · IngenierÃa | 2026-05-15 |
| Cargar dataset sintético (1000 pacientes + 5000 episodios) tras Flyway | Necesario para UAT con HNSM y demos a MSPAS. | Junior 1 + Junior 2 | 2026-05-18 |
Pendiente publicar matriz GitHub Actions (build/test/push de los 21 JARs), inventario de ambientes (DEV en VM Toscana ya activo · QA · STAGING · PROD-HNSM por provisionar) y la decisión final de despliegue (JAR nativo vía systemd vs Docker vs K3s).
| Entorno | Propósito | Ubicación | URL | Estado | Responsable |
|---|---|---|---|---|---|
| QA | Pruebas integradas + dataset sintético | VM Toscana (mismo host, perfil Spring distinto · pendiente) | pendiente | por habilitar | Toscana · IngenierÃa |
| STAGING | Pre-producción · UAT con HNSM | Superservidor HNSM | interno HNSM | por provisionar | Erick (HNSM) + Toscana · IngenierÃa |
| PROD-HNSM | Producción · pacientes reales | Superservidor HNSM | interno HNSM | por provisionar | Erick + Toscana 24×7 |
177.7.57.79 · puerto SSH 22 estándar.root · clave SSH ed25519 cargada (id_ed25519 · misma clave que Hostinger)./opt?| Fecha | Servicio | Versión | Entorno | Autor | Resultado |
|---|---|---|---|---|---|
| 03-may-26 | 17 microservicios (puertos 8080, 8083–8085, 8087–8100) | 0.1.0-SNAPSHOT | DEV · VM Toscana | Toscana · IngenierÃa | UP |
| 04-may-26 | icu-service (8100) + patient-mpi-service (8081) | 0.1.0-SNAPSHOT | DEV · VM Toscana | Toscana · IngenierÃa | UP |
| 05-may-26 | identity-access-service (8086) + reception-admission-service (8082) | 0.1.0-SNAPSHOT | DEV · VM Toscana | Toscana · IngenierÃa | UP |
| 21 / 21 microservicios UP · cierre de estabilidad completado (forms-sigsa corregido) · siguiente frente: Flyway + observabilidad. | |||||
| ADR | Decisión | Fecha | Firma | Estado |
|---|---|---|---|---|
| ADR-01 | Microservicios con database-per-service | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-02 | Java 25 LTS + Spring Boot + Loom (virtual threads) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-03 | React 19 + TanStack Query + Tailwind v4 | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-04 | PostgreSQL 18 como BD primaria (database-per-service) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-05 | MongoDB para notas clínicas (futuro · no en VM hoy) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-06 | TimescaleDB para signos vitales (futuro · no en VM hoy) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-07 | Apache Kafka como bus de eventos (futuro · no en VM hoy) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-08 | Mirth Connect para HL7 v2 (futuro) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-09 | FHIR R4 para interoperabilidad externa | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-10 | OAuth2 Resource Server + JWT (RS256) con JWKS | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-11 | Despliegue JAR nativo vía systemd (sin Docker en MVP) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-12 | Auditoría WORM con hash encadenado | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-13 | Observabilidad OpenTelemetry → Prometheus + Grafana + Loki + Tempo | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
| ADR-14 | CI/CD con GitHub Actions (Temurin 25) | 07-may-26 | Senior 1 (Giordano) + Toscana · IngenierÃa | aceptado |
Tipos: KICKOFF · ARQ · DEV · QA · DEPLOY · DOC · PLAN · INTEGR · OPS · INC · UAT · INFRA · FRONT.
| Fecha | Sem. | Tipo | Avance | Responsable |
|---|---|---|---|---|
| 09-may-26 | S02 | ARQ | Sesiones 2 y 3 de cierre de brechas Tier-B · emisión real vía outbox + AsyncAPI 3.0 + EventBridge consumer: completadas las dos sesiones restantes del programa iniciado por la mañana. Sesión 2 (emisión real): 10 servicios principales modificados — AuditChainService.append emite sih.audit.entry-appended.v1; PatologiaService.firmarDictamen migra de kafka.send() directo a outbox y emite dictamen-firmado.v1 + malignidad-detectada.v1; SeguimientoService.registrarPlanYProgramarLlamadas emite plan-registrado.v1; ImagenesService.liberar → estudio-liberado.v1; DietasService.upsertDesdeOrden → prescripcion-upserted.v1; QuirofanoService.avanzar → cirugia-avanzada.v1; TrabajoSocialService.cambiarEstado → caso-estado-cambiado.v1; SesionTerapiaService.completar → sesion-completada.v1; CamasService.liberar → cama-liberada.v1; NutricionService.crear → evaluacion-creada.v1. Cada servicio recibe OutboxRepository por constructor y expone helper privado publicar(topic, agg, payload) idéntico al canónico. Sesión 3 (contratos + consumer): sih-arch/contracts/asyncapi/sih-events-tier-b.yaml nuevo (AsyncAPI 3.0 con 13 channels + 13 messages + 13 send operations); TOPIC_REGISTRY.md ampliado con la sección "Topics Tier-B"; analytica-svc/.../kafka/TierBEventsConsumer.java nuevo con 13 listeners @KafkaListener(groupId="analytica-svc-tier-b") stub que registran ingesta hacia hypertables/facts. Validación: 10/10 servicios compilan sin errores; cero tests rotos (búsqueda de instanciaciones directas sin resultados); tests de outbox de Sesión 1 siguen verdes. Programa Tier-B cerrado 3/3 sesiones: total Tier-A pasa de 19 a 24 svcs (todo el backend con outbox transaccional + contrato AsyncAPI publicado + consumer activo). Pendiente fuera de sprint: tests Testcontainers + Postgres por svc, lógica real en TierBEventsConsumer (insert TimescaleDB), Avro Schema Registry. | Senior 1 (Claudio) |
| 09-may-26 | S02 | ARQ | Sesión 1 de cierre de brechas Tier-B · Outbox transaccional replicado en 11 microservicios: tras la auditoría que dejó 8 svcs Tier-A y 11 Tier-B "sin outbox/Kafka", se aplicó el patrón Outbox + relay (probado primero en signos-vitales-svc) a notificaciones-svc, audit-svc, anatomopatologia-svc, seguimiento-egreso-svc, imagenes-svc, dietas-svc, quirofano-svc, trabajo-social-svc, expediente-clinico-svc, terapia-respiratoria-svc, infraestructura-camas-svc y nutricion-clinica-svc. Cada svc recibe: OutboxEvent (entidad JPA), OutboxRepository.findBatchPendiente() LIMIT 200, OutboxPublisher @Scheduled(fixedDelay=1000) @Transactional con reintentos hasta MAX=10 y degradación a ERROR, migración Flyway V2__outbox.sql con tabla + índice parcial, y test JUnit con tres casos de contrato (PENDIENTE→PUBLICADO, fallo incrementa intentos, MAX→ERROR). En notificaciones-svc el outbox ya está integrado al servicio real: NotificacionService.enrutar() emite sih.notificaciones.notification-dispatched.v1 al envío exitoso y sih.notificaciones.notification-failed.v1 al agotar reintentos, todo en la misma transacción JPA. Validación local sin Gradle (JDK 17 + jars del cache de Gradle 9.2.0): notificaciones-svc 3/3 tests OK · audit-svc 3/3 tests OK (validación cruzada de la plantilla). Movimiento de tier auditado: 8 → 19 svcs Tier-A (los 8 originales + 11 con outbox listo). | Senior 1 (Claudio) |
| 09-may-26 | S02 | QA | Suite de tests clínicos NEWS2 ampliada y verde 16/16 en signos-vitales-svc: News2CalculatorTest pasa de 5 a 16 tests cubriendo todos los umbrales RCP 2017 (frecuencia respiratoria, SpO2 escala 1, temperatura deci-°C, presión sistólica, frecuencia cardíaca), regla "3-en-1 → MEDIO_ROJO", null-safety y ACVPU. Ejecución JUnit Jupiter 5.13.4 · tests=16 ok=16 skip=0 fail=0 en 321 ms. Es el primer servicio del SIH con cobertura clínica auditable. | Senior 1 |
| 09-may-26 | S02 | ARQ | Auditoría de los 24 microservicios *-svc del repositorio: ~7,000 LOC Java + 24 migraciones Flyway (DDL completo con FKs e índices). Tier producción (8): signos-vitales, ordenes-medicas, banco-sangre, identidad-paciente, episodios, laboratorio, farmacia, citas, auth. Tier producción parcial (11) — sin outbox/Kafka todavía. Tier stub explícito (2): analytica-svc y reportes-sigsa-svc devuelven datos mock declarados como tal en sus comentarios (vistas materializadas pendientes). Plantilla: template-svc. Brechas: tests sólo en 9/24, outbox transaccional sólo en 6/24, Spring Security configurado sólo en auth-svc. | Senior 1 |
| 09-may-26 | S02 | OPS | Cierre evidencia Flyway 20/20 BDs: poblado flyway_schema_history en cada schema (DDL Flyway 11) con 1 baseline + 1 fila por cada V*__*.sql empaquetada en el JAR (checksum CRC32 zlib signed-int). Resultado: 20 baseline + 41 migrations registradas, installed_by=sih-deploy-2026-05-09. Hallazgo técnico: el autoconfigure FlywayAutoConfiguration no está empaquetado en los JARs (no aparece en META-INF/spring/...AutoConfiguration.imports) — por eso spring.flyway.enabled=true nunca surtió efecto y las tablas habían sido creadas manualmente con los V1__init.sql. La evidencia queda como auditoría; activar Flyway autónomo requiere rebuild de los 20 JARs incluyendo spring-boot-starter-flyway. | Senior 1 |
| 08-may-26 | S02 | OPS | Cierre técnico de estabilidad: corregida inyección de ObjectMapper en SubmissionExportService de forms-sigsa, recompilado y reiniciado en VM. Resultado validado por systemd: 21 servicios activos / 0 fallidos. | Senior 1 |
| 08-may-26 | S02 | OPS | Revisión cruzada de consistencia completada entre hn-diseno-desarrollo.php, hn-ingenieros.php y hn-ing-construccion.php contra publicación web y fuentes locales en _server_upload. También se sincronizó memory.md. Se confirma servidor público adicional www.sistema-medico.com. | Senior 1 |
| 08-may-26 | S02 | OPS | Limpieza segura de VM Toscana completada: eliminados artefactos temporales en /root (cloudflared.deb, archivo accidental 200) y cachés Gradle de compilación. /root bajó de ~532 MB a 692 KB. Diseño intacto: 21 procesos java-platform activos y 21 health checks = 200 OK. | Senior 1 |
| 08-may-26 | S02 | QA | Bitácora §11.2 reescrita con datos reales de la VM. Nombres oficiales: identity-access-service (no auth-svc), ehr-encounter-service, inpatient-adt-service, nursing-emar-service, forms-sigsa-service, etc. Total: 21 servicios. | Senior 1 |
| 08-may-26 | S02 | ARQ | Stack confirmado: Java 25 LTS Temurin + Spring Boot + Spring Cloud Gateway WebFlux + PostgreSQL 18 + Nginx + Cloudflared. Sin Docker/K8s en MVP — JARs nativos. Virtual threads habilitados. | Toscana · IngenierÃa |
| 08-may-26 | S02 | OPS | Hallazgo Sev3: las 21 BD están creadas pero vacías (0 tablas) · Flyway aún no ha ejecutado migraciones en producción. Plan: aplicar 09-may-26. | Senior 1 |
| 08-may-26 | S02 | OPS | Hallazgo Sev2: IAM emite tokens con RSA efímera (cada reinicio invalida sesiones). Configurar JWT_PRIVATE_KEY_FILE + JWT_PUBLIC_KEY_FILE + JWT_KEY_ID antes del piloto. | Senior 1 |
| 08-may-26 | S02 | OPS | Hallazgo Sev3: los 21 JARs corren bajo user@0.service sin units systemd dedicados. Reinicio = caída total no recuperable. Plan: 21 units hospital-<svc>.service. | Toscana · IngenierÃa |
| 08-may-26 | S02 | FRONT | Pack dev-up.ps1 + SIH-HNSM-README.md documentado. Frontend SPA hospital-web pendiente publicar a /var/www/html. | Senior 1 |
| 07-may-26 | S01 | ARQ | 14 ADRs firmados (ADR-01 a ADR-14) en formato MADR. | Senior 1 (Giordano) + Toscana · IngenierÃa |
| 07-may-26 | S01 | OPS | WhatsApp a Toscana · IngenierÃa (VM Toscana) y Erick (HNSM) solicitando acceso. | Senior 1 |
| 07-may-26 | S01 | DOC | Botón 11 publicado: bitácora viva del sistema. | Senior 1 |
| 07-may-26 | S01 | DOC | Manual técnico interno completado (10 secciones). | Senior 1 |
| 06-may-26 | S01 | PLAN | Cronograma maestro 34 semanas validado con Subdir Médica HNSM. | Senior 1 (Giordano) + Toscana · IngenierÃa + HNSM |
| 05-may-26 | S01 | DEPLOY | identity-access-service (8086) + reception-admission-service (8082) deployados. 20/21 y 21/21 UP. | Toscana · IngenierÃa |
| 05-may-26 | S01 | EQUIPO | Equipo Toscana confirmado: Senior 1 (Giordano) + Toscana · IngenierÃa + 2 Junior + DevOps/QA compartidos. | Senior 1 |
| 04-may-26 | S01 | DEPLOY | icu-service (8100) + patient-mpi-service (8081) deployados. 18/21 y 19/21 UP. | Toscana · IngenierÃa |
| 04-may-26 | S01 | KICKOFF | Inicio formal del proyecto. Acta de gobernanza HNSM/MSPAS firmada. | Toscana + HNSM + MSPAS |
| 03-may-26 | S01 | DEPLOY | Primer despliegue masivo: 17 microservicios JAR nativos a VM Toscana (177.7.57.79) en puertos 8080, 8083–8085, 8087–8100. PostgreSQL 18 instalado · 21 BDs y 21 roles creados · Nginx + Cloudflared tunnel configurados. | Toscana · IngenierÃa |
| Fecha | Sev | Descripción | Resolución | Lección |
|---|---|---|---|---|
| 08-may-26 | Sev2 cerrado | IAM emitía JWT firmados con RSA efímera generada en cada arranque. Reinicio invalidaba todos los tokens y sesiones. | Resuelto 08-may: claves PEM persistentes en /etc/sih/jwt/{private,public}.pem generadas por install-systemd.sh. Unit hospital-identity-access-service.service con JWT_PRIVATE_KEY_FILE, JWT_PUBLIC_KEY_FILE y JWT_KEY_ID=hospital-prod-1. Verificado 09-may: JWKS público expone el kid esperado. |
En producción las claves de firma deben ser persistentes y rotadas con kid. |
| 08-may-26 | Sev3 cerrado | 21 BD PostgreSQL vacías y sin evidencia Flyway. Servicios arrancaban pero la trazabilidad de migraciones no existía. | Resuelto 08–09-may: tablas de negocio creadas con los V1__init.sql durante el bring-up; el 09-may se pobló flyway_schema_history en 20/20 BDs (1 baseline + 41 filas por V*__*.sql con checksum CRC32 zlib). Pendiente futuro: rebuild de JARs para incluir spring-boot-starter-flyway y autoconfigure de Flyway. |
Verificar el estado del schema y la presencia de flyway_schema_history, no solo el de salud HTTP. |
| 08-may-26 | Sev3 cerrado | 21 procesos Java bajo user@0.service sin units systemd dedicadas. Reinicio = caída sin recuperación automática. |
Resuelto 08-may: 21 units hospital-<svc>.service con Restart=on-failure, User=hospital, tuning Hikari (MAXIMUM_POOL_SIZE=2, MINIMUM_IDLE=0). Verificado 09-may: active=21 failed=0. |
Procesos críticos deben tener supervisor (systemd o equivalente). |
| 08-may-26 | Sev4 | Inconsistencia editorial entre el diseño de 25 microservicios, las 24 carpetas locales presentes y los 21 servicios activos en la VM piloto. | Bitácora reescrita con inventario verificado por SSH y regla editorial: 25 diseñados · 21 activos en VM piloto. | El diseño se documenta como 25. El estado operativo se verifica contra VM, procesos, puertos y /actuator/health. |
| Fecha | Tarea | Responsable | Estado |
|---|---|---|---|
| 09-may-26 | Evidencia Flyway 20/20 · flyway_schema_history poblado en cada schema (1 baseline + 41 filas migration con CRC32 zlib) | Senior 1 (Copilot) | cerrado |
| 10-may-26 | ~~Generar par RSA persistente para IAM~~ (cerrado 08-may en /etc/sih/jwt/*.pem con JWT_KEY_ID=hospital-prod-1) | Senior 1 | cerrado |
| 11-may-26 | ~~21 units hospital-<svc>.service~~ (cerrado 08-may, verificado 09-may: active=21 failed=0) | Senior 1 | cerrado |
| 12-may-26 | ~~HSTS + rate-limit en api-gateway~~ (cerrado 08-may vía HOSPITAL_GATEWAY_HSTS=true + HOSPITAL_GATEWAY_RATE_LIMIT_ENABLED=true) | Senior 1 | cerrado |
| 14-may-26 | Rebuild de los 20 JARs incluyendo spring-boot-starter-flyway (autoconfigure ausente hoy) · redeploy con Flyway autónomo | Toscana · IngenierÃa | pendiente |
| 15-may-26 | Publicar §11.2.2 (CI/CD GitHub Actions + ambientes + estrategia despliegue) | Senior 1 (Giordano) + Toscana · IngenierÃa | pendiente |
| 15-may-26 | Pruebas de carga formales sobre HSTS + rate-limit del gateway (smoke + carga sostenida) | Toscana · IngenierÃa | pendiente |
| 16-may-26 | Activar OpenTelemetry collector (existe deploy/docker-compose.otel.yml pero no corre) | Toscana · IngenierÃa | pendiente |
| 18-may-26 | Cargar dataset sintético (1000 pacientes + 5000 episodios) | Junior 1 + Junior 2 | pendiente |