shoc-backend/docs/work-orders/phase-7/phase-7-gates-signoff.md

80 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 7 — Gates Sign-Off Checklist
**Programa:** Work Orders Board
**Fase:** 7 — Rollout e Produção
---
## Engineering readiness (código — branch `feat/work-orders-phase-7`)
Itens de engenharia entregues no repositório. Não substituem gates de staging/ops abaixo.
| # | Item | Evidência | Status |
|---|------|-----------|--------|
| E1 | `GET /api/workorders/ops/health` | `WorkOrderOpsController` + `WorkOrderOpsHealthService` | [x] |
| E2 | `POST /api/workorders/ingest` + `X-Ingest-Key` | `WorkOrderIngestController` + `IngestApiKeyFilter` | [x] |
| E3 | `Sync:Enabled` → 503 no SyncController | `SyncOptions` + checks em WorkOrders/Comments/VendorReplies/All | [x] |
| E4 | Legacy deprecation middleware | `LegacyDeprecationMiddleware` + `LegacyEndpoints` config | [x] |
| E5 | Blazor sunset guard | `BlazorWorkOrderSunsetOptions` + guard em `WorkorderService` | [x] |
| E6 | Alertas documentados | [cloudwatch-alerts.md](cloudwatch-alerts.md) | [x] |
| E7 | Lambda mapping documentado | [lambda-ingest-discovery.md](lambda-ingest-discovery.md) | [x] |
| E8 | Testes coexistência | `dotnet test --filter FullyQualifiedName~WorkOrderPhase7` | [x] |
| E9 | Fase 6 slide-over API | `GET detail/audit/comments/media`, completion-doc, templates | [x] |
**Config flags (default seguro em prod):**
- `WorkOrderIngest:Enabled=true` (requer `ApiKey`)
- `Sync:Enabled=true` até cutover
- `LegacyEndpoints:DeprecationEnabled=false` até anúncio
- `BlazorWorkOrderSunset:Enabled=false` até data PO
---
## Gate de entrada (GO Fase 7)
Bloqueia piloto em produção até todos os itens estarem verdes.
| # | Gate | Artefato / evidência | Status |
|---|------|----------------------|--------|
| 1 | Fases 0–6 validadas em staging | `docs/work-orders/phase-0` … `phase-6` READMEs | [ ] |
| 2 | Sign-off CTO/PO Fase 0 | [phase-0-gates-signoff.md](../phase-0/phase-0-gates-signoff.md) | [ ] |
| 3 | Dry-run migrations Phase0–Phase6 | [migration-dry-run-report.md](../phase-0/migration-dry-run-report.md) | [ ] |
| 4 | Smoke multi-consumidor | [smoke-checklist.md](../phase-0/smoke-checklist.md) | [ ] |
| 5 | Vendor Portal regression | Checklist dispatch checklist/signoff | [ ] |
| 6 | SHOC E2E staging | Contratos phase-1 … phase-6 integrados | [ ] |
| 7 | Tier volume confirmado | [volume-discovery-report.md](../phase-0/volume-discovery-report.md) | [ ] |
### Checklist PO ([consumer-inventory.md](../phase-0/consumer-inventory.md))
- [ ] App mobile externo confirmado (sim/não/N/A)
- [ ] Data sunset Blazor WO definida: _______________
- [ ] `FrontendBaseUrl` produção → SHOC configurado
- [ ] Owner Lambda cutover nomeado: _______________
**Assinatura GO Fase 7**
| Papel | Nome | Data |
|-------|------|------|
| CTO | | |
| PO | | |
---
## Gates de saída (DONE Fase 7)
| Gate | Critério | Status |
|------|----------|--------|
| Piloto | 1–2 dispatchers SHOC em prod; UAT assinado | [ ] |
| Rollout | 100% dispatchers no board SHOC | [ ] |
| Estabilidade | Zero P1 por 2 semanas consecutivas | [ ] |
| Blazor | Módulo WO sunset (`BlazorWorkOrderSunset:Enabled`) | [ ] |
| Lambda | Ingest direto `POST /api/workorders/ingest`; Dynamo/Sync desligados | [ ] |
| Monitoramento | `GET /api/workorders/ops/health` + alertas CloudWatch criados | [ ] |
| Legado | Headers `Sunset`/`Deprecation` nos endpoints legado | [ ] |
**Assinatura DONE Fase 7**
| Papel | Nome | Data |
|-------|------|------|
| CTO | | |
| PO | | |