01f2e07921
Extract shared raw config file helpers and simplify raw_config_io_service
2026-04-18 20:18:54 +02:00
c1f188643c
Move geo cache commit handling into repository layer
2026-04-18 20:10:05 +02:00
52e08e17a4
Guard geo_service.init_geoip against repeated initialization
2026-04-18 19:54:05 +02:00
db5b4cb77e
Add settings and history archive repository protocols and DI support
2026-04-17 20:54:08 +02:00
7055971163
Harden preview_log path validation and add regression test
2026-04-17 20:37:14 +02:00
4754f1407e
Mark task 19 done and centralize map-color thresholds in settings_service
2026-04-17 17:04:09 +02:00
1e2850a34e
Add async lock protection to geo service cache and mark Task 16 done
2026-04-17 16:51:05 +02:00
900d111a5d
Refactor geo enrichment into jail_service and mark Task 14 done
2026-04-17 16:36:22 +02:00
487f252a4d
Move history geo enrichment into history service
2026-04-17 16:28:53 +02:00
8c6950afc1
Task 13: move ban_ip, unban_ip, and get_active_bans from jail_service to ban_service and update routers/tests
2026-04-17 16:22:20 +02:00
74ff4cb4b8
Remove repository import from setup_utils and move password-hash helper to setup service
2026-04-17 15:38:41 +02:00
58112fb191
Move auth session signing into auth_service.login
2026-04-17 15:33:09 +02:00
33643880ed
Extract fail2ban restart orchestration into jail_service
2026-04-17 15:23:54 +02:00
c21cf82e9e
Refactor map color threshold storage into dedicated settings service
2026-04-17 15:13:07 +02:00
73cc212e28
Invert blocklist scheduler dependency to task callback
2026-04-15 21:31:08 +02:00
56f03f39c7
Move history archive max timestamp query into repository
2026-04-15 21:18:44 +02:00
cdb0c3681e
Task 3: remove config_file_service facade, update direct imports and tests
2026-04-15 21:16:00 +02:00
0e22d1c425
Move config file exceptions into app.exceptions
...
Move ConfigDirError, ConfigFileNotFoundError, ConfigFileExistsError, ConfigFileWriteError, and ConfigFileNameError from raw_config_io_service into the shared domain exception module. Update router and tests to import the exceptions from app.exceptions.
2026-04-15 10:28:27 +02:00
a79f5339bc
Refactor fail2ban DB path lookup and simplify geo router response
2026-04-15 09:15:50 +02:00
56c511d905
Fix module-level asyncio locks in jail_service
...
Initialize jail_service locks lazily to avoid import-time event loop binding and add regression tests for lock creation.
2026-04-15 09:10:38 +02:00
a8f2d2d7b9
Refactor geo re-resolve endpoint into geo_service and add typed response
2026-04-15 08:56:37 +02:00
2451ec77b2
Refactor config file service facade wrappers and mark TASK-06 complete in Docs/Tasks.md
2026-04-15 08:25:12 +02:00
b70dc6fa7a
Refactor blocklist schedule management into service
2026-04-14 15:25:36 +02:00
58bb769a35
Refactor history sync into history_service and update docs/tests
2026-04-14 15:09:58 +02:00
86fa271c40
Remove FastAPI dependency from jail config service signatures
2026-04-14 15:01:05 +02:00
41f8c1f6cb
Remove task import from jail_config_service and mark TASK-03 done
2026-04-14 14:38:43 +02:00
2a7766d206
Wrap blocking mkdir() calls in run_blocking for async startup and setup
2026-04-14 13:54:47 +02:00
09c764cebc
Task 25: extend service/repository protocol coverage and wire DI aliases
2026-04-14 12:32:42 +02:00
b1fba79a2e
Remove unused asyncio import from log_service
...
Clean log_service.py by deleting the unused asyncio import and mark Task 24 completed in Docs/Tasks.md.
2026-04-14 12:19:35 +02:00
5379cca238
Remove unused asyncio import from auth_service
2026-04-14 10:37:28 +02:00
cee5372690
Add backend capability cache reset helper for jail service tests
2026-04-14 10:24:14 +02:00
21eabb1f0f
Resolve Task 10 by moving history_archive_repo imports to ban_service top-level
2026-04-14 09:25:23 +02:00
a564830abb
Fix blocklist service injection and centralize session cookie name
2026-04-14 09:21:38 +02:00
5a9d226cca
Consolidate fail2ban truthy values into shared constants
2026-04-14 09:03:49 +02:00
b4959133dd
Task 5: finalize config_file_service wrapper refactor and mark task done
2026-04-14 08:51:01 +02:00
37646e57f7
Remove helper indirection and import shared service helpers directly
2026-04-14 07:56:59 +02:00
a5674f9e4c
Consolidate domain exceptions into app.exceptions
...
Move all shared domain exception classes to backend/app/exceptions.py and update services/routers to import the canonical exceptions. Update docs to reflect the shared exceptions source.
2026-04-13 19:35:12 +02:00
4b2e86edbb
Fix filter_config router import and mark Task 3 complete
2026-04-13 19:10:24 +02:00
5957d851b5
Fix stale run_blocking call sites in log preview and config services
2026-04-12 20:34:35 +02:00
8e43ef9ad2
Fix setup_service to mark setup_complete only after successful runtime DB init
2026-04-12 20:30:22 +02:00
72488b14b2
Centralize fail2ban metadata resolution and cache DB path discovery
2026-04-12 19:48:33 +02:00
ffe7ada469
Consolidate setup persistence into bootstrap metadata and runtime DB
2026-04-11 20:57:55 +02:00
cd69550053
Standardize async offloading behind shared executor helper
2026-04-11 20:40:08 +02:00
952469e667
Task 7 complete: move config operational orchestration from routers into service/task layer
2026-04-10 21:24:54 +02:00
f61d497e4e
Refactor backend auth, setup, router, and runtime state handling
2026-04-10 21:00:36 +02:00
3371ff8324
Introduce service/repository dependency protocols and tests
2026-04-10 19:51:19 +02:00
148756fb79
Finish external HTTP client resilience: add shared aiohttp config, retry support, and update task status
2026-04-09 22:01:11 +02:00
208f98dc97
Use session_secret for signed auth session tokens
2026-04-09 21:30:08 +02:00
6eab47f7ba
Fix setup persistence and load persisted runtime configuration
2026-04-07 21:41:55 +02:00
1e39e5a1d6
Refactor app helpers and use AppStateDep in config router
...
Move service-dependent helper wrappers from app.utils to app.helpers and update config router activation/rollback to use explicit AppState dependency.
2026-04-07 20:39:56 +02:00