Commit Graph

428 Commits

Author SHA1 Message Date
GitHub Actions
e41c4a12da fix: resolve CrowdSec 500 error and state mismatch after container restart
- Make Stop() idempotent: return nil instead of error when PID file missing
- Add startup reconciliation: auto-start CrowdSec if DB says enabled
- Ensure log file exists for LogWatcher to prevent disconnection

Fixes:
- "Failed to stop CrowdSec: 500 error" when toggling off
- CrowdSec showing "not running" despite being enabled in settings
- Live logs showing disconnected after container restart
2025-12-15 07:30:35 +00:00
GitHub Actions
1919530662 fix: add LAPI readiness check to CrowdSec status endpoint
The Status() handler was only checking if the CrowdSec process was
running, not if LAPI was actually responding. This caused the
CrowdSecConfig page to always show "LAPI is initializing" even when
LAPI was fully operational.

Changes:
- Backend: Add lapi_ready field to /admin/crowdsec/status response
- Frontend: Add CrowdSecStatus TypeScript interface
- Frontend: Update conditional logic to check lapi_ready not running
- Frontend: Separate warnings for "initializing" vs "not running"
- Tests: Add unit tests for Status handler LAPI check

Fixes regression from crowdsec_lapi_error_diagnostic.md fixes.
2025-12-15 07:30:35 +00:00
GitHub Actions
0bba5ad05f fix: enhance LAPI readiness checks and update related UI feedback 2025-12-15 07:30:35 +00:00
GitHub Actions
c43976f84a fix: add LAPI availability check for console enrollment and update UI warnings 2025-12-15 07:30:35 +00:00
GitHub Actions
7f82df80b7 fix: complete geoip2-golang v2 migration
- Update import paths to github.com/oschwald/geoip2-golang/v2
- Handle API breaking changes (net.IP → netip.Addr, IsoCode → ISOCode)
- Fix VERSION.md to match git tag (0.7.13)
- Resolves CI failure in benchmark workflow
2025-12-14 08:06:32 +00:00
Jeremy
dd9a559c8e Merge branch 'development' into renovate/github.com-oschwald-geoip2-golang-2.x 2025-12-14 02:33:06 -05:00
renovate[bot]
72821aba99 fix(deps): update module github.com/oschwald/geoip2-golang to v2 2025-12-14 06:44:09 +00:00
renovate[bot]
0600f9da2a chore(deps): update dependency go to v1.25.5 2025-12-14 06:43:33 +00:00
GitHub Actions
3fd85ce34f fix: upgrade Go to 1.25 for Caddy 2.10.2 compatibility
Caddy 2.10.2 requires Go 1.25 (declared in its go.mod). The previous
commit incorrectly downgraded to Go 1.23 based on the false assumption
that Go 1.25.5 doesn't exist.

This fix:
- Updates Dockerfile Go images from 1.23-alpine to 1.25-alpine
- Updates backend/go.mod to go 1.25
- Updates go.work to go 1.25

Fixes CI Docker build failures in xcaddy stage.
2025-12-14 01:06:03 +00:00
Jeremy
6deb5eb9f2 Merge branch 'development' into main 2025-12-13 19:50:15 -05:00
GitHub Actions
65443a1464 fix: correct Go version to 1.23 (1.25.5 does not exist) 2025-12-14 00:36:20 +00:00
renovate[bot]
42a6bc509a fix(deps): update module github.com/oschwald/geoip2-golang to v2 2025-12-13 02:23:34 +00:00
GitHub Actions
343819a0d8 feat: Implement safe integer conversions and enhance CI/CD workflows
- Added safeIntToUint and safeFloat64ToUint functions to prevent integer overflow in proxy_host_handler.go.
- Updated GetAvailableSpace method in backup_service.go with overflow protection.
- Improved LiveLogViewer tests by using findBy queries to avoid race conditions.
- Adjusted benchmark.yml to handle permissions and increased alert threshold to 175%.
- Created CI/CD Failure Remediation Plan document for addressing workflow failures.
2025-12-13 01:04:46 +00:00
GitHub Actions
9e8674e0d7 feat: Add full integration testing for Cerberus security stack 2025-12-12 23:29:30 +00:00
GitHub Actions
0783ce3f57 Add integration test script for WAF functionality
- Create a new script `waf_integration.sh` to automate testing of WAF (Coraza) features.
- The script includes steps to build the local Docker image, start necessary containers, register a test user, create proxy hosts, and validate WAF rulesets for XSS and SQL injection attacks.
- Implement logging for test results and cleanup procedures to ensure resources are properly managed.
- Include assertions for HTTP status codes to verify expected behavior during tests.
2025-12-12 22:50:08 +00:00
GitHub Actions
4b49ec5f2b feat: Enhance LiveLogViewer with Security Mode and related tests
- Updated LiveLogViewer to support a new security mode, allowing for the display of security logs.
- Implemented mock functions for connecting to security logs in tests.
- Added tests for rendering, filtering, and displaying security log entries, including blocked requests and source filtering.
- Modified Security page to utilize the new security mode in LiveLogViewer.
- Updated Security page tests to reflect changes in log viewer and ensure proper rendering of security-related components.
- Introduced a new script for CrowdSec startup testing, ensuring proper configuration and parser installation.
- Added pre-flight checks in the CrowdSec integration script to verify successful startup and configuration.
2025-12-12 22:18:28 +00:00
GitHub Actions
7da24a2ffb Implement CrowdSec Decision Test Infrastructure
- Added integration test script `crowdsec_decision_integration.sh` for verifying CrowdSec decision management functionality.
- Created QA report for the CrowdSec decision management integration test infrastructure, detailing file verification, validation results, and overall status.
- Included comprehensive test cases for starting CrowdSec, managing IP bans, and checking API responses.
- Ensured proper logging, error handling, and cleanup procedures within the test script.
- Verified syntax, security, and functionality of all related files.
2025-12-12 20:33:41 +00:00
GitHub Actions
9ad3afbd22 Fix Rate Limiting Issues
- Updated Definition of Done report with detailed checks and results for backend and frontend tests.
- Documented issues related to race conditions and test failures in QA reports.
- Improved security scan notes and code cleanup status in QA reports.
- Added summaries for rate limit integration test fixes, including root causes and resolutions.
- Introduced new debug and integration scripts for rate limit testing.
- Updated security documentation to reflect changes in configuration and troubleshooting steps.
- Enhanced troubleshooting guides for CrowdSec and Go language server (gopls) errors.
- Improved frontend and scripts README files for clarity and usage instructions.
2025-12-12 19:21:44 +00:00
GitHub Actions
5bc387b1dc feat: Add integration tests for rate limiting functionality 2025-12-12 18:29:48 +00:00
GitHub Actions
25082778c9 feat(cerberus): integrate Cerberus security features (WAF, ACLs, rate limiting, CrowdSec)
- Implement GeoIPService for IP-to-country lookups with comprehensive error handling.
- Add tests for GeoIPService covering various scenarios including invalid IPs and database loading.
- Extend AccessListService to handle GeoIP service integration, including graceful degradation when GeoIP service is unavailable.
- Introduce new tests for AccessListService to validate geo ACL behavior and country code parsing.
- Update SecurityService to include new fields for WAF configuration and enhance decision logging functionality.
- Add extensive tests for SecurityService covering rule set management and decision logging.
- Create a detailed Security Coverage QA Plan to ensure 100% code coverage for security-related functionality.
2025-12-12 17:56:30 +00:00
GitHub Actions
0003b6ac7f feat: Implement comprehensive remediation plan for Cerberus Security Module
- Added GeoIP integration (Issue #16) with service and access list updates.
- Fixed rate limiting burst field usage and added bypass list support (Issue #19).
- Implemented CrowdSec bouncer integration (Issue #17) with registration and health checks.
- Enhanced WAF integration (Issue #18) with per-host toggle, paranoia levels, and rule exclusions.
- Updated documentation and added new API routes for GeoIP, rate limits, and WAF exclusions.

chore: Add QA report for race and test failures

- Documented findings from race condition tests and WebSocket test flakiness.
- Identified issues with CrowdSec registration tests in non-bash environments.
- Noted security status contract mismatches and missing table errors in handler/service tests.

audit: Conduct full QA audit of security phases

- Verified all security implementation phases with comprehensive testing.
- Resolved linting issues and ensured codebase health.
- Documented test results and issues found during the audit.
2025-12-12 16:45:49 +00:00
GitHub Actions
7dd0d94169 feat: Implement rate limiting feature with persistence and UI updates 2025-12-12 04:13:55 +00:00
GitHub Actions
1beac7b87e fix: read archive before backup in CrowdSec preset apply and add Markdownlint integration 2025-12-12 01:06:32 +00:00
GitHub Actions
67f2f27cf8 feat: Add Import Success Modal and Certificate Status Card features
- Implemented ImportSuccessModal to replace alert with a modal displaying import results and guidance.
- Updated ImportCaddy to show the new modal with import summary and navigation options.
- Created CertificateStatusCard to display certificate provisioning status on the dashboard.
- Enhanced API types and hooks to support new features.
- Added unit tests for ImportSuccessModal and CertificateStatusCard components.
- Updated QA report to reflect the status of the new features and tests.
2025-12-12 00:42:27 +00:00
GitHub Actions
7ca5a11572 Add ImportSuccessModal tests, enhance AuthContext for token management, and improve useImport hook
- Implement tests for ImportSuccessModal to verify rendering and functionality.
- Update AuthContext to store authentication token in localStorage and manage token state.
- Modify useImport hook to capture and expose commit results, preventing unnecessary refetches.
- Enhance useCertificates hook to support optional refetch intervals.
- Update Dashboard to conditionally poll certificates based on pending status.
- Integrate ImportSuccessModal into ImportCaddy for user feedback on import completion.
- Adjust Login component to utilize returned token for authentication.
- Refactor CrowdSecConfig tests for improved readability and reliability.
- Add debug_db.py script for inspecting the SQLite database.
- Update integration and test scripts for better configuration and error handling.
- Introduce Trivy scan script for vulnerability assessment of Docker images.
2025-12-12 00:05:15 +00:00
GitHub Actions
8294d6ee49 Add QA test outputs, build scripts, and Dockerfile validation
- Created `qa-test-output-after-fix.txt` and `qa-test-output.txt` to log results of certificate page authentication tests.
- Added `build.sh` for deterministic backend builds in CI, utilizing `go list` for efficiency.
- Introduced `codeql_scan.sh` for CodeQL database creation and analysis for Go and JavaScript/TypeScript.
- Implemented `dockerfile_check.sh` to validate Dockerfiles for base image and package manager mismatches.
- Added `sourcery_precommit_wrapper.sh` to facilitate Sourcery CLI usage in pre-commit hooks.
2025-12-11 18:26:24 +00:00
GitHub Actions
65d837a13f chore: clean cache 2025-12-11 18:17:21 +00:00
GitHub Actions
b4dd1efe3c fix(console): remove unsupported --tenant flag from CrowdSec console enrollment command 2025-12-11 15:37:46 +00:00
GitHub Actions
8687a05ec0 chore: remove generated hub index files from repo 2025-12-11 05:27:11 +00:00
GitHub Actions
28ad90d962 feat(tests): enhance integration tests for CrowdSec and Coraza, improve error handling and logging
- Updated `coraza_integration_test.go` and `crowdsec_integration_test.go` for better logging and error handling.
- Added `ttlRemainingSeconds` to `CrowdsecHandler` to provide remaining TTL in responses.
- Improved error messages in `ApplyPreset` and `GetCachedPreset` methods for better user guidance.
- Enhanced test coverage for applying presets, including scenarios for cache misses and expired caches.
- Introduced new tests for cache refresh logic and ensured proper rollback behavior during failures.
- Updated QA report with recent testing outcomes and observations.
2025-12-11 00:59:53 +00:00
GitHub Actions
e299aa6b52 feat(tests): enhance test coverage and error handling across various components
- Added a test case in CrowdSecConfig to show improved error message when preset is not cached.
- Introduced a new test suite for the Dashboard component, verifying counts and health status.
- Updated SMTPSettings tests to utilize a shared render function and added tests for backend validation errors.
- Modified Security.audit tests to improve input handling and removed redundant export failure test.
- Refactored Security tests to remove export functionality and ensure correct rendering of components.
- Enhanced UsersPage tests with new scenarios for updating user permissions and manual invite link flow.
- Created a new utility for rendering components with a QueryClient and MemoryRouter for better test isolation.
- Updated go-test-coverage script to improve error handling and coverage reporting.
2025-12-11 00:26:07 +00:00
GitHub Actions
abaefa6d2a fix(notification): classify fd00::/8 as unique-local IPv6 and update test 2025-12-09 15:15:50 +00:00
GitHub Actions
1b11b187a2 fix: address golangci-lint errors in crowdsec hub_sync 2025-12-09 12:24:30 +00:00
GitHub Actions
5d364baae5 chore(ci): add repo health check workflow, LFS enforcement, and gitattributes 2025-12-09 01:25:57 +00:00
GitHub Actions
a3237fe32c feat: add integration tests for CrowdSec preset pull and apply
- Introduced `crowdsec_integration_test.go` to validate the integration of the CrowdSec preset pull and apply functionality.
- Updated `RealCommandExecutor` to return combined output for command execution.
- Enhanced `CrowdsecHandler` to map errors to appropriate HTTP status codes, including handling timeouts.
- Added tests for timeout scenarios in `crowdsec_presets_handler_test.go`.
- Improved `HubService` to support configurable pull and apply timeouts via environment variables.
- Implemented fallback logic for fetching hub index from a default URL if the primary fails.
- Updated documentation to reflect changes in preset handling and cscli availability.
- Refactored frontend tests to utilize a new test query client for better state management.
- Added a new integration script `crowdsec_integration.sh` for automated testing of the CrowdSec integration.
2025-12-09 00:29:40 +00:00
Jeremy
b36975b527 Merge branch 'development' into renovate/golang.org-x-crypto-0.x 2025-12-08 19:26:20 -05:00
GitHub Actions
be2900bc5d feat: add HUB_BASE_URL configuration and enhance CrowdSec hub sync functionality with error handling and tests 2025-12-08 22:57:32 +00:00
renovate[bot]
a6d8f2df3a fix(deps): update module golang.org/x/crypto to v0.46.0 2025-12-08 21:51:42 +00:00
GitHub Actions
3eadb2bee3 feat: enhance CrowdSec configuration tests and add new import/export functionality
- Added comprehensive tests for CrowdSec configuration, including preset application and validation error handling.
- Introduced new test cases for importing CrowdSec configurations, ensuring backup creation and successful import.
- Updated existing tests to reflect changes in UI elements and functionality, including toggling CrowdSec mode and exporting configurations.
- Created utility functions for building export filenames and handling downloads, improving code organization and reusability.
- Refactored existing tests to use new test IDs and ensure accurate assertions for UI elements and API calls.
2025-12-08 21:01:24 +00:00
GitHub Actions
63cebf07ab Refactor services and improve error handling
- Updated file permissions in certificate_service_test.go and log_service_test.go to use octal notation.
- Added a new doc.go file to document the services package.
- Enhanced error handling in docker_service.go, log_service.go, notification_service.go, proxyhost_service.go, remoteserver_service.go, update_service.go, and uptime_service.go by logging errors when closing resources.
- Improved log_service.go to simplify log file processing and deduplication.
- Introduced CRUD tests for notification templates in notification_service_template_test.go.
- Removed the obsolete python_compile_check.sh script.
- Updated notification_service.go to improve template management functions.
- Added tests for uptime service notifications in uptime_service_notification_test.go.
2025-12-08 05:55:17 +00:00
GitHub Actions
da378e624c feat: Update indirect dependencies in go.mod and go.sum for improved compatibility 2025-12-08 05:55:16 +00:00
GitHub Actions
6a17dc6387 feat: Add VS Code settings, tasks, and troubleshooting documentation for Go development 2025-12-08 05:55:16 +00:00
GitHub Actions
8f7b4b9aaa refactor: Update QA report to reflect Optional Features implementation
docs: Modify security documentation to indicate Cerberus is enabled by default

test: Adjust frontend feature flag tests to align with new Cerberus flag

feat: Integrate feature flags into Layout component for conditional rendering

test: Enhance Layout component tests for feature flag visibility

feat: Implement Optional Features section in System Settings page

test: Add tests for Optional Features toggles in System Settings

fix: Remove unused Cerberus state from System Settings component
2025-12-07 03:35:28 +00:00
GitHub Actions
2c1cf5f0ac feat: Implement SSL Provider selection feature with tests and documentation
- Added functionality to select SSL Provider (Auto, Let's Encrypt, ZeroSSL) in the Caddy Manager.
- Updated the ApplyConfig method to handle different SSL provider settings and staging flags.
- Created unit tests for various SSL provider scenarios, ensuring correct behavior and backward compatibility.
- Enhanced frontend System Settings page to include SSL Provider dropdown with appropriate options and descriptions.
- Updated documentation to reflect new SSL Provider feature and its usage.
- Added QA report detailing testing outcomes and security verification for the SSL Provider implementation.
2025-12-06 20:59:34 +00:00
GitHub Actions
7624f6fad8 Add QA testing reports for certificate page authentication fixes
- Created detailed QA testing report documenting the authentication issues with certificate endpoints, including test results and root cause analysis.
- Added final QA report confirming successful resolution of the authentication issue, with all tests passing and security verifications completed.
- Included test output logs before and after the fix to illustrate the changes in endpoint behavior.
- Documented the necessary code changes made to the route registration in `routes.go` to ensure proper application of authentication middleware.
2025-12-06 19:34:51 +00:00
GitHub Actions
8e2ba14ae5 feat: add certificate management security and cleanup dialog
- Documented certificate management security features in security.md, including backup and recovery processes.
- Implemented CertificateCleanupDialog component for confirming deletion of orphaned certificates when deleting proxy hosts.
- Enhanced ProxyHosts page to check for orphaned certificates and prompt users accordingly during deletion.
- Added tests for certificate cleanup prompts and behaviors in ProxyHosts, ensuring correct handling of unique, shared, and production certificates.
2025-12-06 01:43:46 +00:00
GitHub Actions
8b2661c280 chore: update .gitignore, remove keybindings file, and modify Go module dependencies 2025-12-05 22:28:19 +00:00
GitHub Actions
09320a74ed feat: implement bulk ACL application feature for efficient access list management across multiple proxy hosts
feat: add modular Security Dashboard implementation plan with environment-driven security service activation
fix: update go.mod and go.sum for dependency version upgrades and optimizations
feat: enable gzip compression for API responses to reduce payload size
fix: optimize SQLite connection settings for better performance and concurrency
refactor: enhance RequireAuth component with consistent loading overlay
feat: configure global query client with optimized defaults for performance in main.tsx
refactor: replace health check useEffect with React Query for improved caching and auto-refresh
build: add code splitting in vite.config.ts for better caching and parallel loading
2025-12-05 18:45:18 +00:00
GitHub Actions
72ff6313de Implement CrowdSec integration with API endpoints for managing IP bans and decisions
- Added unit tests for CrowdSec handler, including listing, banning, and unbanning IPs.
- Implemented mock command executor for testing command execution.
- Created tests for various scenarios including successful operations, error handling, and invalid inputs.
- Developed CrowdSec configuration tests to ensure proper handler setup and JSON output.
- Documented security features and identified gaps in CrowdSec, WAF, and Rate Limiting implementations.
- Established acceptance criteria for feature completeness and outlined implementation phases for future work.
2025-12-05 17:23:26 +00:00
GitHub Actions
11357a1a15 feat: implement uptime monitor synchronization for proxy host updates and enhance related tests 2025-12-05 16:29:51 +00:00