{
  "schema_version": 1,
  "diagram_type": "lifecycle",
  "meta": {
    "title": "Ciclo de vida del despliegue",
    "output": "examples/deployment-release.html",
    "viewBox": [
      980,
      680
    ],
    "animation": "trace",
    "visual_preset": "signal-flow",
    "quality_profile": "showcase",
    "views": [
      {
        "id": "promotion-rail",
        "label": "Ruta de publicación",
        "focus": [
          "queued",
          "building",
          "verifying",
          "ready",
          "live"
        ],
        "note": "Sigue el despliegue desde el cambio aceptado hasta una producción saludable."
      },
      {
        "id": "approval-gate",
        "label": "Control de aprobación",
        "focus": [
          "verifying",
          "approval",
          "cancelled",
          "ready"
        ],
        "note": "La aprobación pausa la publicación y permite finalizarla de forma controlada."
      },
      {
        "id": "rollback-outcomes",
        "label": "Resultados de la reversión",
        "focus": [
          "ready",
          "rollback",
          "failed",
          "live",
          "paused",
          "rolled_back"
        ],
        "note": "Distingue los fallos previos a publicar de los problemas de salud posteriores."
      }
    ],
    "locale": "es"
  },
  "lanes": [
    {
      "id": "main",
      "label": "Fases del lanzamiento"
    },
    {
      "id": "waiting",
      "label": "Espera de aprobación y salud"
    },
    {
      "id": "recovery",
      "label": "Control de reversión"
    },
    {
      "id": "terminal",
      "label": "Salidas finales"
    }
  ],
  "states": [
    {
      "id": "queued",
      "type": "start",
      "label": "En cola",
      "sublabel": "cambio aceptado",
      "lane": "main",
      "col": 0,
      "step": "01",
      "tag": "pendiente"
    },
    {
      "id": "building",
      "type": "active",
      "label": "Compilando",
      "sublabel": "imagen inmutable",
      "lane": "main",
      "col": 1,
      "step": "02",
      "tag": "en ejecución"
    },
    {
      "id": "verifying",
      "type": "decision",
      "label": "Verificando",
      "sublabel": "pruebas y política",
      "lane": "main",
      "col": 2,
      "step": "03",
      "tag": "control"
    },
    {
      "id": "ready",
      "type": "waiting",
      "label": "Listo",
      "sublabel": "publicación pendiente",
      "lane": "main",
      "col": 3,
      "step": "04",
      "tag": "aprobado"
    },
    {
      "id": "live",
      "type": "success",
      "label": "En producción",
      "sublabel": "producción saludable",
      "lane": "main",
      "col": 4,
      "step": "05",
      "tag": "correcto"
    },
    {
      "id": "approval",
      "type": "waiting",
      "label": "Por aprobar",
      "sublabel": "responsable",
      "lane": "waiting",
      "col": 0,
      "tag": "pausa"
    },
    {
      "id": "rollback",
      "type": "active",
      "label": "Revirtiendo",
      "sublabel": "imagen válida",
      "lane": "recovery",
      "col": 1,
      "tag": "automático"
    },
    {
      "id": "paused",
      "type": "waiting",
      "label": "Salud en revisión",
      "sublabel": "degradación del SLO",
      "lane": "waiting",
      "col": 2,
      "tag": "observar"
    },
    {
      "id": "cancelled",
      "type": "failure",
      "label": "Cancelado",
      "sublabel": "permiso denegado",
      "lane": "terminal",
      "col": 0,
      "tag": "final"
    },
    {
      "id": "failed",
      "type": "failure",
      "label": "Fallido",
      "sublabel": "reversión fallida",
      "lane": "terminal",
      "col": 1,
      "tag": "final"
    },
    {
      "id": "rolled_back",
      "type": "success",
      "label": "Revertido",
      "sublabel": "servicio restaurado",
      "lane": "terminal",
      "col": 2,
      "tag": "final"
    }
  ],
  "transitions": [
    {
      "from": "verifying",
      "to": "approval",
      "variant": "security",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "from": "approval",
      "to": "cancelled",
      "variant": "security",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "from": "ready",
      "to": "rollback",
      "variant": "security",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "from": "rollback",
      "to": "failed",
      "variant": "security",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "from": "live",
      "to": "paused",
      "variant": "dashed",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    },
    {
      "from": "paused",
      "to": "rolled_back",
      "variant": "emphasis",
      "route": "straight",
      "fromSide": "bottom",
      "toSide": "top"
    }
  ],
  "cards": [
    {
      "dot": "cyan",
      "title": "Ruta de publicación",
      "items": [
        "El lanzamiento pasa por cinco fases ordenadas",
        "La verificación y la aprobación son estados distintos",
        "En producción significa que su buen estado está verificado"
      ]
    },
    {
      "dot": "amber",
      "title": "Estados de espera",
      "items": [
        "La aprobación humana permite pausar sin ocupar un procesador",
        "Una degradación de salud pausa la ampliación del despliegue",
        "Cada espera indica el evento necesario para continuar"
      ]
    },
    {
      "dot": "rose",
      "title": "Finales explícitos",
      "items": [
        "La aprobación denegada termina en Cancelado",
        "Un error del controlador de reversión termina en Fallido",
        "Una reversión correcta finaliza con el servicio restaurado"
      ]
    }
  ]
}
