@extends('layouts.main') @section('title', 'Executive Dashboard') @section('breadcrumb')

Executive Dashboard

@endsection @inject('splunk_searches', '\App\Models\SplunkSearches') @php $dashboard = 'Executive Dashboard'; $wGlobal = $splunk_searches::getIdByName('Global Organizational Condition', $dashboard); $wThreat = $splunk_searches::getIdByName('Strategic Threat Pressure', $dashboard); $wExposure = $splunk_searches::getIdByName('Critical Exposure', $dashboard); $wResilience = $splunk_searches::getIdByName('Organizational Resilience', $dashboard); $wWorkflow = $splunk_searches::getIdByName('Executive Workflow Health', $dashboard); $wRiskDrivers = $splunk_searches::getIdByName('Strategic Risk Drivers', $dashboard); $wExecExposure= $splunk_searches::getIdByName('Executive Exposure', $dashboard); $wResTrend = $splunk_searches::getIdByName('Organizational Resilience Trend', $dashboard); $wOpExec = $splunk_searches::getIdByName('Operational Execution', $dashboard); $wCyberTrend = $splunk_searches::getIdByName('Cybersecurity Trend', $dashboard); $wTechStab = $splunk_searches::getIdByName('Technology Stability', $dashboard); $tooltips = [ 'Global Organizational Condition' => 'Overall protection status. Combines threat pressure, technology resilience, open critical risk, critical notable events, and response execution into one 0–100 score. Higher is worse; color shows the condition band.', 'Strategic Threat Pressure' => 'Is attack pressure increasing? Combines growth in distinct attacker-to-target relationships (last 30 days vs the prior 30), open critical/high notable events, and blocked-attack volume trend. 0–100, higher is worse.', 'Critical Exposure' => 'Unique critical/high vulnerabilities exposed across external and internal assets in the last 30 days, deduplicated. Color reflects the exposure severity score, weighting external exposure and business impact.', 'Organizational Resilience' => 'Can operations continue? Combines system availability against target with response-workflow health. Patch and configuration signals join automatically when those feeds are restored. Higher is worse.', 'Executive Workflow Health' => 'Are security cases being worked? Combines resolution speed, cases past SLA, queue pressure, and backlog growth. The badge shows overdue vs open cases. Displays Degraded when critical cases breach SLA.', 'Strategic Risk Drivers' => 'Top five open notable events ranked by priority, age, persistent attack overlap, and vulnerability pressure. Each row\'s score drives its condition color.', 'Executive Exposure' => 'Assets with critical/high vulnerabilities, ranked by severity, exposure class, and business impact from the asset database. The header row shows totals by class and severity', 'Organizational Resilience Trend' => 'Daily Organizational Resilience score over time. History accumulates from the day scoring began; no backfill.', 'Operational Execution' => 'Case workload by service: open counts by priority, overdue and stalled cases, average age, resolution speed, and backlog trend. Rows rank by execution risk; Degraded flags critical-case breaches.', 'Cybersecurity Trend' => 'Blocked and prevented attack activity per protection service over the last three complete months. Services appear where the client has that data.', 'Technology Stability' => 'Monthly availability of monitored systems over the last three complete months against the 99.5% target', ]; @endphp @section('content') {{-- Report / Docs buttons --}}
@include('dashboards.ecsm.incl_report_button', ['report_name' => 'Executive Dashboard Report']) @include('dashboards.ecsm.incl_docs_button', ['docs' => \App\Models\SplunkDashboards::getDocuments('Executive Dashboard')])
{{-- Global Time Range Selector --}}
{{-- TOP ROW: 5 Gauge Widgets --}}
@foreach([ $wGlobal => 'Global Organizational Condition', $wThreat => 'Strategic Threat Pressure', $wExposure => 'Critical Exposure', $wResilience => 'Organizational Resilience', $wWorkflow => 'Executive Workflow Health', ] as $wId => $wName) @if($wId)

{{ $wName }} @if(!empty($tooltips[$wName])) @endif

{!! $splunk_searches::getCodeArray([$wId], $from, $to) !!}
@endif @endforeach
{{-- /top row gauges --}} {{-- BOTTOM ROW: Tables and Charts --}}
@php $bottomWidgets = [ ['id' => $wRiskDrivers, 'name' => 'Strategic Risk Drivers', 'class' => 'col-xl-4'], ['id' => $wExecExposure, 'name' => 'Executive Exposure', 'class' => 'col-xl-4'], ['id' => $wResTrend, 'name' => 'Organizational Resilience Trend', 'class' => 'col-xl-4', 'chart' => true], ['id' => $wOpExec, 'name' => 'Operational Execution', 'class' => 'col-xl-4', 'scroll' => true], ['id' => $wCyberTrend, 'name' => 'Cybersecurity Trend', 'class' => 'col-xl-4', 'chart' => true], ['id' => $wTechStab, 'name' => 'Technology Stability', 'class' => 'col-xl-4', 'chart' => true], ]; @endphp @foreach($bottomWidgets as $w) @if($w['id'])

{{ $w['name'] }} @if(!empty($tooltips[$w['name']])) @endif

{!! $splunk_searches::getCodeArray([$w['id']], $from, $to) !!}
@endif @endforeach
{{-- /bottom row --}} {{-- News --}}
@include('dashboards.ecsm.news_top')
@endsection @section('scripts') @endsection @section('top_scripts') @endsection