Skip to content

chore(release): promover release a main (Sprint 4) - #7

Merged
dsavilam merged 11 commits into
mainfrom
release
Oct 22, 2026
Merged

dsavilam merged 11 commits into
mainfrom
release

Conversation

@santiagohb2830

Copy link
Copy Markdown
Contributor

Promoción de release (QA) a main (PROD) del Sprint 4, según ADR-0028.

Qué entra

  • release en e90f32b: 11 commits, sin conflictos con main.
  • Historias: SCRUM-1070, 1123, 1225, 1226, 1227, 1265.

Validación en QA (21-oct-2026)

  • release desplegado en la VM de QA con las imágenes :staging (Core 8ad4a35, Dispatch 0998a3d, Gateway f042817, Flutter 8e606e4, Rules e90f32b, Landing a82b94e); los 6 contenedores responden 200 en check-qa.sh.
  • Regresión Newman del Sprint 4 contra QA: 77 peticiones, 125 aserciones, 0 fallos (incluye los casos de SCRUM-1358, 1359 y 1360).
  • CI de release en verde sobre el SHA de este PR (publicación de imagen :staging correcta).

Al fusionar

main publica la imagen :latest (PROD, ADR-0028). Fusionar con merge commit, sin squash; el despliegue a producción es manual.

Revisor: @dsavilam.

Alviz09 and others added 11 commits October 16, 2026 12:20
…res uniformes y rutas del Gateway

- CorrelationIdFilter: X-Correlation-ID al MDC (patron de logs ya lo leia) y
  a la respuesta; "none" si falta, igual que Core.
- GlobalExceptionHandler + ApiError: forma {error, code, correlationId}
  comun con Core para 400/404/405/415/500.
- HealthController separado; RulesController responde con y sin el prefijo
  /api/v1/rules porque el Gateway lo recorta antes de reenviar (antes
  /api/v1/rules/evaluate-rate llegaba como /evaluate-rate y daba 404).
- Quita @crossorigin("*"): CORS es responsabilidad unica del Gateway.
- CI tambien en push a develop.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…les Service

POST /api/v1/rules/categories/evaluate (tambien sin prefijo, por el Gateway)
con el contrato declarado por Core en US-03.1.1-M2.2: { allowed,
ruleSetVersion, violations[] } + normalized.

- CategoryRuleEvaluator: funcion pura con las reglas de
  crear_categoria_servicio() (migracion 003): nombre normalizado 3-60 con
  letra (MANI-CAT-422N), flujo operativo permitido (MANI-CAT-422F); UPDATE
  parcial; OPERATE exige categoria activa (MANI-CAT-422C).
- Tenant solo desde X-Tenant-Id (claim del Gateway/Core); tenantId del
  cuerpo distinto => 403 TENANT_MISMATCH. CREATE/UPDATE exigen rol ADMIN.
- CategoryRulesProperties: parametros en mani.rules.category.* con override
  por tenant y version trazable; configuracion incoherente falla el arranque.
- El 409 por nombre duplicado sigue en el indice unico (requiere estado).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ra/Quality Gate

- CategoryRuleEvaluatorTest: limites 2/3/60/61, conteo por caracteres como
  char_length (emoji), letras Unicode, normalizacion, flujos, acumulacion
  de violaciones, UPDATE parcial, OPERATE, reglas configurables, determinismo.
- CategoryRulesPropertiesTest: binding real con override por tenant (UUID),
  version trazable y configuracion incoherente que impide el arranque.
- CategoryRulesControllerTest: contrato HTTP completo, prefijo del Gateway,
  roles ADMIN/admin_tenant vs ALLY, TENANT_REQUIRED/TENANT_MISMATCH,
  400/401/403/415; UnexpectedErrorTest: 500 uniforme sin filtrar detalle.
- jacoco:check en verify (lineas >= 85 %, ramas >= 80 %); hoy 93.6 % / 87.8 %.
- CI: SonarCloud con sonar.qualitygate.wait=true cuando existe SONAR_TOKEN;
  publica reportes de Surefire.

85 pruebas, mvn verify en verde.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ia-rules-java

[SCRUM-1070] US-03.1.1-M6: reglas de categoría en el Rules Service Java
[SCRUM-1123] Sincroniza develop con main (PR #1 entró a main)
…e reglas

Agrega quality-gate.yml en dos jobs: pruebas, cobertura JaCoCo y compilado en
ubuntu-latest; scanner en el runner self-hosted de la VM de Calidad con espera
del Quality Gate (proyectos mani-java y mani-java-pr). Los PRs desde forks
fallan el check en vez de omitirlo.

La configuracion de Sonar pasa del pom.xml (SonarCloud) a
sonar-project.properties, y ci.yml deja de intentar el analisis de SonarCloud.
…onarqube

[SCRUM-1265] Quality Gate de SonarQube self-hosted para el servicio de reglas
El analisis de mani-java avisaba 'Missing sonar.java.test.libraries'. El job
de pruebas copia tambien las dependencias de alcance test a
target/test-dependency, se publican en el artefacto y el properties las declara
en sonar.java.test.libraries.
[SCRUM-1265] Agrega las dependencias de prueba al análisis de SonarQube
chore(release): promover develop a release (Sprint 4)
@dsavilam
dsavilam merged commit 3b35c43 into main Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants