Cuarentena
Qué ocurre con las reglas que no pasan, y cómo se decide su destino.
Idea
Lo que pasa las pruebas se publica automáticamente. Lo que no pasa va a cuarentena y una persona decide: aprobar su despliegue, eliminarla o mantenerla. En la siguiente ejecución diaria el pipeline lee esa decisión y actúa: publica la regla, la elimina o la deja en cuarentena. Aprobar nunca salta los controles técnicos: la regla se vuelve a validar.
Dibujando el diagrama…
stateDiagram-v2 [*] --> PENDING: pipeline submits a quarantined file PENDING --> UNDER_REVIEW: reviewer holds it PENDING --> APPROVED_PENDING_VALIDATION: approve UNDER_REVIEW --> APPROVED_PENDING_VALIDATION: approve PENDING --> REJECTED: delete UNDER_REVIEW --> REJECTED: delete APPROVED_PENDING_VALIDATION --> REJECTED: delete APPROVED_PENDING_VALIDATION --> UNDER_REVIEW: hold, takes the approval back APPROVED_PENDING_VALIDATION --> RELEASED: publish.yml after the checks pass again APPROVED_PENDING_VALIDATION --> PENDING: revalidation failed RELEASED --> PENDING: revalidation failed later REJECTED --> [*]
Descripción del diagrama
Estados guardados por el servicio privado. Un candidato en cuarentena entra como PENDING. Una persona puede ponerlo en UNDER_REVIEW, aprobarlo (APPROVED_PENDING_VALIDATION) o rechazarlo. Solo publish.yml pasa una regla aprobada a RELEASED, cuando los controles técnicos se han superado de nuevo; si la revalidación falla vuelve a PENDING. REJECTED es definitivo para ese contenido.
Código Mermaid
stateDiagram-v2
[*] --> PENDING: pipeline submits a quarantined file
PENDING --> UNDER_REVIEW: reviewer holds it
PENDING --> APPROVED_PENDING_VALIDATION: approve
UNDER_REVIEW --> APPROVED_PENDING_VALIDATION: approve
PENDING --> REJECTED: delete
UNDER_REVIEW --> REJECTED: delete
APPROVED_PENDING_VALIDATION --> REJECTED: delete
APPROVED_PENDING_VALIDATION --> UNDER_REVIEW: hold, takes the approval back
APPROVED_PENDING_VALIDATION --> RELEASED: publish.yml after the checks pass again
APPROVED_PENDING_VALIDATION --> PENDING: revalidation failed
RELEASED --> PENDING: revalidation failed later
REJECTED --> [*]| Estado | Significado |
|---|---|
| PENDING | Entró en cuarentena; espera revisión. |
| UNDER_REVIEW | Una persona lo ha marcado como en revisión. |
| APPROVED_PENDING_VALIDATION | Aprobada; falta que publish.yml la valide de nuevo. |
| REJECTED | Eliminada; ese contenido no vuelve. Una versión editada es un candidato nuevo enlazado. |
| RELEASED | Publicada en una release. |
Qué sale al público
Los detalles de reglas en cuarentena o rechazadas (nombres, hallazgos, contenido) viajan solo al servicio privado. Los artefactos, el registro y el sitio públicos llevan únicamente recuentos. Un fichero que no está en el manifiesto no aparece en ninguna parte pública.
ACTUAL Persistencia y panel: implementados y probados en local; el servicio no está desplegado en producción (ver Panel privado). Mientras no lo esté, la cuarentena se calcula en cada ejecución y no hay decisión humana que leer.