copilot-swe-agent[bot]
0287a165cf
docs(auth): update documentation for new auth providers and connections page
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/51d9bb59-d4b5-4713-9a4a-8acfc599e2cc
2026-03-22 12:44:05 +00:00
copilot-swe-agent[bot]
840a5bcd5b
fix(auth): fix SSO auto-login check to use strict boolean comparison and add tests
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/51d9bb59-d4b5-4713-9a4a-8acfc599e2cc
2026-03-22 12:41:57 +00:00
copilot-swe-agent[bot]
54a0ba1023
feat(auth): add GitHub, Keycloak, Generic OAuth2 social login providers and connections page
...
- Fix Dropbox social login: add token_access_type=offline and userinfo compliance fix
- Add GitHub social login provider with OAuth2 registration and userinfo normalization
- Add Keycloak SSO provider with OpenID Connect discovery
- Add Generic OAuth2 provider for custom SSO integrations
- Add SAML2 SSO config fields (config only, no flow implementation)
- Add SSO auto-login: redirect directly to SSO when configured
- Add Telegram bot notification config fields
- Add admin Connections page for managing auth providers and integrations
- Add navigation links and translation keys for connections page
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-22 12:26:06 +00:00
copilot-swe-agent[bot]
2ca015b38c
Initial plan
2026-03-22 12:07:57 +00:00
github-actions[bot]
b737b83811
chore(release): update build metadata files [skip ci]
2026-03-22 10:10:42 +00:00
semantic-release
12fa6fefe9
0.166.0
...
Automatically generated by python-semantic-release
2026-03-22 10:10:40 +00:00
Christian Krakau-Louis
f3abe87d85
Merge pull request #788 from christianlouis/sentinel/fix-b310-urllib-httpx-11046306234862582289
...
🛡️ Sentinel: [MEDIUM] Fix B310 Vulnerability - Use httpx instead of urllib.request
2026-03-22 11:10:21 +01:00
Christian Krakau-Louis
b1aa09c28d
Merge pull request #787 from christianlouis/copilot/add-document-comments-annotations
...
feat: add document comments and annotations
2026-03-22 11:10:03 +01:00
google-labs-jules[bot]
d89f18edd8
Security: Replace urllib.request with httpx in WebDAV testing
...
The `_test_webdav_connection` function previously used `urllib.request.urlopen`
to verify connection credentials. This triggers a Bandit B310 warning because
`urllib` supports multiple schemes (like file://, ftp://) and implicitly follows
redirects.
Although scheme checking and a basic `is_private_ip` validation were implemented,
using `urllib.request` remains risky because a public URL could return an
HTTP redirect to a private IP (e.g., 127.0.0.1) which `urllib` would blindly follow,
causing an SSRF (Server-Side Request Forgery) bypass.
This commit replaces `urllib.request` with `httpx.request` using explicitly
`follow_redirects=False`. This eliminates the B310 vulnerability, ensures
requests only hit the specified URL without following potentially malicious
redirects, and standardizes the application on `httpx` for safer HTTP connections.
In addition to fixing the vulnerability, test coverage is added for the
new WebDAV connections logic.
CI issues (missing imports / unformatted code) are resolved.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-22 05:02:06 +00:00
github-actions[bot]
8f0905033c
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-03-22 04:57:41 +00:00
google-labs-jules[bot]
cb0fe93812
Security: Replace urllib.request with httpx in WebDAV testing
...
The `_test_webdav_connection` function previously used `urllib.request.urlopen`
to verify connection credentials. This triggers a Bandit B310 warning because
`urllib` supports multiple schemes (like file://, ftp://) and implicitly follows
redirects.
Although scheme checking and a basic `is_private_ip` validation were implemented,
using `urllib.request` remains risky because a public URL could return an
HTTP redirect to a private IP (e.g., 127.0.0.1) which `urllib` would blindly follow,
causing an SSRF (Server-Side Request Forgery) bypass.
This commit replaces `urllib.request` with `httpx.request` using explicitly
`follow_redirects=False`. This eliminates the B310 vulnerability, ensures
requests only hit the specified URL without following potentially malicious
redirects, and standardizes the application on `httpx` for safer HTTP connections.
In addition to fixing the vulnerability, test coverage is added for the
new WebDAV connections logic.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-22 04:57:26 +00:00
google-labs-jules[bot]
b5ed16c1c8
Security: Replace urllib.request with httpx in WebDAV testing
...
The `_test_webdav_connection` function previously used `urllib.request.urlopen`
to verify connection credentials. This triggers a Bandit B310 warning because
`urllib` supports multiple schemes (like file://, ftp://) and implicitly follows
redirects.
Although scheme checking and a basic `is_private_ip` validation were implemented,
using `urllib.request` remains risky because a public URL could return an
HTTP redirect to a private IP (e.g., 127.0.0.1) which `urllib` would blindly follow,
causing an SSRF (Server-Side Request Forgery) bypass.
This commit replaces `urllib.request` with `httpx.request` using explicitly
`follow_redirects=False`. This eliminates the B310 vulnerability, ensures
requests only hit the specified URL without following potentially malicious
redirects, and standardizes the application on `httpx` for safer HTTP connections.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-22 03:58:07 +00:00
copilot-swe-agent[bot]
a5a8cd94c9
fix(ui): address code review feedback for comments/annotations UX
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/20bbea80-fdfd-42d2-b0c2-756ca25b240b
2026-03-21 21:58:12 +00:00
copilot-swe-agent[bot]
a7a88218c3
feat(ui): add comments and annotations UX to file detail page
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/20bbea80-fdfd-42d2-b0c2-756ca25b240b
2026-03-21 21:45:24 +00:00
copilot-swe-agent[bot]
4b6412734b
fix(comments): address code review feedback
...
- Add onupdate=sa.func.now() to migration updated_at columns
- Use UserProfile.is_blocked.is_(False) instead of == False
- Fix British to American spelling (organised → organized)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/3894af37-0f19-457b-8811-f1feb18b17ef
2026-03-21 18:30:05 +00:00
copilot-swe-agent[bot]
ad795e200a
feat(comments): add document comments, annotations, and @mention support
...
- Add DocumentComment and DocumentAnnotation models to app/models.py
- Create migration 041_add_document_comments_and_annotations
- Add API endpoints for CRUD operations on comments and annotations
- Add threaded comment support with parent_id relationships
- Add @mention extraction from comment body text
- Add resolve/unresolve comment thread endpoint
- Add mentionable users endpoint (GET /api/users/mentionable)
- Add 43 unit tests covering all endpoints and edge cases
- Add 29 i18n translation keys to en.json
- Update API documentation in docs/API.md
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/3894af37-0f19-457b-8811-f1feb18b17ef
2026-03-21 18:28:01 +00:00
github-actions[bot]
c22bb66c4b
docs(changelog): update changelog [skip ci]
2026-03-21 18:18:20 +00:00
copilot-swe-agent[bot]
30a124d85b
Initial plan
2026-03-21 18:18:19 +00:00
Christian Krakau-Louis
4d85b8d03a
Merge pull request #784 from christianlouis/copilot/improve-code-coverage-imap-tasks
...
test(imap): improve coverage for imap_tasks.py to 100%
2026-03-21 19:17:29 +01:00
Christian Krakau-Louis
de7b9ec7cf
Merge pull request #785 from christianlouis/copilot/improve-test-coverage-setup-wizard
...
Improve test coverage for app/utils/setup_wizard.py
2026-03-21 19:17:16 +01:00
github-actions[bot]
bb92b592dd
chore(release): update build metadata files [skip ci]
2026-03-21 18:16:52 +00:00
semantic-release
bab963ecff
0.165.0
...
Automatically generated by python-semantic-release
2026-03-21 18:16:50 +00:00
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]
49cd41e2e4
test: improve test coverage for app/utils/setup_wizard.py
...
Expand test suite from 13 to 36 tests while maintaining 100% coverage.
Add edge case tests for each placeholder value, setting metadata
validation, step content verification, and exception handling.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/590410bf-fce9-4abf-bea0-c6c80864e36a
2026-03-21 17:26:17 +00:00
copilot-swe-agent[bot]
9dc1000d63
test(imap): improve coverage for imap_tasks.py from 64% to 100%
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/cdcfcfd2-9b63-4d96-8be2-e8ce62100647
2026-03-21 17:26:08 +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]
918005d26b
Initial plan
2026-03-21 17:14:54 +00:00
copilot-swe-agent[bot]
094542e5b1
Initial plan
2026-03-21 17:14:25 +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