Saltar a contenido

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

  1. Cambios en infra/** → merge a deployment → corre eai-terraform-dev → aprobar apply.
  2. Cambios en services/finance-api/** (o rule-engine) → merge a deployment → corre eai-finance-api-deploy → aprobar deploy.
  3. Cambios en apps/finance-web/** → merge a deployment → corre eai-finance-web-deploy → aprobar deploy.
  4. 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)

  1. Crear pipeline ADO eai-finance-web-deploy apuntando a azure-pipelines-finance-web.yml (una vez).
  2. Primera vez (orden): merge a deployment → correr eai-finance-web-deploy (Build deja eai-finance-web:dev en ACR; Deploy avisa si el CA aún no existe) → aprobar eai-terraform-dev (crea ca-eai-finance-web-dev con FINANCE_API_BASE_URL → FQDN del API) → re-aprobar eai-finance-web-deploy Deploy para roll de imagen.
  3. Siguientes cambios solo en apps/finance-web/**: merge → pipeline web → aprobar dev-app-deploy.
  4. Portal: https://<finance-web-fqdn>/ (output Terraform finance_web_fqdn).

MCP suppliers (cloud)

  1. Merge a deployment (infra + services/mcp-suppliers-server).
  2. Aprobar eai-terraform-dev → crea ca-eai-mcp-sup-dev.
  3. Aprobar eai-mcp-suppliers-deploy → imagen eai-mcp-suppliers:dev + roll.
  4. Smoke: GET https://<mcp-fqdn>/api/platform/health · endpoint MCP /mcp.