CrowdSec LAPI authentication and UI translations now work correctly:
Backend:
- Implemented automatic bouncer registration on LAPI startup
- Added health check polling with 30s timeout before registration
- Priority order: env var → file → auto-generated key
- Logs banner warning when environment key is rejected by LAPI
- Saves bouncer key to /app/data/crowdsec/bouncer_key with secure permissions
- Fixed 6 golangci-lint issues (errcheck, gosec G301/G304/G306)
Frontend:
- Fixed translation keys displaying as literal strings
- Added ready checks to prevent rendering before i18n loads
- Implemented password-style masking for API keys with eye toggle
- Added 8 missing translation keys for CrowdSec console enrollment and audit logs
- Enhanced type safety with null guards for key status
The Cerberus security dashboard now activates successfully with proper
bouncer authentication and fully localized UI text.
Resolves: #609
- Implemented CrowdSecBouncerKeyDisplay component to fetch and display the bouncer API key information.
- Added loading skeletons and error handling for API requests.
- Integrated the new component into the Security page, conditionally rendering it based on CrowdSec status.
- Created unit tests for the CrowdSecBouncerKeyDisplay component, covering various states including loading, registered/unregistered bouncer, and no key configured.
- Added functional tests for the Security page to ensure proper rendering of the CrowdSec Bouncer Key Display based on the CrowdSec status.
- Updated translation files to include new keys related to the bouncer API key functionality.