{
  "version": 21,
  "variables": [],
  "tiles": {
    "0": {
      "type": "markdown",
      "content": "# SQM — Observabilidad Integral del Salar de Atacama\n### Produccion de Litio | Exportacion | Compliance Ambiental | Seguridad"
    },
    "1": {
      "title": "Operaciones Totales Salar",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "2": {
      "title": "Lotes y Embarques Procesados",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| summarize procesos = countDistinct(trace_id)",
      "visualization": "singleValue"
    },
    "3": {
      "title": "Valor Transaccional (USD)",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| summarize revenue = sum(json.transactionValue)",
      "visualization": "singleValue"
    },
    "4": {
      "title": "Planta Litio — Lotes en Proceso",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Produccion\"\n| filter event.kind == \"BIZ_EVENT\"\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "5": {
      "title": "Comercio Exterior — Embarques",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Suministro\"\n| filter event.kind == \"BIZ_EVENT\"\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "6": {
      "title": "Medio Ambiente — Reportes SMA",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Ambiental\"\n| filter event.kind == \"BIZ_EVENT\"\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "7": {
      "type": "markdown",
      "content": "---\n## Operacion del Salar — Vista Ejecutiva"
    },
    "8": {
      "title": "Distribucion Operacional por Area",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| summarize total = count(), by:{area}",
      "visualization": "pieChart"
    },
    "9": {
      "title": "Actividad del Salar en Tiempo Real",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| makeTimeseries count(), by:{area}, interval:5m",
      "visualization": "lineChart"
    },
    "10": {
      "type": "markdown",
      "content": "---\n## Valor Economico — Impacto de Negocio por Area\n\n| Area | Valor por Operacion | Riesgo si Falla 1 Hora | Riesgo si Falla 1 Mes |\n|------|--------------------|-----------------------|----------------------|\n| **Planta Litio** | $500.000 USD/lote | $2.000.000 USD | $60.000.000 USD |\n| **Exportacion** | $1.200.000 USD/contenedor | $5.000 USD demurrage/dia | $10.000.000 USD ordenes bloqueadas |\n| **Medio Ambiente** | $5.000.000 USD multa SMA | Fiscalizacion inmediata | Paralizacion: $200.000.000 USD/mes |"
    },
    "11": {
      "title": "Revenue por Area de Negocio",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| summarize revenue = sum(json.transactionValue), by:{area}",
      "visualization": "pieChart"
    },
    "12": {
      "title": "Valor Transaccional en el Tiempo",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| makeTimeseries sum(json.transactionValue), by:{area}, interval:5m",
      "visualization": "areaChart"
    },
    "13": {
      "title": "Cuadro de Mando por Area",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| summarize ValorTotal = sum(json.transactionValue), ValorOrdenes = sum(json.orderTotal), Operaciones = count(), ValorPromedio = avg(json.transactionValue), by:{area}\n| sort ValorTotal desc",
      "visualization": "table"
    },
    "14": {
      "type": "markdown",
      "content": "---\n## Planta de Litio — Proceso Productivo Salar de Atacama\n\n**Piscinas Evaporacion** → **Control Calidad Salmuera** → **Carbonatacion Li2CO3** → **Filtrado y Secado** → **Certificacion Battery-Grade** → **Despacho Puerto Antofagasta**"
    },
    "15": {
      "title": "Etapas del Proceso de Litio",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Produccion\"\n| filter event.kind == \"BIZ_EVENT\"\n| fieldsAdd etapa = if(event.type == \"monitoreopiscinavaporacionservice\", \"1. Piscinas Evaporacion\", else: if(event.type == \"controlcalidadsalmueraservice\", \"2. Control Salmuera\", else: if(event.type == \"procesocarbonatacionservice\", \"3. Carbonatacion Li2CO3\", else: if(event.type == \"filtradosecadoservice\", \"4. Filtrado y Secado\", else: if(event.type == \"controlcalidadproductofinalservice\", \"5. Certificacion BG\", else: if(event.type == \"despachopuertoantofagastaservice\", \"6. Despacho Puerto\", else: event.type))))))\n| summarize total = count(), by:{etapa}\n| sort etapa asc",
      "visualization": "barChart"
    },
    "16": {
      "type": "markdown",
      "content": "## Cadena de Exportacion — Comercio Exterior\n\n**Orden de Compra** → **Verificacion Stock** → **Validacion Credito** → **Logistica Salar-Puerto** → **Despacho Contenedor** → **Documentacion DUS/BL**"
    },
    "17": {
      "title": "Etapas de Exportacion",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Suministro\"\n| filter event.kind == \"BIZ_EVENT\"\n| fieldsAdd etapa = if(event.type == \"recepcionordencompraservice\", \"1. Orden de Compra\", else: if(event.type == \"verificacionstockdisponibleservice\", \"2. Verificacion Stock\", else: if(event.type == \"validacioncreditoclienteservice\", \"3. Validacion Credito\", else: if(event.type == \"programacionlogisticaservice\", \"4. Logistica Salar-Puerto\", else: if(event.type == \"despachocontenedorpuertoservice\", \"5. Despacho Contenedor\", else: if(event.type == \"documentacionexportacionservice\", \"6. DUS y Bill of Lading\", else: event.type))))))\n| summarize total = count(), by:{etapa}\n| sort etapa asc",
      "visualization": "barChart"
    },
    "18": {
      "type": "markdown",
      "content": "## Compliance Ambiental — Monitoreo Salar y Reporte SMA\n\n**Sensores Hidrologicos** → **Validacion Niveles RCA** → **Evaluacion Impacto** → **Reporte Mensual SMA** → **Envio SNIFA** → **Registro Cumplimiento**"
    },
    "19": {
      "title": "Etapas de Monitoreo Ambiental",
      "type": "data",
      "query": "fetch bizevents\n| filter event.provider == \"SQM-Ambiental\"\n| filter event.kind == \"BIZ_EVENT\"\n| fieldsAdd etapa = if(event.type == \"capturadatossensoressalarservice\", \"1. Sensores Salar\", else: if(event.type == \"validacionniveleshdricosservice\", \"2. Validacion Niveles RCA\", else: if(event.type == \"analisisimpactoambientalservice\", \"3. Evaluacion Impacto\", else: if(event.type == \"generacionreportesmaservice\", \"4. Reporte SMA\", else: if(event.type == \"enviosuperintendenciamedioambienteservice\", \"5. Envio SNIFA\", else: if(event.type == \"confirmacioncumplimientoambientalservice\", \"6. Registro Cumplimiento\", else: event.type))))))\n| summarize total = count(), by:{etapa}\n| sort etapa asc",
      "visualization": "barChart"
    },
    "20": {
      "type": "markdown",
      "content": "---\n## Seguridad — Vulnerabilidades y Superficie de Ataque"
    },
    "21": {
      "title": "Vulnerabilidades Detectadas",
      "type": "data",
      "query": "fetch security.events\n| filter event.type == \"VULNERABILITY_FINDING\"\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "22e": {
      "title": "Total Eventos de Seguridad",
      "type": "data",
      "query": "fetch security.events\n| summarize total = count()",
      "visualization": "singleValue"
    },
    "22": {
      "title": "Vulnerabilidades por Severidad (CRITICAL / HIGH / MEDIUM)",
      "type": "data",
      "query": "fetch security.events\n| filter event.type == \"VULNERABILITY_FINDING\"\n| summarize total = count(), by:{event.level}\n| sort total desc",
      "visualization": "barChart"
    },
    "22b": {
      "title": "Actividad de Seguridad en el Tiempo",
      "type": "data",
      "query": "fetch security.events\n| makeTimeseries count(), by:{event.type}, interval:30m",
      "visualization": "lineChart"
    },
    "22c": {
      "title": "Componentes Vulnerables Detectados",
      "type": "data",
      "query": "fetch security.events\n| filter event.type == \"VULNERABILITY_FINDING\"\n| fields timestamp, Severidad=event.level, Vulnerabilidad=event.name\n| sort timestamp desc\n| limit 20",
      "visualization": "table"
    },
    "22d": {
      "type": "markdown",
      "content": "### Vulnerabilidades Criticas Detectadas por OneAgent\n\n| Severidad | Componente | CVE | Riesgo |\n|-----------|-----------|-----|--------|\n| **CRITICAL** | protobufjs 8.0.0 | DTV-2026-JS-0001411 | Ejecucion arbitraria de codigo — un atacante puede ejecutar comandos en el servidor |\n| **HIGH** | protobufjs 8.0.0 | DTV-2026-JS-0001742 | Ejecucion arbitraria de codigo en serializacion |\n| **HIGH** | protobufjs 8.0.0 | DTV-2026-JS-0001748 | Denegacion de servicio por expansion no acotada |\n| **HIGH** | protobufjs 8.0.0 | DTV-2026-JS-0002554 | Contaminacion de prototipo (prototype pollution) |\n| **HIGH** | ws 8.20.1 | DTV-2026-JS-0002538 | Denegacion de servicio por fragmentos de memoria |\n| **HIGH** | protobufjs 8.0.0 | DTV-2026-JS-0001740 | Denegacion de servicio por recursion no acotada |\n| **MEDIUM** | @opentelemetry/core 2.5.1 | DTV-2026-JS-0002561 | Asignacion de memoria no acotada en W3C Baggage |\n| **MEDIUM** | uuid 9.0.1 | DTV-2026-JS-0001492 | Generacion predecible de identificadores |\n\n**Proceso afectado:** `server.js (business-observability-engine)` — este proceso gestiona TODOS los servicios de produccion, exportacion y monitoreo ambiental."
    },
    "23": {
      "type": "markdown",
      "content": "### Superficie de Ataque por Area de Negocio\n\n| Area | Servicios Criticos | Tipo de Riesgo | Impacto si Comprometen |\n|------|-------------------|----------------|------------------------|\n| **Planta Litio** | SCADA carbonatacion, sensores IoT piscinas, control calidad | Manipulacion proceso productivo, sabotaje industrial | Lote contaminado $500K USD, danio equipos $2M USD |\n| **Exportacion** | Portal B2B clientes, ERP SAP, sistema aduanero | Robo datos clientes (Tesla, BYD), precios, contratos | Espionaje industrial, litio es recurso estrategico nacional |\n| **Medio Ambiente** | 847 sensores salar, plataforma SNIFA, reportes SMA | Manipulacion datos compliance, falso cumplimiento | Multa $5M USD, paralizacion, dano reputacional irreversible |\n| **Infraestructura** | Red OT/IT, conectividad satelital, VPN planta | Ransomware, acceso no autorizado red SCADA | Paralizacion total: $200M USD/mes |"
    },
    "24": {
      "title": "Vulnerabilidades Detectadas en Componentes de Software",
      "type": "data",
      "query": "fetch security.events\n| filter event.type == \"VULNERABILITY_FINDING\"\n| fields CVE=vulnerability.references.cve, Componente=component.name, Version=component.version, Severidad=dt.security.risk.level, Descripcion=event.description\n| sort Severidad asc\n| limit 20",
      "visualization": "table"
    },
    "24b": {
      "title": "Componentes Vulnerables por Severidad",
      "type": "data",
      "query": "fetch security.events\n| filter event.type == \"VULNERABILITY_FINDING\"\n| summarize Vulnerabilidades = count(), by:{component.name, component.version, dt.security.risk.level}\n| sort dt.security.risk.level asc, Vulnerabilidades desc",
      "visualization": "table"
    },
    "25": {
      "type": "markdown",
      "content": "---\n## Infraestructura — Recursos Computacionales"
    },
    "26": {
      "title": "Uso de CPU — Servidores del Salar",
      "type": "data",
      "query": "timeseries cpu = avg(dt.host.cpu.usage), by:{dt.entity.host}\n| limit 5",
      "visualization": "lineChart"
    },
    "27": {
      "title": "Uso de Memoria — Servidores del Salar",
      "type": "data",
      "query": "timeseries mem = avg(dt.host.memory.usage), by:{dt.entity.host}\n| limit 5",
      "visualization": "lineChart"
    },
    "28": {
      "title": "Volumen Operacional Total del Salar",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| makeTimeseries count(), interval:5m",
      "visualization": "areaChart"
    },
    "29": {
      "type": "markdown",
      "content": "---\n## Trazabilidad Operacional"
    },
    "30": {
      "title": "Ultimas 30 Operaciones del Salar",
      "type": "data",
      "query": "fetch bizevents\n| filter event.kind == \"BIZ_EVENT\"\n| filter event.provider == \"SQM-Produccion\" or event.provider == \"SQM-Suministro\" or event.provider == \"SQM-Ambiental\"\n| fieldsAdd area = if(event.provider == \"SQM-Produccion\", \"Planta Litio\", else: if(event.provider == \"SQM-Suministro\", \"Exportacion\", else: \"Medio Ambiente\"))\n| fields timestamp, Area=area, Operacion=event.type, Valor=json.transactionValue, TraceId=trace_id\n| sort timestamp desc\n| limit 30",
      "visualization": "table"
    },
    "31": {
      "type": "markdown",
      "content": "## Pregunta Clave para SQM\n\n> *Si el sistema SCADA de carbonatacion pierde comunicacion durante 1 hora, cuantos lotes de $500.000 USD se pierden?*\n>\n> *Si la plataforma SNIFA esta caida el dia del reporte mensual, cuanto cuesta la multa de la SMA?*\n>\n> *Si un atacante compromete el portal B2B, que datos de Tesla y BYD quedan expuestos?*\n>\n> **Con Dynatrace, SQM tiene la respuesta en 30 segundos.**\n\n---\n*Dashboard generado por Transafety Ltda. para SQM | Dynatrace Business Observability*"
    }
  },
  "layouts": {
    "0":  {"x": 0,  "y": 0,  "w": 24, "h": 3},
    "1":  {"x": 0,  "y": 3,  "w": 8,  "h": 4},
    "2":  {"x": 8,  "y": 3,  "w": 8,  "h": 4},
    "3":  {"x": 16, "y": 3,  "w": 8,  "h": 4},
    "4":  {"x": 0,  "y": 7,  "w": 8,  "h": 4},
    "5":  {"x": 8,  "y": 7,  "w": 8,  "h": 4},
    "6":  {"x": 16, "y": 7,  "w": 8,  "h": 4},
    "7":  {"x": 0,  "y": 11, "w": 24, "h": 2},
    "8":  {"x": 0,  "y": 13, "w": 12, "h": 8},
    "9":  {"x": 12, "y": 13, "w": 12, "h": 8},
    "10": {"x": 0,  "y": 21, "w": 24, "h": 8},
    "11": {"x": 0,  "y": 29, "w": 12, "h": 8},
    "12": {"x": 12, "y": 29, "w": 12, "h": 8},
    "13": {"x": 0,  "y": 37, "w": 24, "h": 8},
    "14": {"x": 0,  "y": 45, "w": 24, "h": 4},
    "15": {"x": 0,  "y": 49, "w": 24, "h": 8},
    "16": {"x": 0,  "y": 57, "w": 24, "h": 4},
    "17": {"x": 0,  "y": 61, "w": 24, "h": 8},
    "18": {"x": 0,  "y": 69, "w": 24, "h": 4},
    "19": {"x": 0,  "y": 73, "w": 24, "h": 8},
    "20": {"x": 0,  "y": 81, "w": 24, "h": 2},
    "21": {"x": 0,  "y": 83, "w": 12, "h": 4},
    "22e": {"x": 12, "y": 83, "w": 12, "h": 4},
    "22": {"x": 0,  "y": 87, "w": 12, "h": 8},
    "22b": {"x": 12, "y": 87, "w": 12, "h": 8},
    "22c": {"x": 0,  "y": 95, "w": 12, "h": 8},
    "22d": {"x": 12, "y": 95, "w": 12, "h": 8},
    "23": {"x": 0,  "y": 103, "w": 24, "h": 10},
    "24": {"x": 0,  "y": 113, "w": 24, "h": 8},
    "24b": {"x": 0, "y": 121, "w": 24, "h": 8},
    "25": {"x": 0,  "y": 129, "w": 24, "h": 2},
    "26": {"x": 0,  "y": 131, "w": 12, "h": 7},
    "27": {"x": 12, "y": 131, "w": 12, "h": 7},
    "28": {"x": 0,  "y": 138, "w": 24, "h": 7},
    "29": {"x": 0,  "y": 145, "w": 24, "h": 2},
    "30": {"x": 0,  "y": 147, "w": 12, "h": 10},
    "31": {"x": 12, "y": 147, "w": 12, "h": 10}
  }
}
