feat: Add CrowdSec Bouncer Key Display component and integrate into Security page

- 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.
This commit is contained in:
GitHub Actions
2026-02-03 21:06:38 +00:00
parent 4cdefcb042
commit c9965bb45b
20 changed files with 3744 additions and 51 deletions

View File

@@ -130,6 +130,20 @@ if command -v cscli >/dev/null; then
mkdir -p "$CS_CONFIG_DIR" 2>/dev/null || echo "Warning: Cannot create $CS_CONFIG_DIR"
mkdir -p "$CS_DATA_DIR" 2>/dev/null || echo "Warning: Cannot create $CS_DATA_DIR"
mkdir -p "$CS_PERSIST_DIR/hub_cache"
# ============================================================================
# CrowdSec Bouncer Key Persistence Directory
# ============================================================================
# Create the persistent directory for bouncer key storage.
# This directory is inside /app/data which is volume-mounted.
# The bouncer key will be stored at /app/data/crowdsec/bouncer_key
echo "CrowdSec bouncer key will be stored at: $CS_PERSIST_DIR/bouncer_key"
# Fix ownership for key directory if running as root
if is_root; then
chown charon:charon "$CS_PERSIST_DIR" 2>/dev/null || true
fi
# Log directories are created at build time with correct ownership
# Only attempt to create if they don't exist (first run scenarios)
mkdir -p /var/log/crowdsec 2>/dev/null || true