49 lines
3.5 KiB
Markdown
49 lines
3.5 KiB
Markdown
# Orquestador NMP
|
||
|
||
Arquetipo de un microservicio Spring Boot para ejecutar flujos configurables y versionados sobre PostgreSQL. La fuente funcional es [la especificación](Specs_Orquestador_SpringBoot_PostgreSQL.md).
|
||
|
||
## Estado
|
||
|
||
Incluye la estructura Maven, configuración JWT/PostgreSQL, Docker y salud verificada (T01), además del [contrato OpenAPI](contracts/openapi.yaml), [JSON Schema del DSL](schemas/flow-definition.schema.json) y ejemplos con validación automática (T02). El motor, endpoints de negocio, migraciones y flujos completos todavía están pendientes. Consultar [PROGRESS](specs/PROGRESS.md) para evidencia y bloqueos.
|
||
|
||
## Requisitos y ejecución
|
||
|
||
- Docker con contenedores Linux y Compose v2. La imagen compila con JDK 21 y Maven Wrapper; no requiere Java/Maven en el anfitrión.
|
||
- PostgreSQL 17 externo con base y usuario existentes, accesible desde Docker.
|
||
- Un issuer JWT con JWKS y audiencia; se conserva la autenticación.
|
||
|
||
```powershell
|
||
Copy-Item .env.example .env
|
||
# Completar DB_URL, DB_USERNAME, DB_PASSWORD y parámetros JWT.
|
||
docker compose config --quiet
|
||
docker compose up --build -d
|
||
docker compose ps
|
||
docker compose logs -f orquestador
|
||
```
|
||
|
||
Compose levanta únicamente `orquestador`. Para PostgreSQL en otra máquina usar `jdbc:postgresql://HOST:5432/BASE`; si está en el anfitrión de Docker, usar `host.docker.internal` en lugar de `localhost`. Ver [RUNBOOK](specs/RUNBOOK.md).
|
||
|
||
Salud: `http://localhost:8080/actuator/health/readiness`. El puerto publicado se configura con APP_PORT. El healthcheck incluye PostgreSQL; liveness no depende de proveedores. Las demás rutas requieren JWT. No hay endpoints de negocio implementados todavía.
|
||
## Organización y seguimiento
|
||
|
||
- [Arquitectura](specs/ARCHITECTURE.md): paquetes y fronteras.
|
||
- [Decisiones](specs/DECISIONS.md): versiones y motivos.
|
||
- [Plan T01–T17](specs/IMPLEMENTATION_PLAN.md): dependencias, subtareas y criterios de cierre.
|
||
- [Seguimiento](specs/PROGRESS.md): estado real, verificaciones y siguiente paso.
|
||
|
||
Surefire ejecuta `*Test` en `test`; Failsafe ejecuta `*IT` en `verify`. T01 incorpora un smoke de despliegue con cinco comprobaciones; T03 incorporará Testcontainers. CI ejecuta `clean verify` sin acceder a servidores privados. Para verificar explícitamente un servicio iniciado, usar JDK 21 y ejecutar:
|
||
|
||
```powershell
|
||
.\mvnw.cmd clean verify -Pdeployment-smoke '-Dsmoke.baseUrl=http://server02:8787'
|
||
```
|
||
|
||
Este perfil comprueba salud, readiness, liveness y rechazo de solicitudes sin token/con token malformado. No contiene todavía pruebas de negocio ni de JWT válido.
|
||
|
||
`clean verify` valida los contratos y sus ejemplos sin servicios externos. Consultar [convenciones REST](contracts/README.md), [semántica del DSL](schemas/README.md) y [fixtures T02](examples/contracts/README.md). Los ejemplos de `examples/http/contracts.http` son contratos objetivo, no endpoints implementados. Los flujos de crédito completos corresponden a T14.
|
||
|
||
El Dockerfile incluye contratos/schemas/fixtures en la etapa de construcción para ejecutar las mismas pruebas y ejecuta con JRE 21 como usuario no root. Compose no administra PostgreSQL ni sus volúmenes. Migraciones, mocks y roles de mínimo privilegio siguen pendientes de T03/T11/T07.
|
||
|
||
## Límites funcionales previstos
|
||
|
||
Nuevos umbrales, destinos y pasos con capacidades existentes se publicarán como configuración. Una nueva capacidad de validación puede requerir un adapter; un nuevo tipo de tarea puede requerir soporte del front. No incluye UI administrativa, Kafka, Drools ni migración automática de instancias.
|