Commit Graph

3060 Commits

Author SHA1 Message Date
Christian Krakau-Louis 1ca7f562ef fix: register Evernote task settings 2026-05-22 22:11:26 +02:00
github-actions[bot] 3bccbf883d chore(release): update build metadata files [skip ci] 2026-05-22 10:14:16 +00:00
semantic-release b788b553c0 0.173.0
Automatically generated by python-semantic-release
2026-05-22 10:14:12 +00:00
Christian Krakau-Louis 4b46c4baf8 feat(storage): add Evernote destination (#862)
* feat(storage): add Evernote destination

* 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>

---------

Co-authored-by: Christian Krakau-Louis <christian@Christians-Mac-mini-7.local>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-22 12:13:46 +02:00
github-actions[bot] 8e744c076d chore(release): update build metadata files [skip ci] 2026-05-17 14:20:12 +00:00
semantic-release cc494c6937 0.172.12
Automatically generated by python-semantic-release
2026-05-17 14:20:08 +00:00
Christian Krakau-Louis e2fa96318f 🛡️ Sentinel: [HIGH] Fix SSRF in webhook delivery (#846)
* fix: validate webhook targets before delivery

* test: cover webhook SSRF validation
2026-05-17 16:19:41 +02:00
github-actions[bot] 416c3c4758 chore(release): update build metadata files [skip ci] 2026-05-17 14:07:02 +00:00
semantic-release 1c7ef28c5d 0.172.11
Automatically generated by python-semantic-release
2026-05-17 14:06:59 +00:00
Christian Krakau-Louis 1a0218799b fix: escape search result template values (#853) 2026-05-17 16:06:39 +02:00
github-actions[bot] 048f28a671 docs(changelog): update changelog [skip ci] 2026-05-17 13:45:16 +00:00
dependabot[bot] b818f07c80 Update setuptools build requirement (#847)
Co-authored-by: Christian Krakau-Louis <christianlouis@gmail.com>
2026-05-17 15:44:52 +02:00
github-actions[bot] 06507ed8bf chore(release): update build metadata files [skip ci] 2026-05-17 12:40:24 +00:00
semantic-release 044a9a86d6 0.172.10
Automatically generated by python-semantic-release
2026-05-17 12:40:21 +00:00
Christian Krakau-Louis 62d4ca6367 Merge pull request #860 from christianlouis/fix-httpx-asyncclient-syntax-error-15225710494108486471
Fix SyntaxError caused by duplicate `event_hooks` in `httpx.AsyncClient` instantiation
2026-05-17 14:39:59 +02:00
Christian Krakau-Louis 871f788f0b fix(url-upload): handle unsafe redirects as client errors 2026-05-17 13:12:55 +02:00
google-labs-jules[bot] 18f5596b01 Fix SyntaxError caused by duplicate event_hooks in httpx.AsyncClient instantiation
Combined duplicated `event_hooks` keyword arguments into a single dictionary parameter with both `validate_redirect` and `verify_redirect` in `app/api/url_upload.py`. This fixes a `SyntaxError: keyword argument repeated: event_hooks` and ensures that all redirect validations run.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-05-17 03:01:11 +00:00
google-labs-jules[bot] afb8b367ee Fix SyntaxError caused by duplicate event_hooks in httpx.AsyncClient instantiation
Combined duplicated `event_hooks` keyword arguments into a single dictionary parameter with both `validate_redirect` and `verify_redirect` in `app/api/url_upload.py`. This fixes a `SyntaxError: keyword argument repeated: event_hooks` and ensures that all redirect validations run.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-05-17 02:58:26 +00:00
github-actions[bot] 58b14ae769 docs(changelog): update changelog [skip ci] 2026-04-07 09:35:53 +00:00
Christian Krakau-Louis 23c5bac666 Merge pull request #838 from christianlouis/dependabot/pip/pip-licenses-5.5.5
Bump pip-licenses from 5.5.1 to 5.5.5
2026-04-07 11:35:15 +02:00
Christian Krakau-Louis d925dc5cd3 Merge pull request #839 from christianlouis/dependabot/pip/stripe-gte-7.0.0-and-lt-16.0.0
Update stripe requirement from <15.0.0,>=7.0.0 to >=7.0.0,<16.0.0
2026-04-07 11:35:04 +02:00
github-actions[bot] b8ddd2f8d2 chore(release): update build metadata files [skip ci] 2026-04-07 09:34:57 +00:00
semantic-release 301ca9d186 0.172.9
Automatically generated by python-semantic-release
2026-04-07 09:34:54 +00:00
Christian Krakau-Louis 3bd8a52ea2 Merge pull request #836 from christianlouis/sentinel/fix-s3-ssrf-vulnerability-8738702433604673313
🛡️ Sentinel: [HIGH] Fix SSRF in S3 connection test endpoint_url
2026-04-07 11:34:28 +02:00
Christian Krakau-Louis 789e8c6236 Merge pull request #840 from christianlouis/sentinel/ssrf-redirect-bypass-15997970627137004397
🛡️ Sentinel: [HIGH] Fix SSRF bypass via HTTP redirects in url_upload
2026-04-07 11:34:11 +02:00
Christian Krakau-Louis a3ea215a1c Merge branch 'main' into sentinel/ssrf-redirect-bypass-15997970627137004397 2026-04-07 11:33:59 +02:00
github-actions[bot] c6e0b80bec docs(changelog): update changelog [skip ci] 2026-04-07 09:33:42 +00:00
Christian Krakau-Louis e86e1b9f13 Merge pull request #845 from christianlouis/sentinel-ssrf-httpx-redirect-fix-3175117423198883580
🛡️ Sentinel: [HIGH] Fix SSRF bypass via httpx redirects in /process-url
2026-04-07 11:33:11 +02:00
google-labs-jules[bot] 46a9a30af0 🛡️ Sentinel: [HIGH] Fix SSRF bypass via httpx redirects
🚨 Severity: HIGH
💡 Vulnerability: The `/process-url` endpoint used `httpx.AsyncClient` with `follow_redirects=True`. While the initial user-provided URL was validated against SSRF protections (blocking private/internal IPs), the client implicitly followed subsequent HTTP redirects without validating their target locations. This allowed an attacker to bypass the initial check by supplying a valid URL that redirected to an internal IP or cloud metadata endpoint.
🎯 Impact: An attacker could potentially access internal network services or cloud metadata endpoints.
🔧 Fix: Implemented an `event_hooks` listener (`validate_redirect`) on the `httpx.AsyncClient` that intercepts responses, extracts the `Location` header, resolves the absolute target URL, and applies the same `validate_url_safety` check before allowing the redirect to be followed.
 Verification: Ran `pytest tests/test_url_upload.py`, formatting checks via `ruff format` and linting via `ruff check`.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-04-06 02:55:58 +00:00
google-labs-jules[bot] bdfa3ba1e0 style: sort imports in test_url_upload.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-30 03:31:23 +00:00
github-actions[bot] 8295279ec9 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-30 03:24:20 +00:00
google-labs-jules[bot] 152ee15b06 test: add coverage for url_upload redirect SSRF bypass prevention hook
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-30 03:23:56 +00:00
google-labs-jules[bot] a75e8b9297 🛡️ Sentinel: [HIGH] Fix SSRF bypass via HTTP redirects in url_upload
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-30 03:02:05 +00:00
dependabot[bot] ee664f83fb Update stripe requirement from <15.0.0,>=7.0.0 to >=7.0.0,<16.0.0
Updates the requirements on [stripe](https://github.com/stripe/stripe-python) to permit the latest version.
- [Release notes](https://github.com/stripe/stripe-python/releases)
- [Changelog](https://github.com/stripe/stripe-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-python/compare/v7.0.0...v15.0.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-version: 15.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-29 23:04:45 +00:00
dependabot[bot] 91ef089aa7 Bump pip-licenses from 5.5.1 to 5.5.5
Bumps [pip-licenses](https://github.com/raimon49/pip-licenses) from 5.5.1 to 5.5.5.
- [Release notes](https://github.com/raimon49/pip-licenses/releases)
- [Changelog](https://github.com/raimon49/pip-licenses/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raimon49/pip-licenses/compare/v-5.5.1...v-5.5.5)

---
updated-dependencies:
- dependency-name: pip-licenses
  dependency-version: 5.5.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-29 23:04:35 +00:00
google-labs-jules[bot] 925864ddca Close as obsolete
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-27 14:51:28 +00:00
copilot-swe-agent[bot] 57db4c7c82 fix(api): resolve merge conflicts, add type safety for endpoint_url in S3 connection test
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/8a9f717e-a6cb-45f0-8f2a-0e5d1d404657

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-27 14:50:51 +00:00
copilot-swe-agent[bot] 35752c9092 fix(api): resolve merge conflicts, add type safety for endpoint_url in S3 connection test
- Resolve merge conflicts with main (PR #834 also fixed S3 SSRF)
- Add isinstance(endpoint_url, str) type check before urlparse to prevent TypeError on non-string values
- Reject endpoint_url with empty/missing hostname after parsing (malformed URLs like 'https://')
- Keep scheme validation (http/https only) and private IP blocking via is_private_ip()
- Add logger.warning for SSRF block events
- Add regression tests: non-string endpoint_url and empty hostname cases
- Update sentinel.md with consolidated SSRF entry

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-27 14:48:52 +00:00
github-actions[bot] 9b9882c4d6 docs(changelog): update changelog [skip ci] 2026-03-27 14:24:59 +00:00
Christian Krakau-Louis 6a77533795 Merge pull request #834 from christianlouis/fix-ssrf-integrations-8041414258112165107
🛡️ Sentinel: [HIGH] Fix SSRF in integrations connection test
2026-03-27 15:24:36 +01:00
github-actions[bot] 69053bfb08 docs(changelog): update changelog [skip ci] 2026-03-27 14:21:42 +00:00
Christian Krakau-Louis f1cf5d0e76 Merge pull request #835 from christianlouis/dependabot/npm_and_yarn/frontend/multi-bf05dc1ecf
Bump picomatch in /frontend
2026-03-27 15:21:16 +01:00
google-labs-jules[bot] c547ad1acc 🛡️ Sentinel: [HIGH] Fix SSRF vulnerability in S3 connection test endpoint_url
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-27 04:18:28 +00:00
dependabot[bot] 1625896e30 Bump picomatch in /frontend
Bumps  and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 08:41:48 +00:00
google-labs-jules[bot] 470f08d893 test: add tests for SSRF validation in integrations
Adds missing unit tests for `_test_imap_connection` and `_test_s3_connection` to cover the new `is_private_ip()` SSRF blocking logic and satisfy Codecov checks.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-26 04:18:24 +00:00
google-labs-jules[bot] a57766ed7e 🛡️ Sentinel: [HIGH] Fix SSRF in integrations connection test
Adds validation using `is_private_ip()` for user-provided hosts in `_test_imap_connection` and `_test_s3_connection` to prevent Server-Side Request Forgery vulnerabilities.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-26 04:00:55 +00:00
github-actions[bot] 76f202f7f1 docs(changelog): update changelog [skip ci] 2026-03-25 09:53:14 +00:00
Christian Krakau-Louis 33484b236a Merge pull request #833 from christianlouis/copilot/fix-pygments-vulnerability
chore(ci): suppress CVE-2026-4539 (pygments ReDoS) in pip-audit until upstream fix ships
2026-03-25 10:52:53 +01:00
copilot-swe-agent[bot] 6927e7643f chore(ci): ignore CVE-2026-4539 in pip-audit until pygments releases a fix
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/47fb37db-2146-4550-aeb2-60adfd2a8b6a
2026-03-25 09:20:01 +00:00
copilot-swe-agent[bot] aeb50c21d2 Initial plan 2026-03-25 09:17:32 +00:00