Commit Graph

2796 Commits

Author SHA1 Message Date
Christian Krakau-Louis aee2292ab0 Merge pull request #786 from christianlouis/copilot/improve-test-coverage-auth
tests(auth): improve app/auth.py coverage from 70% to 97.7%
2026-03-21 19:16:31 +01:00
Christian Krakau-Louis 9f5d045648 Merge pull request #783 from christianlouis/copilot/improve-test-coverage-audit-logs
test: improve coverage for app/views/audit_logs.py from 61% to 100%
2026-03-21 19:16:12 +01:00
copilot-swe-agent[bot] e5feee5aae feat(tests): improve app/auth.py coverage from 70% to 97.74%
Add tests/test_auth_extended.py with 76 new unit tests covering
previously uncovered paths in app/auth.py:

- get_current_user server-side session validation (valid/invalid/exception)
- _resolve_bearer_user: expiry, IP tracking, fallback paths, exceptions
- get_current_user_id: all fallback paths
- require_login: Bearer token on /api/ endpoints (async, sync, db exception)
- login(): mobile redirect with docuelevate://, exp://, invalid schemes
- social_login(): unknown provider, missing OAuth client, success
- _normalize_social_userinfo(): Dropbox, Google/OIDC, edge cases
- social_callback(): unknown provider, no email, userinfo from endpoint,
  session token exception, mobile redirect, onboarding redirect
- _ensure_user_profile(): admin profile complimentary/tier upgrades
- oauth_callback(): session token, mobile redirect, onboarding redirect
- _record_login_event(): exception swallowing, success/failure events
- _create_mobile_redirect(): no URI, no owner, success, commit exception
- auth() local user: inactive, wrong pw, success, mobile, session exception
- auth() admin: session exception, mobile redirect
- logout(): session revocation, invalid token, revoke exception

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/e3d34af2-17b3-4285-b68d-3b8949764864
2026-03-21 17:47:46 +00:00
copilot-swe-agent[bot] 00e0d5fa45 test: improve coverage for app/views/audit_logs.py from 61% to 100%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/fbdb1e8c-ede3-4574-b0b6-7d5df3496320
2026-03-21 17:24:40 +00:00
copilot-swe-agent[bot] 9241b9df5c Initial plan 2026-03-21 17:15:15 +00:00
copilot-swe-agent[bot] ee007885dd Initial plan 2026-03-21 17:13:54 +00:00
github-actions[bot] 3e6fbb49c4 docs(changelog): update changelog [skip ci] 2026-03-21 16:05:52 +00:00
Christian Krakau-Louis ba5aedcc7b Merge pull request #782 from christianlouis/copilot/improve-test-coverage-files
test: improve app/api/files.py coverage from 63% to 97.81%
2026-03-21 17:05:33 +01:00
copilot-swe-agent[bot] 0a192eeeca test: improve coverage for app/api/files.py from 63% to 97.81%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/08186195-c508-4f71-92f5-37914569ae8e
2026-03-21 15:19:16 +00:00
github-actions[bot] bd26f31778 docs(changelog): update changelog [skip ci] 2026-03-21 15:08:39 +00:00
Christian Krakau-Louis 600ab5fbf2 Merge pull request #781 from christianlouis/copilot/improve-test-coverage-sessions-py
test: improve coverage for app/api/sessions.py (55% → 100%)
2026-03-21 16:08:09 +01:00
Christian Krakau-Louis 350c0d14db Merge pull request #780 from christianlouis/copilot/improve-test-coverage-icloud-upload
test: raise upload_to_icloud coverage from 51% to 100%
2026-03-21 16:07:54 +01:00
Christian Krakau-Louis 11ad9c22cf Merge pull request #779 from christianlouis/copilot/improve-test-coverage-imap-profiles
test: raise imap_profiles coverage from 50% to 100%
2026-03-21 16:07:33 +01:00
copilot-swe-agent[bot] 74a8c22478 test: improve test coverage for app/api/sessions.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/4fb13ab5-c829-4e56-9999-bfca5bc53f4a
2026-03-21 14:58:36 +00:00
copilot-swe-agent[bot] 8cc292c6ee test: improve test coverage for app/api/imap_profiles.py to 100%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/55b54d8d-e154-48fc-bf8d-0d59c48cdd54
2026-03-21 14:53:44 +00:00
copilot-swe-agent[bot] 982c222717 test: improve test coverage for app/tasks/upload_to_icloud.py to 100%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/7d047aa6-a27a-47aa-a75b-4d31440af584
2026-03-21 14:51:11 +00:00
copilot-swe-agent[bot] 2339765866 Initial plan 2026-03-21 14:40:51 +00:00
copilot-swe-agent[bot] 0e09351c01 Initial plan 2026-03-21 14:40:32 +00:00
copilot-swe-agent[bot] 059e092510 Initial plan 2026-03-21 14:40:17 +00:00
copilot-swe-agent[bot] 1a53218a53 Initial plan 2026-03-21 14:39:58 +00:00
github-actions[bot] ae8be68df9 docs(changelog): update changelog [skip ci] 2026-03-21 14:33:38 +00:00
Christian Krakau-Louis 9a94ff62ed Merge pull request #776 from christianlouis/copilot/sub-pr-774-again
test(convert_to_pdfa): lock in `--` end-of-options guard with positional assertions
2026-03-21 15:33:13 +01:00
Christian Krakau-Louis 1e026c2fe9 Merge pull request #775 from christianlouis/copilot/sub-pr-774
test(rclone): assert `--` end-of-options separator position in subprocess command
2026-03-21 15:32:57 +01:00
copilot-swe-agent[bot] 051d763a7e fix: resolve merge conflict with main in test_convert_to_pdfa.py 2026-03-21 14:25:01 +00:00
copilot-swe-agent[bot] d487a60484 chore: merge main into copilot/sub-pr-774 and resolve conflict in test_upload_handlers.py 2026-03-21 14:23:06 +00:00
github-actions[bot] f9b6d93213 chore(release): update build metadata files [skip ci] 2026-03-21 14:21:12 +00:00
semantic-release 690d9d96ca 0.164.0
Automatically generated by python-semantic-release
2026-03-21 14:21:09 +00:00
Christian Krakau-Louis a27a4ce130 Merge pull request #585 from christianlouis/copilot/add-zapier-make-integration
feat: add Zapier and Make.com integration via REST hooks and incoming actions
2026-03-21 15:20:42 +01:00
github-actions[bot] 7da93b5b15 chore(release): update build metadata files [skip ci] 2026-03-21 14:20:33 +00:00
semantic-release 64ee68b1aa 0.163.1
Automatically generated by python-semantic-release
2026-03-21 14:20:31 +00:00
Christian Krakau-Louis 71e1a6fe1c Merge pull request #774 from christianlouis/fix-command-injection-9532322968535721630
🛡️ Sentinel: [HIGH] Fix command injection vulnerability in subprocess calls
2026-03-21 15:20:11 +01:00
Christian Krakau-Louis 167145579f Merge pull request #777 from christianlouis/copilot/sub-pr-774-another-one
test: lock in `--` end-of-options separator for rclone and ocrmypdf subprocess calls
2026-03-21 15:19:15 +01:00
Christian Krakau-Louis 9f8a9b349d Merge pull request #778 from christianlouis/copilot/sub-pr-774-yet-again
fix(api): add missing `import requests` in dropbox.py and onedrive.py
2026-03-21 15:19:04 +01:00
copilot-swe-agent[bot] f1e5ab6ce4 Merge remote-tracking branch 'origin/main' into copilot/add-zapier-make-integration
# Conflicts:
#	app/api/__init__.py
#	app/config.py
#	app/utils/settings_service.py
#	docs/API.md
#	tests/conftest.py
2026-03-21 12:25:50 +00:00
copilot-swe-agent[bot] 81484ad770 test: add -- separator assertions to rclone and ocrmypdf tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/c7ac9d75-d2de-499e-b7e8-8b0f694547f5
2026-03-21 12:23:02 +00:00
copilot-swe-agent[bot] 5b04504b0e test(convert_to_pdfa): assert -- terminates option parsing before file paths
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/5223074c-1ebf-4fc0-bf80-0de8462c16a2
2026-03-21 12:22:34 +00:00
copilot-swe-agent[bot] 9229be88ff test(tasks): assert -- end-of-options separator in rclone command test
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/e1135cc5-b023-4f54-8b62-03b715475b0e
2026-03-21 12:21:32 +00:00
copilot-swe-agent[bot] 35caf24e3c fix(api): add missing import requests in dropbox.py and onedrive.py to fix ruff F821
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/c70c9dfc-6e2f-4ed4-ac51-c901d6f56ffa
2026-03-21 12:21:10 +00:00
google-labs-jules[bot] bc122e351d Fix Ruff missing requests import
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-21 12:21:01 +00:00
copilot-swe-agent[bot] 2f6dbea1ce Initial plan 2026-03-21 12:19:13 +00:00
copilot-swe-agent[bot] 902f109551 Initial plan 2026-03-21 12:18:33 +00:00
Christian Krakau-Louis db88cde66e Update app/tasks/upload_to_user_integration.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-21 13:18:17 +01:00
copilot-swe-agent[bot] ee1810692a Initial plan 2026-03-21 12:18:15 +00:00
copilot-swe-agent[bot] e8de3b3761 Initial plan 2026-03-21 12:17:43 +00:00
google-labs-jules[bot] 0a44b06b6d Fix command injection vulnerability in subprocess calls.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-21 04:00:05 +00:00
copilot-swe-agent[bot] 34ff7f8de8 fix(docs): remove duplicate Further Assistance heading in API.md
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/cb62f012-3b69-4415-835e-3857ce3e9f45
2026-03-20 23:56:52 +00:00
copilot-swe-agent[bot] e518bce922 fix: merge main branch and renumber migration 037→040
Resolve all merge conflicts between our automation feature branch and
current main (v0.163.0, 920 commits ahead).

Conflicts resolved:
- app/api/__init__.py: add automation_router alongside main's new routers
  (classification_rules, qr_auth, sessions, system_reset)
- app/config.py: add main's new settings (dropbox_use_global_credentials,
  factory_reset_on_startup, enable_factory_reset)
- app/models.py: add main's new models (ClassificationRuleModel, UserSession,
  QRLoginChallenge, SharePoint integration type)
- app/utils/settings_service.py: merge automation_hooks_enabled with main's
  new metadata entries
- docs/API.md: merge automation API docs with main's classification rules docs
- docs/ConfigurationGuide.md: add factory reset settings
- tests/conftest.py: import both AutomationHook and new main models

Migration renumbered:
- 037_add_automation_hooks → 040_add_automation_hooks
- down_revision: 039_add_classification_rules (was 036_add_document_translation_fields)
- Chain: 036 → 037 → 038 → 039 → 040 (automation hooks)

For all non-automation files with conflicts, main's version was taken since
our branch did not modify those files (conflicts were from a stale prior merge).

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/cb62f012-3b69-4415-835e-3857ce3e9f45
2026-03-20 23:54:04 +00:00
github-actions[bot] b70341a062 chore(release): update build metadata files [skip ci] 2026-03-20 23:38:10 +00:00
semantic-release 5b2d51f647 0.163.0
Automatically generated by python-semantic-release
2026-03-20 23:38:08 +00:00
Christian Krakau-Louis 6f5a73f98a Merge pull request #586 from christianlouis/copilot/fix-watch-folder-settings
feat(integrations): simplify OAuth watch folder setup with system credentials and folder browser
2026-03-21 00:37:49 +01:00