{
    "generated_at": "2026-04-12T17:59:49-06:00",
    "agent": {
        "interval_seconds": 600,
        "state": {
            "version": 1,
            "interval_seconds": 600,
            "last_run_at": "2026-04-12T17:59:49-06:00",
            "last_source": "endpoint",
            "last_status": "ok",
            "last_duration_ms": 7911,
            "last_changes": 0,
            "runs_total": 6701,
            "fixes_total": 4,
            "history": [
                {
                    "at": "2026-04-12T13:11:23-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 206,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T13:21:27-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 185,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T13:31:32-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 5585,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T13:41:38-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 177,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T13:51:45-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 6977,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:01:56-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 182,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:12:10-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 191,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:22:22-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 185,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:32:32-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 182,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:42:42-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 177,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T14:52:49-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 180,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:03:01-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 306,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:13:37-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 200,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:23:57-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 9595,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:34:03-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 6620,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:44:09-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 6286,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T15:54:20-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 9064,
                    "source": "shutdown",
                    "health_score": 75,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:04:21-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 223,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:14:21-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 187,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:24:28-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 176,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:34:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 172,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:44:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 183,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T16:54:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 218,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:04:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 239,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:14:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 170,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:24:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 181,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:34:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 184,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:44:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 203,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:54:29-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 185,
                    "source": "shutdown",
                    "health_score": 90,
                    "issues_total": 26
                },
                {
                    "at": "2026-04-12T17:59:49-06:00",
                    "status": "ok",
                    "changes": 0,
                    "duration_ms": 7911,
                    "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-04-12T17:59:41-06:00",
            "finished_at": "2026-04-12T17:59:49-06:00",
            "source": "endpoint",
            "status": "ok",
            "duration_ms": 7911,
            "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-04-12T17:59:49-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-04-12T17:59:49-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": 142,
                            "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": 132,
                            "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": 279,
                            "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": 174,
                            "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": 348,
                            "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": 209,
                            "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": 193,
                            "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": 168,
                            "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": 176,
                            "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": 287,
                            "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": 236,
                            "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": 256,
                            "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": 251,
                            "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": 189,
                            "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": 2200,
                            "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": 292,
                            "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": 320,
                            "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": 161,
                            "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": 219,
                            "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": 367,
                            "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": 324,
                            "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": 324,
                            "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": 275,
                            "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": 178,
                            "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-04-12.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-04-12T17:59:41-06:00",
                "finished_at": "2026-04-12T17:59:49-06:00",
                "source": "endpoint",
                "status": "ok",
                "duration_ms": 7911,
                "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-04-12T17:59:49-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-04-12T17:59:49-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": 142,
                                "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": 132,
                                "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": 279,
                                "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": 174,
                                "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": 348,
                                "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": 209,
                                "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": 193,
                                "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": 168,
                                "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": 176,
                                "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": 287,
                                "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": 236,
                                "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": 256,
                                "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": 251,
                                "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": 189,
                                "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": 2200,
                                "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": 292,
                                "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": 320,
                                "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": 161,
                                "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": 219,
                                "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": 367,
                                "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": 324,
                                "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": 324,
                                "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": 275,
                                "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": 178,
                                "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-04-12.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-04-12T17:59:49-06:00",
                "last_source": "endpoint",
                "last_status": "ok",
                "last_duration_ms": 7911,
                "last_changes": 0,
                "runs_total": 6701,
                "fixes_total": 4,
                "history": [
                    {
                        "at": "2026-04-12T13:11:23-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 206,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T13:21:27-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 185,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T13:31:32-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 5585,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T13:41:38-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 177,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T13:51:45-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 6977,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:01:56-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 182,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:12:10-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 191,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:22:22-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 185,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:32:32-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 182,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:42:42-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 177,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T14:52:49-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 180,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:03:01-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 306,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:13:37-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 200,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:23:57-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 9595,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:34:03-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 6620,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:44:09-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 6286,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T15:54:20-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 9064,
                        "source": "shutdown",
                        "health_score": 75,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:04:21-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 223,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:14:21-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 187,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:24:28-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 176,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:34:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 172,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:44:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 183,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T16:54:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 218,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:04:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 239,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:14:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 170,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:24:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 181,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:34:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 184,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:44:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 203,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:54:29-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 185,
                        "source": "shutdown",
                        "health_score": 90,
                        "issues_total": 26
                    },
                    {
                        "at": "2026-04-12T17:59:49-06:00",
                        "status": "ok",
                        "changes": 0,
                        "duration_ms": 7911,
                        "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-04-12T17:59:49-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": 142,
                "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": 132,
                "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": 279,
                "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": 174,
                "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": 348,
                "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": 209,
                "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": 193,
                "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": 168,
                "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": 176,
                "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": 287,
                "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": 236,
                "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": 256,
                "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": 251,
                "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": 189,
                "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": 2200,
                "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": 292,
                "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": 320,
                "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": 161,
                "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": 219,
                "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": 367,
                "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": 324,
                "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": 324,
                "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": 275,
                "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": 178,
                "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"
}