I2 — Deploy Finance API to Azure (DEV)¶
Política (obligatoria)¶
Todo cambio de infra, config, imagen o datos de demo va por Azure DevOps pipeline.
No usar Docker local, az interactivo, Portal ni scripts ad-hoc para configurar DEV.
| Qué | Cómo |
|---|---|
| Remote state / storage tfstate | Pipeline eai-terraform-bootstrap (una vez) |
| RG, SQL, Blob, DI, KV, ACA, RBAC, env vars | Pipeline eai-terraform-dev (rama deployment + env dev-terraform-apply) |
| Build imagen + actualizar Container App | Pipeline eai-finance-api-deploy (rama deployment + env dev-app-deploy) |
| Build imagen + actualizar Finance Web | Pipeline eai-finance-web-deploy (rama deployment + env dev-app-deploy) |
| Seed demo (suppliers / POs) | Automático al arrancar la API (seed_if_empty) — no SQL manual |
| Secretos (SQL password) | Variable group eai-terraform-dev en Azure DevOps |
Única “acción humana” permitida: aprobar el environment gate en el pipeline.
Flujo oficial¶
- Cambios en
infra/**→ merge adeployment→ corre eai-terraform-dev → aprobar apply. - Cambios en
services/finance-api/**(o rule-engine) → merge adeployment→ corre eai-finance-api-deploy → aprobar deploy. - Cambios en
apps/finance-web/**→ merge adeployment→ corre eai-finance-web-deploy → aprobar deploy. - Probar solo lectura/smoke contra el FQDN (health / docs / portal). No “arreglar” a mano en Portal.
Estado I2¶
- [x] Bootstrap state México + Terraform DEV (
rg-eai-dev-mxc) - [x] Pipeline app:
az acr build+ update imagen ACA - [x] Cableado SQL / Blob / DI vía env Terraform + código (
AZURE_*, MI) - [ ] Smoke E2E post-deploy (crear factura → process → audit) vía API/Swagger
Pipelines¶
| Pipeline | YAML | Branch apply/deploy |
|---|---|---|
| eai-terraform-bootstrap | azure-pipelines-terraform-bootstrap.yml |
manual / una vez |
| eai-terraform-dev | azure-pipelines-terraform.yml |
deployment |
| eai-finance-api-deploy | azure-pipelines-finance-api.yml |
deployment |
| eai-finance-web-deploy | azure-pipelines-finance-web.yml |
deployment |
| eai-mcp-suppliers-deploy | azure-pipelines-mcp-suppliers.yml |
deployment |
| eai-mvp-ci | azure-pipelines.yml |
validate/test (sin deploy) |
Finance Web (portal Next.js → ACA)¶
- Crear pipeline ADO eai-finance-web-deploy apuntando a
azure-pipelines-finance-web.yml(una vez). - Primera vez (orden): merge a
deployment→ correr eai-finance-web-deploy (Build dejaeai-finance-web:deven ACR; Deploy avisa si el CA aún no existe) → aprobar eai-terraform-dev (creaca-eai-finance-web-devconFINANCE_API_BASE_URL→ FQDN del API) → re-aprobar eai-finance-web-deploy Deploy para roll de imagen. - Siguientes cambios solo en
apps/finance-web/**: merge → pipeline web → aprobardev-app-deploy. - Portal:
https://<finance-web-fqdn>/(output Terraformfinance_web_fqdn).
MCP suppliers (cloud)¶
- Merge a
deployment(infra +services/mcp-suppliers-server). - Aprobar eai-terraform-dev → crea
ca-eai-mcp-sup-dev. - Aprobar eai-mcp-suppliers-deploy → imagen
eai-mcp-suppliers:dev+ roll. - Smoke:
GET https://<mcp-fqdn>/api/platform/health· endpoint MCP/mcp.