{
    "generated_at": "2026-05-01T09:34:45-06:00",
    "agent": {
        "interval_seconds": 600,
        "state": {
            "version": 1,
            "interval_seconds": 600,
            "last_run_at": "2026-05-01T09:34:45-06:00",
            "last_source": "endpoint",
            "last_status": "ok",
            "last_duration_ms": 8696,
            "last_changes": 0,
            "runs_total": 9368,
            "fixes_total": 4,
            "history": [
                {
                    "at": "2026-05-01T04:52:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 202,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:02:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 217,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:12:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 203,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:22:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 216,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:32:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 208,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:42:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 291,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T05:52:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 231,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:02:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 231,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:12:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 204,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:22:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 208,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:32:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 209,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:42:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 206,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T06:52:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 202,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:02:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 203,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:12:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 187,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:22:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 236,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:32:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 295,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:42:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 192,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T07:52:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 208,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:02:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 199,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:12:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 233,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:22:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 206,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:32:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 266,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:42:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 229,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T08:52:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 189,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T09:02:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 196,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T09:12:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 223,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T09:22:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 202,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T09:32:44-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 204,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-05-01T09:34:45-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 8696,
                    "source": "endpoint",
                    "health_score": 75,
                    "issues_total": 26
                }
            ],
            "last_health_score": 75,
            "last_health_grade": "B",
            "last_issue_count": 26
        },
        "latest_report": {
            "started_at": "2026-05-01T09:34:36-06:00",
            "finished_at": "2026-05-01T09:34:45-06:00",
            "source": "endpoint",
            "status": "ok",
            "duration_ms": 8696,
            "changes": 0,
            "issues": [
                {
                    "id": "require_wa",
                    "label": "Variable require_wa no definida",
                    "severity": "low",
                    "count": 26,
                    "sample": "[2] en /home/redaction/public_html/inc_code_wa.php 2: Undefined variable $require_wa",
                    "recommendation": "Usar !empty($require_wa) en lugar de evaluación directa."
                }
            ],
            "actions": [
                {
                    "id": "cache_refresh_admin_cache_start",
                    "status": "skipped",
                    "changed": false,
                    "file": "admin/cache_start.php",
                    "detail": "Sin cambios requeridos."
                },
                {
                    "id": "cache_refresh_portal_cache_start",
                    "status": "skipped",
                    "changed": false,
                    "file": "portal/cache_start.php",
                    "detail": "Sin cambios requeridos."
                },
                {
                    "id": "publisher_news_edit_guard",
                    "status": "skipped",
                    "changed": false,
                    "file": "admin/publisher_news_edit.php",
                    "detail": "Sin cambios requeridos."
                },
                {
                    "id": "inc_news_lists_defaults",
                    "status": "skipped",
                    "changed": false,
                    "file": "admin/inc_news_lists.php",
                    "detail": "Sin cambios requeridos."
                },
                {
                    "id": "inc_code_wa_guard",
                    "status": "skipped",
                    "changed": false,
                    "file": "inc_code_wa.php",
                    "detail": "Sin cambios requeridos."
                }
            ],
            "health": {
                "generated_at": "2026-05-01T09:34:44-06:00",
                "checks": [
                    {
                        "name": "DB",
                        "status": "UP",
                        "detail": "Conexión activa."
                    },
                    {
                        "name": "Logs runtime",
                        "status": "UP",
                        "detail": "/home/redaction/public_html/errors/runtime"
                    },
                    {
                        "name": "Archivo index.php",
                        "status": "UP",
                        "detail": "ok (46 B)"
                    },
                    {
                        "name": "Archivo login.php",
                        "status": "UP",
                        "detail": "ok (174 B)"
                    },
                    {
                        "name": "Archivo register.php",
                        "status": "UP",
                        "detail": "ok (177 B)"
                    },
                    {
                        "name": "Archivo admin/home.php",
                        "status": "UP",
                        "detail": "ok (1.27 KB)"
                    },
                    {
                        "name": "Archivo portal/index.php",
                        "status": "UP",
                        "detail": "ok (6.49 KB)"
                    },
                    {
                        "name": "Archivo portal/news.php",
                        "status": "UP",
                        "detail": "ok (35.47 KB)"
                    },
                    {
                        "name": "Archivo portal/inc_head.php",
                        "status": "UP",
                        "detail": "ok (3.21 KB)"
                    },
                    {
                        "name": "Archivo portal/inc_top.php",
                        "status": "UP",
                        "detail": "ok (620 B)"
                    },
                    {
                        "name": "Archivo status.php",
                        "status": "UP",
                        "detail": "ok (20.00 KB)"
                    },
                    {
                        "name": "Archivo errors.php",
                        "status": "UP",
                        "detail": "ok (28.77 KB)"
                    },
                    {
                        "name": "Archivo agent.php",
                        "status": "UP",
                        "detail": "ok (21.51 KB)"
                    },
                    {
                        "name": "Cobertura /portal/* y /portales/*",
                        "status": "WARN",
                        "detail": "Analizados: 24 de 1434 | UP: 2 | WARN: 22 | DOWN: 0"
                    }
                ],
                "portal_coverage": {
                    "checked_at": "2026-05-01T09:34:44-06:00",
                    "scope": "/portal/* + /portales/* + subdominios",
                    "status": "WARN",
                    "total": 24,
                    "total_available": 1434,
                    "up": 2,
                    "warn": 22,
                    "down": 0,
                    "include_portales_route": true,
                    "items": [
                        {
                            "portal_id": 2814,
                            "portal": "rekinifiti",
                            "subdomain": "rekinifiti",
                            "status": "UP",
                            "detail": "Sin incidencias.",
                            "template_expected": "pais",
                            "template_detected": "pais",
                            "http_subdomain": 200,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 148,
                            "subdomain_url": "https://rekinifiti.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=rekinifiti&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=rekinifiti&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 2,
                            "subdomain_ok": true,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2813,
                            "portal": "edomexhoy.mx",
                            "subdomain": "redomexhoy",
                            "status": "UP",
                            "detail": "Sin incidencias.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 200,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 127,
                            "subdomain_url": "https://redomexhoy.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=redomexhoy&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=redomexhoy&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 2,
                            "subdomain_ok": true,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2812,
                            "portal": "12/24 Noticias",
                            "subdomain": "1224noticias",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 299,
                            "subdomain_url": "https://1224noticias.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=1224noticias&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=1224noticias&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2811,
                            "portal": "Mis Aventuras",
                            "subdomain": "ment3",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 265,
                            "subdomain_url": "https://ment3.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=ment3&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=ment3&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2810,
                            "portal": "Juan",
                            "subdomain": "subdiminio",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 176,
                            "subdomain_url": "https://subdiminio.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=subdiminio&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=subdiminio&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2809,
                            "portal": "Negocios, poder y más.",
                            "subdomain": "negociosypoder",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "times",
                            "template_detected": "times",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 223,
                            "subdomain_url": "https://negociosypoder.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=negociosypoder&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=negociosypoder&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2808,
                            "portal": "Nembutal sodium for sale email: pablu@dr.com",
                            "subdomain": "midiaro",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 426,
                            "subdomain_url": "https://midiaro.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=midiaro&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=midiaro&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2807,
                            "portal": "MI SIEMPRE FELIZ",
                            "subdomain": "midelirio",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 457,
                            "subdomain_url": "https://midelirio.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=midelirio&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=midelirio&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2806,
                            "portal": "ssd chemical solution",
                            "subdomain": "exxonssd",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 227,
                            "subdomain_url": "https://exxonssd.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=exxonssd&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=exxonssd&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2805,
                            "portal": "MIS ANUNCIOS",
                            "subdomain": "misanunciosfg",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 2203,
                            "subdomain_url": "https://misanunciosfg.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=misanunciosfg&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=misanunciosfg&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2804,
                            "portal": "Edelpinfo",
                            "subdomain": "edelpinfo",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 281,
                            "subdomain_url": "https://edelpinfo.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=edelpinfo&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=edelpinfo&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2803,
                            "portal": "El informador",
                            "subdomain": "elinformador",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "times",
                            "template_detected": "times",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 358,
                            "subdomain_url": "https://elinformador.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=elinformador&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=elinformador&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2802,
                            "portal": "Financiamiento para tus proyectos rentables",
                            "subdomain": "financiamiento",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 303,
                            "subdomain_url": "https://financiamiento.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=financiamiento&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=financiamiento&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2801,
                            "portal": "vane",
                            "subdomain": "vaneloka",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 243,
                            "subdomain_url": "https://vaneloka.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=vaneloka&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=vaneloka&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2800,
                            "portal": "Cambio XXI",
                            "subdomain": "cambioxxi",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 245,
                            "subdomain_url": "https://cambioxxi.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=cambioxxi&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=cambioxxi&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2799,
                            "portal": "Vive lago",
                            "subdomain": "anunciolago",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 200,
                            "subdomain_url": "https://anunciolago.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=anunciolago&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=anunciolago&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2798,
                            "portal": "Mi empresa",
                            "subdomain": "vivelago",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 267,
                            "subdomain_url": "https://vivelago.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=vivelago&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=vivelago&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2797,
                            "portal": "Metanoia",
                            "subdomain": "metanoia",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 230,
                            "subdomain_url": "https://metanoia.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=metanoia&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=metanoia&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2796,
                            "portal": "El Manicero",
                            "subdomain": "elmanicero",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 303,
                            "subdomain_url": "https://elmanicero.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=elmanicero&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=elmanicero&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2795,
                            "portal": "ElAcaciero.Com",
                            "subdomain": "elacaciero",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "times",
                            "template_detected": "times",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 281,
                            "subdomain_url": "https://elacaciero.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=elacaciero&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=elacaciero&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2794,
                            "portal": "EL GRAN BAJÍO NETWORK NEWS",
                            "subdomain": "egbnetworknews",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 460,
                            "subdomain_url": "https://egbnetworknews.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=egbnetworknews&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=egbnetworknews&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2793,
                            "portal": "Homhouse",
                            "subdomain": "wwwhomhousecom",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 231,
                            "subdomain_url": "https://wwwhomhousecom.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=wwwhomhousecom&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=wwwhomhousecom&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2792,
                            "portal": "Reusable Caluanie Muelear Oxidize | Fast and Reliable Delivery",
                            "subdomain": "chemicaldepotllc",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 264,
                            "subdomain_url": "https://chemicaldepotllc.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=chemicaldepotllc&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=chemicaldepotllc&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        },
                        {
                            "portal_id": 2791,
                            "portal": "Noticias",
                            "subdomain": "perro24",
                            "status": "WARN",
                            "detail": "Rutas con error: subdomain.",
                            "template_expected": "blue",
                            "template_detected": "blue",
                            "http_subdomain": 0,
                            "http_portal_route": 200,
                            "http_portales_route": 404,
                            "duration_ms": 274,
                            "subdomain_url": "https://perro24.redaction.mx/index?refresh=1",
                            "portal_route_url": "https://redaction.mx/portal/index.php?p=perro24&refresh=1",
                            "portales_route_url": "https://redaction.mx/portales/index.php?p=perro24&refresh=1",
                            "portales_route_enabled": true,
                            "routes_checked": 2,
                            "routes_ok": 1,
                            "subdomain_ok": false,
                            "portal_route_ok": true,
                            "portales_route_ok": false
                        }
                    ],
                    "detail": "Cobertura de subdominios, /portal/index.php y /portales/index.php por portal."
                }
            },
            "logs": {
                "files": {
                    "app": "/home/redaction/public_html/errors/runtime/app-2026-05-01.log",
                    "php": "/home/redaction/public_html/errors/runtime/php-errors.log",
                    "admin_legacy": "/home/redaction/public_html/admin/error_log.txt",
                    "portal_legacy": "/home/redaction/public_html/portal/error_log.txt"
                },
                "line_count": 600
            },
            "summary": {
                "score": 75,
                "grade": "B",
                "status": "WARN",
                "checks": {
                    "up": 13,
                    "warn": 1,
                    "down": 0,
                    "other": 0
                },
                "issues_total": 26,
                "issue_severity": {
                    "high": 0,
                    "medium": 0,
                    "low": 26,
                    "info": 0
                },
                "portal": {
                    "total": 24,
                    "up": 2,
                    "warn": 22,
                    "down": 0
                }
            }
        },
        "run_result": {
            "ok": true,
            "ran": true,
            "report": {
                "started_at": "2026-05-01T09:34:36-06:00",
                "finished_at": "2026-05-01T09:34:45-06:00",
                "source": "endpoint",
                "status": "ok",
                "duration_ms": 8696,
                "changes": 0,
                "issues": [
                    {
                        "id": "require_wa",
                        "label": "Variable require_wa no definida",
                        "severity": "low",
                        "count": 26,
                        "sample": "[2] en /home/redaction/public_html/inc_code_wa.php 2: Undefined variable $require_wa",
                        "recommendation": "Usar !empty($require_wa) en lugar de evaluación directa."
                    }
                ],
                "actions": [
                    {
                        "id": "cache_refresh_admin_cache_start",
                        "status": "skipped",
                        "changed": false,
                        "file": "admin/cache_start.php",
                        "detail": "Sin cambios requeridos."
                    },
                    {
                        "id": "cache_refresh_portal_cache_start",
                        "status": "skipped",
                        "changed": false,
                        "file": "portal/cache_start.php",
                        "detail": "Sin cambios requeridos."
                    },
                    {
                        "id": "publisher_news_edit_guard",
                        "status": "skipped",
                        "changed": false,
                        "file": "admin/publisher_news_edit.php",
                        "detail": "Sin cambios requeridos."
                    },
                    {
                        "id": "inc_news_lists_defaults",
                        "status": "skipped",
                        "changed": false,
                        "file": "admin/inc_news_lists.php",
                        "detail": "Sin cambios requeridos."
                    },
                    {
                        "id": "inc_code_wa_guard",
                        "status": "skipped",
                        "changed": false,
                        "file": "inc_code_wa.php",
                        "detail": "Sin cambios requeridos."
                    }
                ],
                "health": {
                    "generated_at": "2026-05-01T09:34:44-06:00",
                    "checks": [
                        {
                            "name": "DB",
                            "status": "UP",
                            "detail": "Conexión activa."
                        },
                        {
                            "name": "Logs runtime",
                            "status": "UP",
                            "detail": "/home/redaction/public_html/errors/runtime"
                        },
                        {
                            "name": "Archivo index.php",
                            "status": "UP",
                            "detail": "ok (46 B)"
                        },
                        {
                            "name": "Archivo login.php",
                            "status": "UP",
                            "detail": "ok (174 B)"
                        },
                        {
                            "name": "Archivo register.php",
                            "status": "UP",
                            "detail": "ok (177 B)"
                        },
                        {
                            "name": "Archivo admin/home.php",
                            "status": "UP",
                            "detail": "ok (1.27 KB)"
                        },
                        {
                            "name": "Archivo portal/index.php",
                            "status": "UP",
                            "detail": "ok (6.49 KB)"
                        },
                        {
                            "name": "Archivo portal/news.php",
                            "status": "UP",
                            "detail": "ok (35.47 KB)"
                        },
                        {
                            "name": "Archivo portal/inc_head.php",
                            "status": "UP",
                            "detail": "ok (3.21 KB)"
                        },
                        {
                            "name": "Archivo portal/inc_top.php",
                            "status": "UP",
                            "detail": "ok (620 B)"
                        },
                        {
                            "name": "Archivo status.php",
                            "status": "UP",
                            "detail": "ok (20.00 KB)"
                        },
                        {
                            "name": "Archivo errors.php",
                            "status": "UP",
                            "detail": "ok (28.77 KB)"
                        },
                        {
                            "name": "Archivo agent.php",
                            "status": "UP",
                            "detail": "ok (21.51 KB)"
                        },
                        {
                            "name": "Cobertura /portal/* y /portales/*",
                            "status": "WARN",
                            "detail": "Analizados: 24 de 1434 | UP: 2 | WARN: 22 | DOWN: 0"
                        }
                    ],
                    "portal_coverage": {
                        "checked_at": "2026-05-01T09:34:44-06:00",
                        "scope": "/portal/* + /portales/* + subdominios",
                        "status": "WARN",
                        "total": 24,
                        "total_available": 1434,
                        "up": 2,
                        "warn": 22,
                        "down": 0,
                        "include_portales_route": true,
                        "items": [
                            {
                                "portal_id": 2814,
                                "portal": "rekinifiti",
                                "subdomain": "rekinifiti",
                                "status": "UP",
                                "detail": "Sin incidencias.",
                                "template_expected": "pais",
                                "template_detected": "pais",
                                "http_subdomain": 200,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 148,
                                "subdomain_url": "https://rekinifiti.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=rekinifiti&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=rekinifiti&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 2,
                                "subdomain_ok": true,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2813,
                                "portal": "edomexhoy.mx",
                                "subdomain": "redomexhoy",
                                "status": "UP",
                                "detail": "Sin incidencias.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 200,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 127,
                                "subdomain_url": "https://redomexhoy.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=redomexhoy&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=redomexhoy&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 2,
                                "subdomain_ok": true,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2812,
                                "portal": "12/24 Noticias",
                                "subdomain": "1224noticias",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 299,
                                "subdomain_url": "https://1224noticias.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=1224noticias&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=1224noticias&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2811,
                                "portal": "Mis Aventuras",
                                "subdomain": "ment3",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 265,
                                "subdomain_url": "https://ment3.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=ment3&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=ment3&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2810,
                                "portal": "Juan",
                                "subdomain": "subdiminio",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 176,
                                "subdomain_url": "https://subdiminio.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=subdiminio&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=subdiminio&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2809,
                                "portal": "Negocios, poder y más.",
                                "subdomain": "negociosypoder",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "times",
                                "template_detected": "times",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 223,
                                "subdomain_url": "https://negociosypoder.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=negociosypoder&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=negociosypoder&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2808,
                                "portal": "Nembutal sodium for sale email: pablu@dr.com",
                                "subdomain": "midiaro",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 426,
                                "subdomain_url": "https://midiaro.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=midiaro&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=midiaro&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2807,
                                "portal": "MI SIEMPRE FELIZ",
                                "subdomain": "midelirio",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 457,
                                "subdomain_url": "https://midelirio.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=midelirio&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=midelirio&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2806,
                                "portal": "ssd chemical solution",
                                "subdomain": "exxonssd",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 227,
                                "subdomain_url": "https://exxonssd.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=exxonssd&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=exxonssd&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2805,
                                "portal": "MIS ANUNCIOS",
                                "subdomain": "misanunciosfg",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 2203,
                                "subdomain_url": "https://misanunciosfg.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=misanunciosfg&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=misanunciosfg&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2804,
                                "portal": "Edelpinfo",
                                "subdomain": "edelpinfo",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 281,
                                "subdomain_url": "https://edelpinfo.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=edelpinfo&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=edelpinfo&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2803,
                                "portal": "El informador",
                                "subdomain": "elinformador",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "times",
                                "template_detected": "times",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 358,
                                "subdomain_url": "https://elinformador.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=elinformador&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=elinformador&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2802,
                                "portal": "Financiamiento para tus proyectos rentables",
                                "subdomain": "financiamiento",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 303,
                                "subdomain_url": "https://financiamiento.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=financiamiento&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=financiamiento&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2801,
                                "portal": "vane",
                                "subdomain": "vaneloka",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 243,
                                "subdomain_url": "https://vaneloka.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=vaneloka&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=vaneloka&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2800,
                                "portal": "Cambio XXI",
                                "subdomain": "cambioxxi",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 245,
                                "subdomain_url": "https://cambioxxi.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=cambioxxi&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=cambioxxi&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2799,
                                "portal": "Vive lago",
                                "subdomain": "anunciolago",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 200,
                                "subdomain_url": "https://anunciolago.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=anunciolago&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=anunciolago&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2798,
                                "portal": "Mi empresa",
                                "subdomain": "vivelago",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 267,
                                "subdomain_url": "https://vivelago.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=vivelago&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=vivelago&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2797,
                                "portal": "Metanoia",
                                "subdomain": "metanoia",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 230,
                                "subdomain_url": "https://metanoia.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=metanoia&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=metanoia&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2796,
                                "portal": "El Manicero",
                                "subdomain": "elmanicero",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 303,
                                "subdomain_url": "https://elmanicero.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=elmanicero&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=elmanicero&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2795,
                                "portal": "ElAcaciero.Com",
                                "subdomain": "elacaciero",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "times",
                                "template_detected": "times",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 281,
                                "subdomain_url": "https://elacaciero.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=elacaciero&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=elacaciero&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2794,
                                "portal": "EL GRAN BAJÍO NETWORK NEWS",
                                "subdomain": "egbnetworknews",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 460,
                                "subdomain_url": "https://egbnetworknews.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=egbnetworknews&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=egbnetworknews&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2793,
                                "portal": "Homhouse",
                                "subdomain": "wwwhomhousecom",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 231,
                                "subdomain_url": "https://wwwhomhousecom.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=wwwhomhousecom&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=wwwhomhousecom&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2792,
                                "portal": "Reusable Caluanie Muelear Oxidize | Fast and Reliable Delivery",
                                "subdomain": "chemicaldepotllc",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 264,
                                "subdomain_url": "https://chemicaldepotllc.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=chemicaldepotllc&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=chemicaldepotllc&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            },
                            {
                                "portal_id": 2791,
                                "portal": "Noticias",
                                "subdomain": "perro24",
                                "status": "WARN",
                                "detail": "Rutas con error: subdomain.",
                                "template_expected": "blue",
                                "template_detected": "blue",
                                "http_subdomain": 0,
                                "http_portal_route": 200,
                                "http_portales_route": 404,
                                "duration_ms": 274,
                                "subdomain_url": "https://perro24.redaction.mx/index?refresh=1",
                                "portal_route_url": "https://redaction.mx/portal/index.php?p=perro24&refresh=1",
                                "portales_route_url": "https://redaction.mx/portales/index.php?p=perro24&refresh=1",
                                "portales_route_enabled": true,
                                "routes_checked": 2,
                                "routes_ok": 1,
                                "subdomain_ok": false,
                                "portal_route_ok": true,
                                "portales_route_ok": false
                            }
                        ],
                        "detail": "Cobertura de subdominios, /portal/index.php y /portales/index.php por portal."
                    }
                },
                "logs": {
                    "files": {
                        "app": "/home/redaction/public_html/errors/runtime/app-2026-05-01.log",
                        "php": "/home/redaction/public_html/errors/runtime/php-errors.log",
                        "admin_legacy": "/home/redaction/public_html/admin/error_log.txt",
                        "portal_legacy": "/home/redaction/public_html/portal/error_log.txt"
                    },
                    "line_count": 600
                },
                "summary": {
                    "score": 75,
                    "grade": "B",
                    "status": "WARN",
                    "checks": {
                        "up": 13,
                        "warn": 1,
                        "down": 0,
                        "other": 0
                    },
                    "issues_total": 26,
                    "issue_severity": {
                        "high": 0,
                        "medium": 0,
                        "low": 26,
                        "info": 0
                    },
                    "portal": {
                        "total": 24,
                        "up": 2,
                        "warn": 22,
                        "down": 0
                    }
                }
            },
            "state": {
                "version": 1,
                "interval_seconds": 600,
                "last_run_at": "2026-05-01T09:34:45-06:00",
                "last_source": "endpoint",
                "last_status": "ok",
                "last_duration_ms": 8696,
                "last_changes": 0,
                "runs_total": 9368,
                "fixes_total": 4,
                "history": [
                    {
                        "at": "2026-05-01T04:52:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 202,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:02:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 217,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:12:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 203,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:22:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 216,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:32:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 208,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:42:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 291,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T05:52:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 231,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:02:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 231,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:12:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 204,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:22:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 208,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:32:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 209,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:42:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 206,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T06:52:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 202,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:02:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 203,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:12:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 187,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:22:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 236,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:32:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 295,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:42:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 192,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T07:52:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 208,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:02:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 199,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:12:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 233,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:22:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 206,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:32:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 266,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:42:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 229,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T08:52:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 189,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T09:02:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 196,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T09:12:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 223,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T09:22:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 202,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T09:32:44-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 204,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-05-01T09:34:45-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 8696,
                        "source": "endpoint",
                        "health_score": 75,
                        "issues_total": 26
                    }
                ],
                "last_health_score": 75,
                "last_health_grade": "B",
                "last_issue_count": 26
            }
        }
    },
    "portal_coverage": {
        "checked_at": "2026-05-01T09:34:44-06:00",
        "scope": "/portal/* + /portales/* + subdominios",
        "status": "WARN",
        "total": 24,
        "total_available": 1434,
        "up": 2,
        "warn": 22,
        "down": 0,
        "include_portales_route": true,
        "items": [
            {
                "portal_id": 2814,
                "portal": "rekinifiti",
                "subdomain": "rekinifiti",
                "status": "UP",
                "detail": "Sin incidencias.",
                "template_expected": "pais",
                "template_detected": "pais",
                "http_subdomain": 200,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 148,
                "subdomain_url": "https://rekinifiti.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=rekinifiti&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=rekinifiti&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 2,
                "subdomain_ok": true,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2813,
                "portal": "edomexhoy.mx",
                "subdomain": "redomexhoy",
                "status": "UP",
                "detail": "Sin incidencias.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 200,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 127,
                "subdomain_url": "https://redomexhoy.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=redomexhoy&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=redomexhoy&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 2,
                "subdomain_ok": true,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2812,
                "portal": "12/24 Noticias",
                "subdomain": "1224noticias",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 299,
                "subdomain_url": "https://1224noticias.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=1224noticias&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=1224noticias&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2811,
                "portal": "Mis Aventuras",
                "subdomain": "ment3",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 265,
                "subdomain_url": "https://ment3.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=ment3&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=ment3&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2810,
                "portal": "Juan",
                "subdomain": "subdiminio",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 176,
                "subdomain_url": "https://subdiminio.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=subdiminio&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=subdiminio&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2809,
                "portal": "Negocios, poder y más.",
                "subdomain": "negociosypoder",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "times",
                "template_detected": "times",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 223,
                "subdomain_url": "https://negociosypoder.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=negociosypoder&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=negociosypoder&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2808,
                "portal": "Nembutal sodium for sale email: pablu@dr.com",
                "subdomain": "midiaro",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 426,
                "subdomain_url": "https://midiaro.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=midiaro&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=midiaro&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2807,
                "portal": "MI SIEMPRE FELIZ",
                "subdomain": "midelirio",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 457,
                "subdomain_url": "https://midelirio.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=midelirio&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=midelirio&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2806,
                "portal": "ssd chemical solution",
                "subdomain": "exxonssd",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 227,
                "subdomain_url": "https://exxonssd.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=exxonssd&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=exxonssd&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2805,
                "portal": "MIS ANUNCIOS",
                "subdomain": "misanunciosfg",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 2203,
                "subdomain_url": "https://misanunciosfg.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=misanunciosfg&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=misanunciosfg&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2804,
                "portal": "Edelpinfo",
                "subdomain": "edelpinfo",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 281,
                "subdomain_url": "https://edelpinfo.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=edelpinfo&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=edelpinfo&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2803,
                "portal": "El informador",
                "subdomain": "elinformador",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "times",
                "template_detected": "times",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 358,
                "subdomain_url": "https://elinformador.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=elinformador&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=elinformador&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2802,
                "portal": "Financiamiento para tus proyectos rentables",
                "subdomain": "financiamiento",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 303,
                "subdomain_url": "https://financiamiento.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=financiamiento&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=financiamiento&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2801,
                "portal": "vane",
                "subdomain": "vaneloka",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 243,
                "subdomain_url": "https://vaneloka.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=vaneloka&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=vaneloka&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2800,
                "portal": "Cambio XXI",
                "subdomain": "cambioxxi",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 245,
                "subdomain_url": "https://cambioxxi.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=cambioxxi&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=cambioxxi&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2799,
                "portal": "Vive lago",
                "subdomain": "anunciolago",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 200,
                "subdomain_url": "https://anunciolago.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=anunciolago&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=anunciolago&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2798,
                "portal": "Mi empresa",
                "subdomain": "vivelago",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 267,
                "subdomain_url": "https://vivelago.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=vivelago&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=vivelago&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2797,
                "portal": "Metanoia",
                "subdomain": "metanoia",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 230,
                "subdomain_url": "https://metanoia.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=metanoia&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=metanoia&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2796,
                "portal": "El Manicero",
                "subdomain": "elmanicero",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 303,
                "subdomain_url": "https://elmanicero.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=elmanicero&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=elmanicero&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2795,
                "portal": "ElAcaciero.Com",
                "subdomain": "elacaciero",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "times",
                "template_detected": "times",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 281,
                "subdomain_url": "https://elacaciero.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=elacaciero&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=elacaciero&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2794,
                "portal": "EL GRAN BAJÍO NETWORK NEWS",
                "subdomain": "egbnetworknews",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 460,
                "subdomain_url": "https://egbnetworknews.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=egbnetworknews&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=egbnetworknews&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2793,
                "portal": "Homhouse",
                "subdomain": "wwwhomhousecom",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 231,
                "subdomain_url": "https://wwwhomhousecom.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=wwwhomhousecom&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=wwwhomhousecom&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2792,
                "portal": "Reusable Caluanie Muelear Oxidize | Fast and Reliable Delivery",
                "subdomain": "chemicaldepotllc",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 264,
                "subdomain_url": "https://chemicaldepotllc.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=chemicaldepotllc&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=chemicaldepotllc&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            },
            {
                "portal_id": 2791,
                "portal": "Noticias",
                "subdomain": "perro24",
                "status": "WARN",
                "detail": "Rutas con error: subdomain.",
                "template_expected": "blue",
                "template_detected": "blue",
                "http_subdomain": 0,
                "http_portal_route": 200,
                "http_portales_route": 404,
                "duration_ms": 274,
                "subdomain_url": "https://perro24.redaction.mx/index?refresh=1",
                "portal_route_url": "https://redaction.mx/portal/index.php?p=perro24&refresh=1",
                "portales_route_url": "https://redaction.mx/portales/index.php?p=perro24&refresh=1",
                "portales_route_enabled": true,
                "routes_checked": 2,
                "routes_ok": 1,
                "subdomain_ok": false,
                "portal_route_ok": true,
                "portales_route_ok": false
            }
        ],
        "detail": "Cobertura de subdominios, /portal/index.php y /portales/index.php por portal."
    },
    "portal_limit": 24,
    "portal_filter": "",
    "portal_scan_source": "report"
}