fix(security): implement security module toggle actions

Complete Phase 4 implementation enabling ACL, WAF, and Rate Limiting
toggle functionality in the Security Dashboard UI.

Backend:

Add 60-second TTL settings cache layer to Cerberus middleware
Trigger async Caddy config reload on security.* setting changes
Query runtime settings in Caddy manager before config generation
Wire SettingsHandler with CaddyManager and Cerberus dependencies
Frontend:

Fix optimistic update logic to preserve mode field for WAF/rate_limit
Replace onChange with onCheckedChange for all Switch components
Add unit tests for mode preservation and rollback behavior
Test Fixes:

Fix CrowdSec startup test assertions (cfg.Enabled is global Cerberus flag)
Fix security service test UUID uniqueness for UNIQUE constraint
Add .first() to toast locator in wait-helpers.ts for multiple toasts
Documentation:

Add Security Dashboard Toggles section to features.md
Mark phase4_security_toggles_spec.md as IMPLEMENTED
Add E2E coverage mode (Docker vs Vite) documentation
Enables 8 previously skipped E2E tests in security-dashboard.spec.ts
and rate-limiting.spec.ts.
This commit is contained in:
GitHub Actions
2026-01-24 03:40:57 +00:00
parent a198b76da6
commit 99faac0b6a
17 changed files with 2325 additions and 32 deletions
+19
View File
@@ -51,6 +51,25 @@ Your credentials are stored securely with encryption and automatic key rotation.
Enterprise-grade protection that "just works." Cerberus bundles multiple security layers into one easy-to-manage system.
### 🎛️ Security Dashboard Toggles
Control your security modules with a single click. The Security Dashboard provides instant toggles for each security layer:
- **ACL Toggle** — Enable/disable Access Control Lists without editing config files
- **WAF Toggle** — Turn the Web Application Firewall on/off in real-time
- **Rate Limiting Toggle** — Activate or deactivate request rate limits instantly
**Key Features:**
- **Instant Updates** — Changes take effect immediately with automatic Caddy config reload
- **Persistent State** — Toggle settings persist across page reloads and container restarts
- **Optimistic UI** — Toggle changes reflect instantly with automatic rollback on failure
- **Performance Optimized** — 60-second cache layer minimizes database queries in middleware
→ [Learn More](features/security-dashboard.md)
---
### 🕵️ CrowdSec Integration
Protect your applications using behavior-based threat detection powered by a global community of security data. Bad actors get blocked automatically before they can cause harm.