Skip to content

View Logs, path filter, and bugfixes (v2.6.2)#44

Merged
ttlequals0 merged 6 commits intomainfrom
feature/view-logs-and-path-filter
Mar 20, 2026
Merged

View Logs, path filter, and bugfixes (v2.6.2)#44
ttlequals0 merged 6 commits intomainfrom
feature/view-logs-and-path-filter

Conversation

@ttlequals0
Copy link
Copy Markdown
Owner

@ttlequals0 ttlequals0 commented Mar 20, 2026

Summary

  • View Logs page with persistent log storage, filtering, and download
  • Path filter on scan results page
  • Fix app_configs seed data NotNullViolation on startup
  • Fix log download 500 error (missing stream_with_context)
  • Fix scan logs missing from Job Run dropdown (celery worker fork)
  • Add rate limit to /api/logs/runs
  • Restrict purge endpoint to documented filters only
  • 47 new tests for View Logs feature

Version

2.6.2

Test plan

  • All 298 tests pass (251 existing + 47 new)
  • Docker image built and pushed (ttlequals0/pixelprobe:2.6.2 + latest)
  • Verified image tags on Docker Hub

Add persistent log storage in PostgreSQL with background-threaded
DatabaseLogHandler, log API endpoints with filtering/pagination/download/
purge, and a frontend log viewer modal with live polling. Add path
dropdown filter on scan results page backed by configured SCAN_PATHS.

New files: log_routes.py, log_handler.py, log_context.py
New models: LogEntry, AppConfig
New migration: v2.6.0 (log_entries + app_configs tables)
Add server_default=func.now() to AppConfig timestamp columns and
ALTER TABLE SET DEFAULT in migration for existing deployments.
@ttlequals0 ttlequals0 changed the title View Logs page and path filter (v2.6.0) View Logs page, path filter, and seed data fix (v2.6.1) Mar 20, 2026
…lters, add 47 tests (v2.6.1)

- Fix streaming generator losing Flask app context on /api/logs/download
  (stream_with_context)
- Add missing rate limit to /api/logs/runs endpoint
- Restrict purge to documented filters only (scan_id, before, level)
- Add 47 tests covering log models, context vars, handler, API routes,
  path filter, and log cleanup
- Register log_bp in test conftest
- Fix missing newline at EOF in mobile.css
DatabaseLogHandler background writer thread does not survive fork()
into Celery worker child processes. Added worker_process_init signal
handler in celery_config.py to create a fresh handler per child.
@ttlequals0 ttlequals0 changed the title View Logs page, path filter, and seed data fix (v2.6.1) View Logs, path filter, and bugfixes (v2.6.2) Mar 20, 2026
@ttlequals0 ttlequals0 merged commit f45ebd6 into main Mar 20, 2026
6 checks passed
@ttlequals0 ttlequals0 deleted the feature/view-logs-and-path-filter branch March 20, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant