v6.2.3
Added
- Dependabot configuration — Automated dependency updates for pip (weekly), GitHub Actions (monthly), and Docker base images (weekly). Groups minor/patch updates, ignores major bumps.
- Ruff linter and formatter — Configured in
pyproject.tomlwith CI workflow. Replaces flake8/black/isort with a single fast tool. Entire codebase auto-formatted. - Pre-commit hooks —
.pre-commit-config.yamlwith Ruff + standard hooks (check-yaml, trailing-whitespace, etc.). - CodeQL security scanning — Weekly SAST analysis plus on every PR.
- SECURITY.md — Responsible disclosure policy with supported versions and scope.
- CONTRIBUTING.md — Developer setup guide, branch naming, commit conventions, and testing instructions.
- PR template — Checklists for type of change, database changes, data consistency, testing, and security.
- CODEOWNERS — Routes all PR reviews to @GeiserX.
.editorconfig— Consistent formatting across editors (UTF-8, LF, Python 4-space, YAML 2-space).- Content-Security-Policy headers — CSP, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy on all responses.
CORS_ORIGINSenvironment variable — Configure allowed CORS origins (default:*without credentials).SECURE_COOKIESenvironment variable — Controlsecureflag on auth cookie (default:true; setfalsefor local HTTP development).
Fixed
- CORS misconfiguration — Removed
allow_credentials=Truewhen using wildcard origins (browser security requirement). Restricted allowed methods to GET/POST. /internal/pushaccess control — Endpoint now enforces private IP allowlist (loopback + RFC 1918 ranges) instead of silently allowing all requests.- Auth cookie missing
secureflag — Cookie now setssecure=Trueby default, preventing transmission over plain HTTP.
Changed
- Docker Compose security hardening — Both services now use
read_only: true,cap_drop: [ALL],security_opt: [no-new-privileges:true], andtmpfs: [/tmp]. Viewer volume mounted read-only. - GitHub Actions bumped —
docker/build-push-actionv5→v6,codecov/codecov-actionv4→v5. - Removed
.cursor/rules/project.mdc— Redundant withAGENTS.mdwhich is the single source of truth for AI assistant configuration.
📋 Full changelog: docs/CHANGELOG.md