Azure DevOps — organización del proyecto¶
Organización¶
- Org: https://dev.azure.com/honneprojects/
- Proyecto: Enterprise-AI-Platform
- Proceso: Agile
- Visibilidad: Private
Repos¶
| Repo | Uso |
|---|---|
Enterprise-AI-Platform (default) |
Monorepo del MVP |
Branches¶
| Branch | Política |
|---|---|
main |
Estable / demo — dispara eai-mvp-ci |
develop |
Integración vía PR (no CI push duplicado) |
deployment |
Única rama que hace ACR build / apply / deploy |
feature/* |
Trabajo corto |
No promover el mismo commit a main+develop+deployment a la vez (sin parallel jobs satura la cola). Ver devsecops.md.
Boards — Áreas sugeridas¶
- Enterprise-AI-Platform\Platform
- Enterprise-AI-Platform\Finance
- Enterprise-AI-Platform\HR
- Enterprise-AI-Platform\Infra
- Enterprise-AI-Platform\Security
Boards — Épicas (backlog)¶
Ver docs/backlog.md: E0 Design → E6 Demo/IaC
Pipelines¶
- eai-mvp-ci (21) — validate/test + SAST/SCA (
azure-pipelines.yml) — trigger:main+ PRs - eai-terraform-dev (22) — validate + Checkov + plan; apply solo
deployment - eai-terraform-bootstrap (23) — remote state (manual)
- eai-finance-api-deploy (24) — Bandit/SCA → SonarQube → ACR → Trivy → deploy → OWASP ZAP — solo
deployment - eai-finance-web-deploy — npm audit → SonarQube → ACR
eai-finance-web→ Trivy →ca-eai-finance-web-dev— solodeployment - eai-mcp-suppliers-deploy — ACR
eai-mcp-suppliers→ca-eai-mcp-sup-dev— solodeployment - Templates:
pipelines/templates/steps-security-*.yml,pipelines/templates/steps-sonarqube.yml - SonarQube: service connection
sc-sonarqube-eai, variable groupeai-sonarqube, projectsenterprise-ai-finance-api/enterprise-ai-finance-web(Quality Gate report-first) - Docs: terraform-pipeline.md, devsecops.md, mcp-suppliers.md, azure-i2-deploy.md
Build/push de imágenes solo por pipeline (az acr build en Azure), solo desde rama deployment.
No Docker local, no az/Portal para configurar DEV, no poblar SQL a mano (seed en startup de la API).
Separación de responsabilidades¶
| Pipeline | Dueño de |
|---|---|
| eai-terraform-* | RG, storage state, SQL, Blob, DI, KV, ACA (finance-api + finance-web + mcp-sup), RBAC, env vars, secrets |
| eai-finance-api-deploy | Build imagen ACR + roll image finance-api Container App |
| eai-finance-web-deploy | Build imagen ACR + roll image finance-web Container App |
| eai-mcp-suppliers-deploy | Build imagen ACR + roll image MCP suppliers Container App |
| eai-mvp-ci | Validate / test (sin tocar Azure) |
Única intervención humana operativa: aprobar environments dev-terraform-apply / dev-app-deploy.
Service connection¶
- Service connection: sc-azure-eai-dev — SP
sp-eai-devops-dev - Contributor en la suscripción (crear recursos)
- User Access Administrator en
rg-eai-dev-mxc(para que Terraform gestionerole_assignmentdel MI) - Storage Blob Data Contributor en el storage de tfstate
- Variable group: eai-terraform-dev (
TF_VAR_SQL_ADMIN_PASSWORD) - Environment: dev-terraform-apply (gate de apply)
Repo¶
- https://dev.azure.com/honneprojects/Enterprise-AI-Platform/_git/Enterprise-AI-Platform
- Branches:
main,develop
Boards¶
- Épicas E0–E6 (IDs 1–7)
- User Stories (equivalente a PBI en proceso Agile) + Tasks creadas y enlazadas
- Areas: Platform, Finance, HR, Infra, Security
- Iterations: I0–I5
- Backlog: https://dev.azure.com/honneprojects/Enterprise-AI-Platform/_backlogs/backlog/
- Script de creación:
scripts/create-boards-backlog.ps1
| Épica | Iteración | Stories (aprox.) |
|---|---|---|
| E0 Design | I0 | 4 (3 Closed) |
| E1 Core local | I1 | 6 |
| E2 Finance | I2 | 6 |
| E3 HR + MCP | I3 | 4 |
| E4 Agents | I4 | 4 |
| E5 Gateway/Front | I4 | 4 |
| E6 IaC/Demo | I5 | 5 |
Seguridad PAT¶
El PAT compartido por chat no tenía scope Code (solo sirvió para Project/Work Items vía CLI).
Los pushes se hicieron con token AAD del usuario logueado en az.
Rotar/revocar el PAT expuesto y crear uno nuevo solo si hace falta, con scopes mínimos: Code (Read & Write), Build (Read & execute), Work Items (Read & write), Project and Team.
Environments¶
dev-terraform-apply— gate manual apply Terraformdev-app-deploy— gate manual deploy Container App (finance-api)
Seguridad¶
- PAT solo en User settings / pipelines secrets — nunca en el repo
- Rotar cualquier PAT que se haya compartido por chat