54 lines
7.5 KiB
Markdown
54 lines
7.5 KiB
Markdown
# Seguimiento de implementación
|
||
|
||
Actualizado: 2026-10-26. Entrega actual: arquetipo y planificación. El motor no está implementado.
|
||
|
||
Estados permitidos: PENDING, IN_PROGRESS, BLOCKED, DONE. No más de una tarea principal IN_PROGRESS. Consultar IMPLEMENTATION_PLAN para subtareas y criterios.
|
||
|
||
| ID | Estado | Dependencias | Archivos | Comandos/checks | Resultado | Bloqueo | Siguiente paso |
|
||
|---|---|---|---|---|---|---|---|
|
||
| T01 | BLOCKED | — | pom.xml, mvnw*, .mvn, configuración, ADR-001 | Ver evidencia E01–E04 | Arquetipo creado; package con JDK 24 y release 21 aprobado; cierre pendiente | JDK 21 y Docker/PostgreSQL no disponibles para validación local completa | Validar con JDK 21 y PostgreSQL; añadir smoke test de salud |
|
||
| T02 | PENDING | T01 | contracts/openapi.yaml, schemas/, ejemplos contractuales | Pendiente: Validador OpenAPI/JSON Schema dentro de verify | No ejecutado | Dependencias sin completar | Definir rutas, DTOs y errores |
|
||
| T03 | PENDING | T02 | db/migration/, pruebas *IT | Pendiente: Testcontainers PostgreSQL, rollback y migraciones | No ejecutado | Dependencias sin completar | Crear tablas, FKs e índices |
|
||
| T04 | PENDING | T02,T03 | flow/, request/, execution/, decision/, action/ | Pendiente: Pruebas de dominio y dependencias entre capas | No ejecutado | Dependencias sin completar | Definir records y errores estables |
|
||
| T05 | PENDING | T04 | decision/, pruebas de AST | Pendiente: JUnit parametrizado: 71/70/61/60, tipos y solapamientos | No ejecutado | Dependencias sin completar | Implementar operadores/JSON Pointer/BigDecimal |
|
||
| T06 | PENDING | T03,T04,T05 | flow/, admin_audit, pruebas *IT | Pendiente: Pruebas PostgreSQL de carreras publicación/activación/retiro | No ejecutado | Dependencias sin completar | Validar grafo, mappings, roles y capacidades |
|
||
| T07 | PENDING | T04 | shared/infrastructure/security/, autorización por capacidad | Pendiente: Tokens firmados válidos/expirados, otro issuer/audience, scope/rol ajenos | No ejecutado | Dependencias sin completar | Validar JWT real (firma/issuer/audience/exp) |
|
||
| T08 | PENDING | T06,T07 | request/, repositorios y API | Pendiente: IT creación repetida/conflictiva y activación concurrente | No ejecutado | Dependencias sin completar | Resolver y fijar flujo activo |
|
||
| T09 | PENDING | T08 | execution/api, aceptación, auditoría | Pendiente: IT duplicados, conflictos, concurrencia y rollback | No ejecutado | Dependencias sin completar | Bloquear solicitud |
|
||
| T10 | PENDING | T09 | execution/infrastructure, worker y repositorios | Pendiente: IT dos workers, lease vencido y checkpoint; no @Async en memoria | No ejecutado | Dependencias sin completar | Reclamar con SKIP LOCKED |
|
||
| T11 | PENDING | T10 | action/, integration/, mocks, compose.yaml | Pendiente: Mocks de cliente encontrado/no encontrado, timeout y salida inválida | No ejecutado | Dependencias sin completar | Implementar catálogo confiable y REGISTER_DOCUMENT/INVOKE_INTEGRATION/NO_OP sólo simulación |
|
||
| T12 | PENDING | T11 | execution/, endpoint resolve, pruebas *IT | Pendiente: Fault injection antes/después de envío, checkpoint y commit | No ejecutado | Dependencias sin completar | Limitar intentos/backoff/jitter |
|
||
| T13 | PENDING | T11,T12 | document/, request/available-events | Pendiente: Documento ajeno/inválido, ejecución activa y payload con score | No ejecutado | Dependencias sin completar | Verificar pertenencia/tipo/MIME/tamaño/checksum/antimalware |
|
||
| T14 | PENDING | T05,T06,T13 | examples/flows/, examples/http/ | Pendiente: Recorridos completos de v1/v2, licencia válida/inválida y fronteras | No ejecutado | Dependencias sin completar | Crear crédito v1, crédito v2 con licencia y compra v1 completos |
|
||
| T15 | PENDING | T09,T10,T11,T12,T13,T14 | audit/, métricas, logs, health | Pendiente: Rollback/auditoría, acceso a historial, métricas y apagado | No ejecutado | Dependencias sin completar | Completar consultas paginadas/filtradas |
|
||
| T16 | PENDING | T15 | src/test/, CI, matriz A01–A20 | Pendiente: ./mvnw clean verify con Docker, sin skips de integración | No ejecutado | Dependencias sin completar | Automatizar A01–A20 |
|
||
| T17 | PENDING | T16 | Dockerfile, compose.yaml, README, RUNBOOK, examples/http, CI | Pendiente: Build de imagen, compose, verify y demo completa de sección 16 | No ejecutado | Dependencias sin completar | Construir imagen y Compose completos |
|
||
|
||
## Evidencias — 2026-10-26
|
||
|
||
- E01: `java -version` y `mvn -version`: Java 17.0.12 y Maven 3.9.12. Se encontró también Corretto 24; no JDK 21 en las ubicaciones revisadas. `Get-Command docker` no encontró Docker en PATH.
|
||
- E02: `mvn -B -N org.apache.maven.plugins:maven-wrapper-plugin:3.3.4:wrapper '-Dmaven=3.9.12' '-Dtype=only-script'`: BUILD SUCCESS. Wrapper oficial creado con distribución 3.9.12. Se corrigió una primera invocación cuya propiedad sin comillas fue fragmentada por PowerShell.
|
||
- E03: con JAVA_HOME apuntando temporalmente a Corretto 24, `.\mvnw.cmd -B '-Denforcer.skip=true' package`: BUILD SUCCESS; JAR ejecutable generado con compilación release 21. Fue una comprobación limitada; no equivale a build/runtime con JDK 21. No modificar Enforcer ni CI para omitir el requisito. No había pruebas ejecutables en esta comprobación.
|
||
- E04: POM/BOM Boot 4.1.2 y dependencias resueltos desde Maven Central. Arranque, health, Compose, Testcontainers y A01–A20 NO ejecutados. La imagen PostgreSQL fijada está pendiente de pull.
|
||
- E05: `.\mvnw.cmd -B --no-transfer-progress validate` con Java 17: rechazo esperado de Enforcer, mensaje `Configura JAVA_HOME con JDK 21.` La regla impide compilar accidentalmente con el runtime incorrecto.
|
||
- E06: `.\mvnw.cmd -B --no-transfer-progress dependency:tree '-Dincludes=org.junit.jupiter:*,org.junit.platform:*'`: BUILD SUCCESS; Jupiter 5.13.4 y Platform 1.13.4 confirmados.
|
||
- E07: lectura XML del POM y comprobación de IDs: T01–T17 presentes en plan/seguimiento. Cabecera binaria de OrchestratorApplication.class: major 65 (Java 21). La inspección inicial con javap quedó impedida por acceso del sandbox a java.security; la lectura directa de la cabecera confirmó el bytecode.
|
||
|
||
## Próxima sesión
|
||
|
||
### Preparación Docker solicitada — 2026-10-26
|
||
|
||
- Archivos: Dockerfile, .dockerignore, compose.yaml, .env.example, README.md, RUNBOOK.md y ADR-003.
|
||
- Entregado: imagen multietapa Java 21, usuario no root, healthcheck y un único servicio conectado a PostgreSQL externo. No se incluyó PostgreSQL en Compose. No se modificó ningún .env del usuario.
|
||
- Verificación: análisis con PyYAML 6.0.3 y comprobaciones estáticas aprobaron YAML, servicio único, ausencia de volúmenes/dependencias locales, seis variables obligatorias, puerto interno y mapeo al anfitrión. Herramienta temporal en .tools, fuera de Git y del contexto Docker.
|
||
- Bloqueo: Docker no disponible en PATH ni en la ubicación habitual de Docker Desktop; no se ejecutaron docker build, compose config ni arranque/conexión a PostgreSQL externo. Esta comprobación estática no sustituye esas pruebas.
|
||
- Siguiente paso: completar .env, ejecutar docker compose config --quiet y docker compose up --build -d; comprobar readiness y logs. T01 continúa BLOCKED y T17 PENDING hasta satisfacer sus criterios completos.
|
||
|
||
1. Leer este registro, especificación y cambios del repositorio.
|
||
2. Resolver T01: configurar JDK 21, PostgreSQL y valores de entorno JWT; incorporar y ejecutar smoke test, `clean verify` y health local.
|
||
3. Registrar evidencia y marcar T01 DONE sólo cuando cumpla todos sus criterios; entonces iniciar T02.
|
||
|
||
## Plantilla de evidencia adicional
|
||
|
||
`Fecha | ID | Archivos | Comando/check exacto | Resultado y reporte | Bloqueo | Próximo paso`
|