Skip to content

fix: severity URL param, API validation, and json.loads guard - #56

Merged
reloadfast merged 3 commits into
mainfrom
feat/bugs-46-47-48
Feb 28, 2026
Merged

reloadfast merged 3 commits into
mainfrom
feat/bugs-46-47-48

Conversation

@reloadfast

Copy link
Copy Markdown
Owner

Closes #46, Closes #47, Closes #48

reloadfast and others added 3 commits February 28, 2026 19:41
…#48)

#46 — RisksPage reads initial severity filter from URL search params:
- Import useSearchParams from react-router-dom
- Initialise sevFilter from ?severity= query param on mount
- Validate against SEVERITIES allowlist to prevent invalid state
- Navigating to /risks?severity=critical now pre-filters the list

#47 — Validate severity query param in /api/risks:
- Change severity param type from str|None to Literal[critical|high|medium|low]|None
- FastAPI/Pydantic now returns 422 on invalid values instead of silent empty list

#48 — Guard json.loads in recommendations endpoint:
- Add _safe_load_steps() helper that wraps json.loads in try/except
- Empty/falsy steps returns [] gracefully
- Malformed JSON logs a warning and returns [] instead of 500
- Added logging import alongside existing json import
- Tests: 422 on invalid severity, malformed steps returns [], empty steps returns []

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Sort deferred imports (app before sqlalchemy) to satisfy I001
- Replace __import__('sqlalchemy') with explicit import to satisfy E501

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@reloadfast
reloadfast merged commit 780e808 into main Feb 28, 2026
5 checks passed
@reloadfast
reloadfast deleted the feat/bugs-46-47-48 branch February 28, 2026 18:49
@reloadfast
reloadfast restored the feat/bugs-46-47-48 branch March 26, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant