Commit Graph

  • 96a21ffb70 Fix promise cancellation in 5 components with AbortController refs Lukas 2026-05-01 17:43:47 +02:00
  • c988b4b8b6 Refactor provider composition and ESLint configuration Lukas 2026-05-01 17:33:56 +02:00
  • 4f7316c484 Add unified RequestValidationError handler to unify error response schema Lukas 2026-05-01 15:49:39 +02:00
  • 0221e423f2 Fix pagination metadata return structure and test assertions Lukas 2026-05-01 15:42:05 +02:00
  • 73021429f7 refactor: restructure API pagination metadata for better frontend usability Lukas 2026-04-30 22:24:42 +02:00
  • 05c3b564ae Refactor scheduler lock implementation with heartbeat mechanism Lukas 2026-04-30 22:10:38 +02:00
  • f9e283541b Add explicit database transaction isolation to multi-step operations Lukas 2026-04-30 22:04:15 +02:00
  • 94d6352d1d Fix health check endpoint to return 503 when fail2ban is offline Lukas 2026-04-30 21:56:42 +02:00
  • 52f237d5d4 Make background tasks idempotent - prevent duplicate bans on retry Lukas 2026-04-30 21:54:14 +02:00
  • 400ab1a3f1 Add security headers middleware and documentation Lukas 2026-04-30 21:33:08 +02:00
  • 3bd9848a08 Implement global rate limiter and refactor auth middleware Lukas 2026-04-30 21:26:31 +02:00
  • d1316ca66e Clear Tasks.md Lukas 2026-04-30 21:05:00 +02:00
  • 90f4c6239c Add resource limits to all Docker containers Lukas 2026-04-30 21:03:56 +02:00
  • fc5f44ebe4 Add session validation UI and expose isValidating in auth context Lukas 2026-04-30 21:02:49 +02:00
  • e24b1241fb docs: Add pre-commit hook setup instructions for type validation Lukas 2026-04-30 21:02:00 +02:00
  • 59c92f9a83 feat: Implement automated OpenAPI type generation Lukas 2026-04-30 21:00:05 +02:00
  • c4ede71fa6 Fix: Enforce single-worker deployment for session cache cluster safety Lukas 2026-04-30 20:54:24 +02:00
  • f074882f2d Update documentation and ErrorBoundary component Lukas 2026-04-30 20:43:41 +02:00
  • 3bd2a71367 Refactor usePolledData hook and add comprehensive tests Lukas 2026-04-30 20:24:47 +02:00
  • 69d32bfbe9 feat: Implement cross-tab authentication synchronization in AuthProvider Lukas 2026-04-30 20:15:26 +02:00
  • ac53a56ae7 Update backend configuration and documentation Lukas 2026-04-30 20:10:57 +02:00
  • 9afdbe2852 Refactor auth and setup services Lukas 2026-04-30 20:10:00 +02:00
  • 7f68d6b7d7 Remove completed task from Tasks.md Lukas 2026-04-30 20:06:29 +02:00
  • 3d5acb756f refactor: move repository and service imports to module level in dependencies.py Lukas 2026-04-30 20:06:10 +02:00
  • 277f2a467c Refactor rate limiting with exponential backoff strategy Lukas 2026-04-30 19:58:09 +02:00
  • 2db635ae19 Fix exception handler overlap issue - add DomainError catch-all handler Lukas 2026-04-30 19:44:43 +02:00
  • 9b4aee7f37 docs: enhance Pydantic validator constraints and mark task complete Lukas 2026-04-30 19:37:03 +02:00
  • 100fd47c4b Refactor: Make model packages true leaf nodes - remove app-layer dependencies Lukas 2026-04-30 19:31:11 +02:00
  • 3d1a6f5538 Implement frontend and backend observability alignment Lukas 2026-04-30 18:32:19 +02:00
  • 9a43123b3a docs: Define explicit DI container strategy for backend service graph Lukas 2026-04-29 20:25:25 +02:00
  • b6631b86e4 Add database migration 5: Indexes for history_archive query performance Lukas 2026-04-29 20:17:58 +02:00
  • 187cd8250d Implement database-backed scheduler lock for multi-worker safety Lukas 2026-04-29 20:10:53 +02:00
  • 336242ad06 Implement visibility-aware polling to reduce background tab resource usage Lukas 2026-04-29 20:01:25 +02:00
  • 0a350b3acc Optimize API client headers by method - only set Content-Type and CSRF header as needed Lukas 2026-04-29 19:52:17 +02:00
  • bc4ba703f0 Fix #34: Replace setup redirect allowlist prefix matching with explicit allowlist Lukas 2026-04-29 19:45:42 +02:00
  • 6bc440dce4 Refactor backend configuration and authentication Lukas 2026-04-29 19:39:55 +02:00
  • dd14ed7e7e Update Tasks.md Lukas 2026-04-29 19:29:49 +02:00
  • c2dd9f5f55 Add scheduled cleanup for rate limiter (#32) Lukas 2026-04-29 19:28:45 +02:00
  • 18036d53bf Fix issue #31: Make schedule reschedule deterministic and observable Lukas 2026-04-29 19:24:55 +02:00
  • 1302ac821f Fix non-atomic setup persistence across DB contexts (Issue #30) Lukas 2026-04-29 19:19:53 +02:00
  • cc4370c50d feat: Add runtime DNS-rebinding protection for blocklist HTTP connections Lukas 2026-04-29 19:10:51 +02:00
  • 9072117db3 ## 28) Login failure delay can enable app-layer DoS Lukas 2026-04-29 19:02:00 +02:00
  • 1e2576af2a ## 27) Error response body shape is inconsistent Lukas 2026-04-28 22:28:02 +02:00
  • a2129bb9bd Pagination contract is not standardized across endpoints Lukas 2026-04-28 21:40:22 +02:00
  • ad21590f60 No canonical snake_case/camelCase serialization policy Lukas 2026-04-28 21:27:26 +02:00
  • b27765928a Standardize API response envelopes: use items for collection responses and update tests Lukas 2026-04-28 20:48:00 +02:00
  • 1c673d600c Standardize API response envelope shapes across all endpoints Lukas 2026-04-28 10:12:55 +02:00
  • 7ba1cf7ca2 feat: Implement global request lifecycle cancellation on route transitions Lukas 2026-04-28 09:58:59 +02:00
  • e0a4d36fc3 Document storage key registry pattern in Web-Development Lukas 2026-04-28 09:49:23 +02:00
  • 252204ed97 Consolidate frontend storage keys into constants module Lukas 2026-04-28 09:48:28 +02:00
  • 72c4a0ed04 fix: prevent silent auth error swallowing in fetch error utility Lukas 2026-04-28 09:45:08 +02:00
  • ca23858946 Add skeleton loading components for progressive UX Lukas 2026-04-28 09:40:10 +02:00
  • 2fea513c9c docs: make provider dependency chain explicit with documentation and tests Lukas 2026-04-28 09:30:22 +02:00
  • d10145e5d6 refactor(frontend): extract shared fetch lifecycle into useFetchData base hook Lukas 2026-04-28 09:23:34 +02:00
  • 5166789b68 feat: Implement typed error contracts in generic hooks Lukas 2026-04-28 09:13:47 +02:00
  • 6c8e2b3423 fix(#16): Establish consistent API usage layering patterns Lukas 2026-04-28 08:53:36 +02:00
  • f169bbd39a test: fix BanUnbanForm tests with NotificationProvider wrapper Lukas 2026-04-28 08:44:39 +02:00
  • ae34d98859 feat: centralized error notification service (issue #15) Lukas 2026-04-28 08:41:33 +02:00
  • da6433b2cf Improve error boundary granularity with page and section level boundaries Lukas 2026-04-28 08:33:39 +02:00
  • 42beb9cf3b refactor: Decompose ConfigPage into focused routing and component layers Lukas 2026-04-28 08:27:36 +02:00
  • 69a5f0ceb1 refactor: eliminate prop drilling in JailsPage with context provider Lukas 2026-04-28 08:20:29 +02:00
  • ace8930482 Update documentation Lukas 2026-04-28 08:16:03 +02:00
  • e86ab6dad1 10) Implement explicit startup DAG for resource initialization Lukas 2026-04-28 08:08:05 +02:00
  • a273b96563 feat: Complete repository protocol coverage Lukas 2026-04-28 07:58:57 +02:00
  • 52a4d04d92 Task 8: Standardize modeling style (TypedDict vs Pydantic) Lukas 2026-04-28 07:53:30 +02:00
  • 3888c5eb3f Refactor ban management with domain models and mappers Lukas 2026-04-28 07:46:02 +02:00
  • 507f153ab9 Enforce repository boundary: Remove DbDep from routers Lukas 2026-04-28 07:35:23 +02:00
  • 813cf09bed Enforce repository boundary for persistence access Lukas 2026-04-27 19:04:52 +02:00
  • afc1e44e99 Implement centralized exception handling and validation Lukas 2026-04-27 18:52:12 +02:00
  • 2e221f6852 Refactor: Move module-level mutable flags to JailServiceState Lukas 2026-04-27 18:42:52 +02:00
  • 79112c0430 Remove completed task from documentation Lukas 2026-04-27 18:35:06 +02:00
  • e08a16c7dd Refactor: Split blocklist import flow into focused components Lukas 2026-04-27 18:34:11 +02:00
  • 3bbf413c55 refactor: Make service dependencies explicit and injectable Lukas 2026-04-27 18:26:08 +02:00
  • bc315b936b Refactor services and update documentation Lukas 2026-04-26 20:27:04 +02:00
  • 93021500c3 TASK-033: Remove session token from JSON response body Lukas 2026-04-26 19:38:33 +02:00
  • e2560f5db0 TASK-032: Implement geo_cache retention policy and cleanup Lukas 2026-04-26 19:24:34 +02:00
  • 32aad186c3 TASK-031: Enforce bcrypt 72-byte password limit Lukas 2026-04-26 15:38:20 +02:00
  • 1d91e24a88 TASK-030: Secure IP geolocation with MMDB-primary resolver Lukas 2026-04-26 15:31:39 +02:00
  • b9289a3b0e Fix: Remove socket path leak in fail2ban error responses Lukas 2026-04-26 15:21:35 +02:00
  • 5d24780c63 TASK-028: Add exception logging to fire-and-forget asyncio.create_task() Lukas 2026-04-26 15:17:30 +02:00
  • 46fa7c78bc Update tasks documentation Lukas 2026-04-26 15:12:54 +02:00
  • 57eacf39ba fix(security): Remove insecure session secret fallback in compose.debug.yml Lukas 2026-04-26 15:12:10 +02:00
  • df841c21e4 TASK-026: Disable API docs in production, protect with BANGUI_ENABLE_DOCS setting Lukas 2026-04-26 15:09:51 +02:00
  • a768a2d303 TASK-025: Remove HMAC bypass in unwrap_session_token Lukas 2026-04-26 15:02:02 +02:00
  • c2348d7075 Refactor backend architecture and update documentation Lukas 2026-04-26 14:52:23 +02:00
  • a44f1ef35b TASK-023: Make database migrations atomic Lukas 2026-04-26 14:40:27 +02:00
  • 81f009e323 TASK-022: Hash session tokens in database for security Lukas 2026-04-26 14:35:32 +02:00
  • 5709785942 Remove completed TASK-020 from tasks list Lukas 2026-04-26 14:28:30 +02:00
  • ec253d9b7a TASK-021: Implement atomic writes for set_jail_config_enabled and write_jail_config_file Lukas 2026-04-26 14:27:33 +02:00
  • d476e9d611 TASK-020: Fix log_target security vulnerability (defense in depth) Lukas 2026-04-26 14:23:56 +02:00
  • d9022b9d06 Refactor config and add comprehensive tests Lukas 2026-04-26 14:14:35 +02:00
  • 4ceb11a4e3 TASK-018: Make config file writes atomic using write-to-temp + rename Lukas 2026-04-26 14:11:18 +02:00
  • b6e8e3f5ff Clean up unused imports and remove completed task Lukas 2026-04-26 14:08:43 +02:00
  • 667ab674ca Fix SQLite LIKE wildcard escaping in IP filter queries Lukas 2026-04-26 14:07:49 +02:00
  • 94bdabe622 TASK-016: Validate delete_log_path query parameter with allowlist Lukas 2026-04-26 14:04:21 +02:00
  • d66493f135 TASK-015: Add validation for GlobalConfigUpdate.log_target and log_level Lukas 2026-04-26 13:57:22 +02:00
  • b9e046bd66 Update task documentation Lukas 2026-04-26 13:49:52 +02:00
  • 308cf680a7 TASK-014: Add log path validation to prevent arbitrary file access Lukas 2026-04-26 13:49:04 +02:00
  • 2331567bd7 Remove completed TASK-012 from task list Lukas 2026-04-26 13:40:48 +02:00
  • 5d9cef7760 TASK-013: Add nginx security headers (CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) Lukas 2026-04-26 13:35:15 +02:00