CyberMind
916cb91b72
feat(toolbox): activate Sentinel + surface compromise detections (WebUI tab · kbin report · PDF) — ref #823 ( #825 )
...
License Headers / check (push) Waiting to run
* feat(toolbox): arcade-HUD transparency banner redesign + responsive close-X fix
Redesign both MITM transparency-banner renderers into a C3BOX arcade-HUD
"scoreboard" skin and fix the phone bug where the close X dropped off-screen.
Structural responsive fix (both renderers): three flex clusters — LEFT rank
pinned (flex:0 0 auto), MIDDLE evidence flex:1 1 auto;min-width:0;overflow-x:auto
(scrolls instead of pushing), RIGHT report+close pinned (flex:0 0 auto) so the
close X is always visible; box-sizing:border-box added.
bundle.py _BANNER_CORE (primary R3 renderer): still built entirely via the mk()
DOM API (no innerHTML — Trusted-Types/strict-CSP invariant kept). Tier-accent
palette (r0 gold..r4 pink) drives border/glow/rank chip/level switch; evidence +
Tor/Ad-Guard toggles + live sbx-trk/sbx-ck counts become neon pills; one scoped
prefers-reduced-motion <style> for sheen/hover. All ids, toggles, csp proof,
un-hideable styles, SPA re-assert preserved.
inject_banner.py _banner_html_dynamic (secondary addon renderer): same look +
three-cluster fix; keeps grade shield + geo pills, _LEVEL_THEME, _GUARD, NCR
ascii-encodability, gondwana-mitm-banner id, JS-path close moved to right cluster.
Tests updated to the new structure; invariants still asserted (no innerHTML,
ids, toggles, ascii-encodability, dismiss control in right cluster).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(nginx): revalidate luci-static assets (Cache-Control no-cache) so webui updates aren't cached stale
* docs: spec — activate Sentinel + surface on WebUI tab, kbin report, PDF (ref #823 )
* docs: implementation plan — Sentinel activation + 3 ToolBoX surfaces (ref #823 )
* feat(sentinel): add mac filter to /verdicts status endpoint (ref #823 )
* feat(toolbox): sentinel_link — fail-safe daemon fetch + compromise assess (ref #823 )
* fix(toolbox): harden sentinel_link int coercions to never raise (ref #823 )
* feat(toolbox): /admin/sentinel/{stats,verdicts} fleet proxy routes (ref #823 )
* fix(toolbox): guard /admin/sentinel/stats against non-numeric daemon values (ref #823 )
* feat(toolbox): WebUI Sentinelle fleet tab (evaluation + detections) (ref #823 )
* feat(toolbox): fold per-device Sentinel detections into build_report_data (ref #823 )
* feat(toolbox): kbin report per-device Compromission tab (ref #823 )
* feat(toolbox): wire per-device Sentinel data into live HTML report render (ref #823 )
* fix(toolbox): report-live tab must render when report var is absent (ref #823 )
* feat(toolbox): PDF + text-fallback Sentinel compromise section (ref #823 )
* docs: GPT demo prompt for kbin Sentinel augmentation (ref #823 )
* fix(toolbox): sentinel never-raise on non-dict daemon rows + guard ts render (ref #823 )
---------
Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 17:39:42 +02:00
dba06bc47a
fix(nginx): sync webui.conf template to the secubox-routes.d include (ref #65 )
...
#65 's symptom (new modules' /api/v1/<m>/ return 404 because their nginx routes
aren't loaded) is already solved in the deployed webui.conf via
'include /etc/nginx/secubox-routes.d/*.conf' — every module package drops a
location-only snippet there at install. The repo template common/nginx/webui.conf
was stale (hardcoded core blocks only, no include), which is misleading. Add the
active include so the template matches production; keep the hardcoded
crowdsec/waf/system blocks (those core packages ship only the legacy secubox.d/
snippet, so no duplicate-location).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 09:38:28 +02:00