Commit Graph

234 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] c54cbcbdd6 feat(auth): implement CSRF token protection for state-changing operations
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-22 16:27:37 +00:00
github-actions[bot] 8f1abf8cdd style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-22 16:12:58 +00:00
copilot-swe-agent[bot] 3035802c16 feat(security): add comprehensive input validation and sanitization (#172)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-22 16:02:00 +00:00
github-actions[bot] 77e777418c style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-22 15:25:48 +00:00
copilot-swe-agent[bot] ca27a0b687 feat(security): add request size limits to API endpoints
- Add RequestSizeLimitMiddleware that checks Content-Length header
  before request body is read: non-multipart requests capped at
  MAX_REQUEST_BODY_SIZE (default 1 MB), multipart uploads capped at
  MAX_UPLOAD_SIZE (default 1 GB). Returns HTTP 413 on violation.
- Register middleware in app/main.py
- Add max_request_body_size setting to app/config.py
- Fix ui_upload in files.py to check Content-Length early and read
  in 64 KB chunks (bounded memory usage), removing the post-write
  os.path.getsize check
- Document MAX_REQUEST_BODY_SIZE in .env.demo and ConfigurationGuide.md
- Mark SECURITY_AUDIT.md item #4 as resolved
- Add 9 tests in test_request_size_limit.py
- Update test_upload_file_too_large to use patch.object instead of
  the now-unused os.path.getsize mock

Closes #173

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-22 14:41:04 +00:00
github-actions[bot] bdf0afd9bf style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-22 14:24:27 +00:00
copilot-swe-agent[bot] ca6a3beb3f feat(security): add request/audit logging with sensitive data masking (#170)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-21 21:21:29 +00:00
copilot-swe-agent[bot] 895585c1e8 fix(ci): lint errors, remove webhook deploy, add ArgoCD GitOps k8s manifest update
- Fix ruff format: add blank line before nested function in app/views/filemanager.py
- Fix ruff format: use double-quote escaping in tests/test_config.py
- Remove deploy job (Portainer webhook) from ci.yml
- Add update-k8s-manifest job: after main-branch build, updates
  apps/docuelevate/preprod/docuelevate-stack.yaml in christianlouis/k8s-cluster-state
  with the new GHCR image tag (ghcr.io/christianlouis/docuelevate:main-<short-sha>)
  using mikefarah/yq@v4.44.6 and GH_PAT secret for cross-repo write access

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-21 09:40:52 +00:00
copilot-swe-agent[bot] 48443dc30a fix(config): strip outer quotes from env var string values (Kubernetes compatibility)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-21 09:23:39 +00:00
copilot-swe-agent[bot] e3cc489975 fix(test): fix test_get_lgpl_license_not_found JSONDecodeError
The test had two issues:
1. Too-broad mock: patching pathlib.Path.exists globally broke
   Starlette/FastAPI internals. Now targets the specific module.
2. Wrong assertion: response.json() failed because the custom
   HTTPException handler returns HTML for non-API routes, not JSON.
   Updated to only assert on status code.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-17 12:01:40 +00:00
copilot-swe-agent[bot] 13a3c41482 fix: make log_task_progress resilient to DB errors and fix test assertions
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-17 11:40:34 +00:00
copilot-swe-agent[bot] 3d3d68f7a7 fix(tests): mock log_task_progress in S3 upload tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-17 04:35:00 +00:00
copilot-swe-agent[bot] 9b548cc500 fix: Apply ruff format to test_send_to_all.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 20:40:44 +00:00
copilot-swe-agent[bot] 671b6885e4 fix: add missing mocks to test_send_to_all.py tests to avoid Redis connection issues
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 18:08:02 +00:00
copilot-swe-agent[bot] ae8a75489a Fix ruff W293 error - remove whitespace from blank line
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 17:23:28 +00:00
copilot-swe-agent[bot] f2eff3e2fb fix: return boolean values from _should_upload functions and fix test expectations
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 16:59:17 +00:00
copilot-swe-agent[bot] 44a757200b fix: correct notification test to handle keyword args and actual file size formatting
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:56:19 +00:00
copilot-swe-agent[bot] 939c456f2f fix: provide required fields when creating FileRecord in test
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:54:13 +00:00
copilot-swe-agent[bot] 108281c6d5 test: skip tests for non-existent wrapper functions in settings_service
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:47:20 +00:00
copilot-swe-agent[bot] 40019a657a fix: correct patch paths in config loader tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:45:28 +00:00
copilot-swe-agent[bot] feca138579 fix: correct patch paths in config validator tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:37:22 +00:00
copilot-swe-agent[bot] 93e003dfcd fix: correct patch paths and assertions in OpenAI tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:35:45 +00:00
copilot-swe-agent[bot] 533bb8047e fix: correct patch paths and assertions in diagnostic tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-16 15:34:36 +00:00
copilot-swe-agent[bot] 89bfbbef8f docs: clarify behavior of extract_remote_path with multiple 'processed' dirs
Added detailed docstring explaining that the function only removes the first
occurrence of 'processed' from the path, not all occurrences. This documents
the current implementation behavior.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-15 10:28:44 +00:00
copilot-swe-agent[bot] 53d77d781d fix: correct test assertion for extract_remote_path
The function only removes the first occurrence of 'processed' from path,
not all occurrences. Updated test assertion to match actual behavior.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-15 10:27:19 +00:00
copilot-swe-agent[bot] e24f83fdd0 fix: resolve 48 lint errors in test files
- Remove whitespace from 22 blank lines (W293)
- Remove 6 unused imports (F401): os, Mock, MagicMock, Path
- Add missing imports for 12 test functions (F821): sanitize_filename, extract_remote_path, MagicMock
- Fix 1 unsorted import block (I001)

All ruff checks now pass successfully.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-15 10:24:48 +00:00
copilot-swe-agent[bot] ee6f7e1b30 fix: move imports to module level per code review feedback
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:40:09 +00:00
copilot-swe-agent[bot] 152b4fad17 test: add comprehensive edge case tests for settings_service module
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:39:02 +00:00
copilot-swe-agent[bot] 80a645895a test: add comprehensive edge case tests for validators, file_status, file_splitting, and filename_utils
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:37:32 +00:00
copilot-swe-agent[bot] 8460249ee1 test: add comprehensive tests for IMAP, OpenAI, send_to_all, config_loader, and diagnostic APIs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:34:34 +00:00
copilot-swe-agent[bot] 1be3f1254b test: add comprehensive tests for license_routes, database migrations, SFTP, S3, and notifications
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:30:52 +00:00
Christian Krakau-Louis 4590d3cf4e Merge pull request #318 from christianlouis/copilot/increase-test-coverage-upload-status
test: Increase coverage for upload_to_google_drive and status modules to 90%+
2026-02-14 01:19:22 +01:00
Christian Krakau-Louis a8767599e7 Merge pull request #319 from christianlouis/copilot/increase-test-coverage-dropbox-auth
test: increase coverage for dropbox.py and auth.py to >90%
2026-02-14 01:18:55 +01:00
Christian Krakau-Louis cc19063c8b Merge branch 'main' into copilot/increase-test-coverage-url-upload-files 2026-02-14 01:18:08 +01:00
github-actions[bot] 40eb4e43cd style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-14 00:17:16 +00:00
Christian Krakau-Louis b672a93fca Merge branch 'main' into copilot/increase-test-coverage-settings-and-drive 2026-02-14 01:17:01 +01:00
github-actions[bot] e84c031538 style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-14 00:16:21 +00:00
Christian Krakau-Louis 992e420556 Merge branch 'main' into copilot/increase-test-coverage-process-document 2026-02-14 01:16:05 +01:00
Christian Krakau-Louis 2336aac610 Merge branch 'main' into copilot/increase-test-coverage-encryption-main 2026-02-14 01:15:03 +01:00
Christian Krakau-Louis f0dba98903 Merge pull request #324 from christianlouis/copilot/increase-test-coverage-utils-and-tasks
test: Increase coverage for imap_tasks.py (48% → 98%) and resolve config_validator.py shadowing
2026-02-14 01:13:10 +01:00
github-actions[bot] d0e85d0690 style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-14 00:12:30 +00:00
Christian Krakau-Louis 6d61aee464 Merge pull request #322 from christianlouis/copilot/increase-test-coverage-gpt-file-splitter
test: increase coverage for extract_metadata_with_gpt.py and file_splitting.py to 90%+
2026-02-14 01:11:54 +01:00
Christian Krakau-Louis 079b002dfb Merge branch 'main' into copilot/increase-test-coverage-files-process 2026-02-14 01:10:23 +01:00
copilot-swe-agent[bot] 30eae59e3d feat(tests): Add comprehensive tests for encryption.py and main.py, achieve 100% and 91.75% coverage
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:09:07 +00:00
copilot-swe-agent[bot] 6defc8ea7a test: improve client initialization test assertion based on code review feedback
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:06:55 +00:00
Christian Krakau-Louis 60a2a59266 Merge pull request #325 from christianlouis/copilot/increase-test-coverage-logging-azure
Increase test coverage for logging and Azure API modules to 100%
2026-02-14 01:06:33 +01:00
github-actions[bot] fc515ebb70 style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-14 00:05:57 +00:00
Christian Krakau-Louis 2f400fc2ec Merge pull request #327 from christianlouis/copilot/increase-test-coverage
test: increase coverage for wizard.py and upload_to_nextcloud.py to 98%+
2026-02-14 01:05:09 +01:00
copilot-swe-agent[bot] 4903260496 style: fix trailing whitespace in test_file_splitting.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:04:26 +00:00
copilot-swe-agent[bot] f775cf740e test: increase coverage for file_splitting.py to 100% and maintain extract_metadata_with_gpt.py at 92.31%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-14 00:02:40 +00:00