| Organization | -Region | -Sensors | -Monthly Cost | -Cost/Sensor | -% of Total | -Status | -
|---|---|---|---|---|---|---|
| {{ tenant.name | default('N/A') }} | -- {% if tenant.region %} - {{ tenant.region }} - {% else %} - N/A - {% endif %} - | -{{ tenant.sensors | default(0) | format_number }} | -${{ tenant.cost | default(0) | format_number }} | -- {% if tenant.sensors and tenant.sensors > 0 and tenant.cost %} - ${{ (tenant.cost / tenant.sensors) | round(2) }} - {% else %} - - - {% endif %} - | -- {% if data.rollup.total_cost and data.rollup.total_cost > 0 and tenant.cost %} - {{ ((tenant.cost / data.rollup.total_cost) * 100) | round(1) }}% - {% else %} - 0% - {% endif %} - | -- {% if tenant.status == 'active' %} - Active - {% elif tenant.status == 'draft' %} - Draft - {% elif tenant.cost == 0 or tenant.sensors == 0 %} - No Usage - {% else %} - {{ tenant.status | default('N/A') }} - {% endif %} - | -
| Total ({{ data.tenants | length }} tenants) | -- | {{ data.rollup.total_sensors | default(0) | format_number }} | -${{ data.rollup.total_cost | default(0) | format_number }} | -- {% if data.rollup.avg_cost_per_sensor is defined %} - ${{ data.rollup.avg_cost_per_sensor | round(2) }} - {% endif %} - | -100% | -- |
No tenant billing data available
+ {% if warnings or errors %} +{{ error.error_message | default('Permission denied') }}
+billing.ctrl permission
No tenant billing data available
+{{ error.error_message | default('Permission denied') }}
-No data available
-| {{ col.label }} | - {% endfor %} -
|---|
| - {% if cell.badge %} - {{ cell.value }} - {% elif cell.value is defined %} - {{ cell.value }} - {% else %} - {{ cell }} - {% endif %} - | - {% endfor %} -
| - {{ cell.value | default(cell) }} - | - {% endfor %} -
{{ component.empty_message | default('No data available') }}
-| Platform | -Sensors | -% | - {% if component.show_detections %}Detections | Det % | {% endif %} -
|---|---|---|---|---|
| {{ p.name }} | -{{ p.sensors | format_number }} | -{{ p.sensors_percent | default(0) | round(1) }}% | - {% if component.show_detections %} -{{ p.detections | default(0) | format_number }} | -{{ p.detections_percent | default(0) | round(1) }}% | - {% endif %} -
No platform data available
-Breakdown by health status
+ {% if data.health_distribution %} +Health distribution data not available
+Sensors by operating system
+ {% if data.platforms and data.platforms | length > 0 %} +Platform data not available
+| Customer | +Health | +Sensors | +Online | +Offline | +Detections | +Attention | +Status | +
|---|---|---|---|---|---|---|---|
| {{ customer.name | default('N/A') }} | ++ {% if customer.health_score is defined %} + + {{ customer.health_score | round(1) }}% + + {% else %} + N/A + {% endif %} + | +{{ customer.sensors.total | default(0) if customer.sensors else 0 }} | +{{ customer.sensors.online | default(0) if customer.sensors else 0 }} | +{{ customer.sensors.offline | default(0) if customer.sensors else 0 }} | ++ {% if customer.detections and customer.detections.total is not none %} + {{ customer.detections.total }} + {% if customer.detections.limit_reached %} + LIMIT + {% endif %} + {% else %} + N/A + {% endif %} + | ++ {% if customer.attention_items and customer.attention_items | length > 0 %} + {% set critical_count = customer.attention_items | selectattr('severity', 'equalto', 'critical') | list | length %} + {% set warning_count = customer.attention_items | selectattr('severity', 'equalto', 'warning') | list | length %} + {% if critical_count > 0 %} + {{ critical_count }} critical + {% endif %} + {% if warning_count > 0 %} + {{ warning_count }} warning + {% endif %} + {% else %} + - + {% endif %} + | ++ {% if customer.health_status == 'healthy' %} + Healthy + {% elif customer.health_status == 'warning' %} + Warning + {% elif customer.health_status == 'critical' %} + Critical + {% elif customer.health_status == 'inactive' %} + Inactive + {% else %} + {{ customer.health_status | default('Unknown') }} + {% endif %} + | +
| Total ({{ data.customers | length }} customers) | ++ {% if data.rollup and data.rollup.fleet_health_percent is defined %} + {{ data.rollup.fleet_health_percent | round(1) }}% + {% endif %} + | +{{ data.rollup.total_sensors | default(0) if data.rollup else 0 }} | +{{ data.rollup.online_sensors | default(0) if data.rollup else 0 }} | +{{ data.rollup.offline_sensors | default(0) if data.rollup else 0 }} | +{{ data.rollup.total_detections | default(0) if data.rollup else 0 }} | ++ | + |
No customer data available
+{{ error.error_message | default('Data collection failed') }}
+Most common detection types across all tenants
+Organizations with highest detection counts
+| Tenant | +Detections | +Critical | +High | +Medium | +Top Categories | +Status | +
|---|---|---|---|---|---|---|
| {{ tenant.name | default('N/A') }} | ++ {{ tenant.detection_count | default(0) }} + {% if tenant.limit_reached %} + LIMIT + {% endif %} + | +0 %}style="color: var(--color-danger); font-weight: 600;"{% endif %}> + {{ tenant.severities.critical | default(0) if tenant.severities else 'N/A' }} + | +0 %}style="color: #ea580c; font-weight: 600;"{% endif %}> + {{ tenant.severities.high | default(0) if tenant.severities else 'N/A' }} + | ++ {{ tenant.severities.medium | default(0) if tenant.severities else 'N/A' }} + | ++ {% if tenant.categories and tenant.categories | length > 0 %} + {% for cat in tenant.categories[:3] %} + {{ cat.name | truncate(20) }}{{ cat.count }} + {% endfor %} + {% else %} + N/A + {% endif %} + | ++ {% if tenant.status == 'success' %} + Success + {% elif tenant.status == 'no_detections' %} + No Detections + {% elif tenant.status == 'error' %} + Error + {% else %} + {{ tenant.status | default('N/A') }} + {% endif %} + | +
| Total ({{ data.tenants | length }} tenants) | +{{ data.rollup.total_detections | default(0) if data.rollup else 0 }} | +{{ data.rollup.severities.critical | default(0) if data.rollup and data.rollup.severities else 0 }} | +{{ data.rollup.severities.high | default(0) if data.rollup and data.rollup.severities else 0 }} | +{{ data.rollup.severities.medium | default(0) if data.rollup and data.rollup.severities else 0 }} | ++ | + |
No tenant detection data available
+{{ error.error_message | default('Data collection failed') }}
+Sensors by operating system
+ {% if data.platforms and data.platforms | length > 0 %} +Platform data not available
+Health status by organization
+ {% set orgs_with_health = data.organizations | selectattr('health', 'defined') | selectattr('health', 'ne', none) | list %} + {% if orgs_with_health | length > 0 %} +Health data unavailable (limited permissions)
+Organization data not available
+{{ total_category_detections }} total detections across {{ data.top_categories | length }} categories
+{{ data.top_orgs_by_detections | length }} organizations with detections
++ Click any organization to expand and see detailed platform breakdown, offline sensors, and detection information. +
+ + {% if data.organizations and data.organizations | length > 0 %} + + {# Summary row header #} +No organization data available
+{{ error.error_message | default('Data collection failed') }}
+Platform data not available
-- Showing top 10 of {{ data.organizations | length }} organizations -
- {% endif %} - {% else %} -Organization health data not available
-Detection category data not available
-Insufficient data for trend visualization
-- Single data point: {{ data.aggregate.detections.daily_trend[0].date }} = - {{ data.aggregate.detections.daily_trend[0].value | format_number }} -
-Trend data not available
-- Daily detection counts were not provided in the source data. -
-| Organization | -Sensors | -Online | -Health | -Detections | -Status | -
|---|---|---|---|---|---|
| {{ org.name | default('N/A') }} | -- {{ org.sensors_total | format_number if org.sensors_total is defined else 'N/A' }} - | -- {{ org.sensors_online | format_number if org.sensors_online is defined else 'N/A' }} - | -- {% if org.health is defined %} - - {% else %} - N/A - {% endif %} - | -- {{ org.detections | format_number if org.detections is defined else 'N/A' }} - {% if org.detection_limit_reached %}⚠️{% endif %} - | -- {% if org.status == 'success' %} - Success - {% elif org.status == 'partial' %} - Partial - {% elif org.status == 'failed' %} - Failed - {% else %} - {{ org.status | default('N/A') }} - {% endif %} - | -
| Total ({{ data.organizations | length }} orgs) | -- {{ data.aggregate.sensors.total | format_number if data.aggregate.sensors.total is defined else 'N/A' }} - | -- {{ data.aggregate.sensors.online | format_number if data.aggregate.sensors.online is defined else 'N/A' }} - | -- {% if data.aggregate.sensors.health_percent is defined %} - {{ data.aggregate.sensors.health_percent | round(1) }}% - {% elif data.aggregate.sensors.online is defined and data.aggregate.sensors.total is defined and data.aggregate.sensors.total > 0 %} - {{ ((data.aggregate.sensors.online / data.aggregate.sensors.total) * 100) | round(1) }}% - {% else %} - N/A - {% endif %} - | -- {{ data.aggregate.detections.retrieved | format_number if data.aggregate.detections.retrieved is defined else 'N/A' }} - | -- |
No organization data available
-{{ error.error_message | default(error.error | default('Unknown error')) }}
- {% if error.remediation %} -Action: {{ error.remediation }}
- {% endif %} -- Note: Usage metrics are from LimaCharlie APIs. No cost calculations are performed. - For billing details, refer to individual organization invoices. -
-{{ data.summary.sensors_total | default('N/A') }} sensors across platforms
- {% if data.platforms and data.platforms | length > 0 %} -Platform data not available
-Sensors and detections by operating system
- {% if data.platforms and data.platforms | length > 0 %} -| Platform | -Sensors | -% | -Detections | -Det % | -
|---|---|---|---|---|
| - - {{ platform.name }} - - | -{{ platform.sensors | default(0) | format_number }} | -- {{ ((platform.sensors | default(0) / total_sensors) * 100) | round(1) }}% - | -- {{ platform.detections | default(0) | format_number }} - | -- {{ ((platform.detections | default(0) / total_detections) * 100) | round(1) }}% - | -
| Total | -{{ total_sensors | format_number }} | -100% | -{{ total_detections | format_number }} | -100% | -
- * {{ data.platform_note }} -
- {% endif %} - {% else %} -Platform breakdown not available
-{{ metadata.time_window.start_display | default('N/A') }} to {{ metadata.time_window.end_display | default('N/A') }}
-- Detection rules mapped to MITRE ATT&CK framework techniques -
-| Attribute | -Value | -
|---|---|
| {{ attr.name }} | -
- {% if attr.type == 'ip' %}
- {{ attr.value }}
- {% elif attr.type == 'code' %}
- {{ attr.value }}
- {% elif attr.type == 'badge' %}
- {{ attr.value }}
- {% else %}
- {{ attr.value }}
- {% endif %}
- |
-
| # | -Category | -Source Host | -Event Type | -Count | -% | -
|---|---|---|---|---|---|
| {{ loop.index }} | -- - {{ detection.category }} - - | -{{ detection.host | default('N/A') }} | -{{ detection.event_type | default('N/A') }} | -{{ detection.count | format_number }} | -- {{ ((detection.count / total) * 100) | round(1) }}% - | -
| Total (Top {{ data.top_detections | length }}) | -- {% set sum = data.top_detections | sum(attribute='count') %} - {{ sum | format_number }} - | -{{ ((sum / total) * 100) | round(1) }}% | -|||
{{ error.message | default('Unknown error') }}
-