feat: action config service, router endpoints, and full test coverage (Tasks 3.1, 3.2, 3.4)
- ActionConfig extended with active, used_by_jails, source_file, has_local_override
- New models: ActionListResponse, ActionUpdateRequest, ActionCreateRequest, AssignActionRequest
- New service functions: list_actions, get_action, update_action, create_action, delete_action, assign_action_to_jail, remove_action_from_jail
- New error classes: ActionNotFoundError, ActionAlreadyExistsError, ActionReadonlyError, ActionNameError
- New router endpoints: GET/PUT/POST/DELETE /api/config/actions, POST/DELETE /api/config/jails/{name}/action
- Service + router tests: 290 tests passing, mypy strict clean, ruff clean
This commit is contained in:
@@ -208,7 +208,7 @@ fail2ban ships with a large collection of filter definitions in `filter.d/` (ove
|
||||
|
||||
fail2ban ships with many action definitions in `action.d/` (iptables, firewalld, cloudflare, sendmail, etc.). Users need to see all available actions, understand which are in use, and assign them to jails.
|
||||
|
||||
### Task 3.1 — Backend: List All Available Actions with Active/Inactive Status
|
||||
### Task 3.1 — Backend: List All Available Actions with Active/Inactive Status ✅ DONE
|
||||
|
||||
**Goal:** Enumerate all action config files and mark each as active or inactive based on jail usage.
|
||||
|
||||
@@ -231,7 +231,7 @@ fail2ban ships with many action definitions in `action.d/` (iptables, firewalld,
|
||||
|
||||
---
|
||||
|
||||
### Task 3.2 — Backend: Activate and Edit Actions
|
||||
### Task 3.2 — Backend: Activate and Edit Actions ✅ DONE
|
||||
|
||||
**Goal:** Allow users to assign actions to jails, edit action definitions, and create new actions.
|
||||
|
||||
@@ -281,7 +281,7 @@ fail2ban ships with many action definitions in `action.d/` (iptables, firewalld,
|
||||
|
||||
---
|
||||
|
||||
### Task 3.4 — Tests: Action Discovery and Management
|
||||
### Task 3.4 — Tests: Action Discovery and Management ✅ DONE
|
||||
|
||||
**Goal:** Test coverage for action listing, editing, creation, and assignment.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user