Christian Krakau-Louis
4b7b9fd5b6
Add Postgres driver for main deployments
2026-05-31 01:50:07 +02: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
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
copilot-swe-agent[bot]
a8eb6504ac
fix(qr-login): render QR code server-side using segno instead of CDN JS library
...
The QR code on /qr-login was not rendering because it depended on loading
qrcode@1.5.4 from the jsdelivr CDN, which may be blocked in some network
environments.
- Add segno>=1.6.0 (pure-Python QR library, no Pillow needed) to requirements.txt
- Generate QR code as a base64 SVG data URI server-side in the challenge endpoint
- Add qr_code_svg field to CreateChallengeResponse Pydantic model
- Replace canvas+CDN script in qr_login.html with an <img :src="qrCodeSvg">
- Remove the $nextTick/QRCode.toCanvas() client-side rendering block
- Extract QR rendering parameters (_QR_ERROR_LEVEL, _QR_SCALE) as module constants
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-18 08:34:22 +00:00
Christian Krakau-Louis
b8a1ac52b3
Merge branch 'main' into perf/async-url-upload-7099409897484162483
2026-03-16 12:12:21 +01:00
google-labs-jules[bot]
b8db664c2e
perf: optimize url upload with async i/o
...
Replaced synchronous `requests.get` and `open().write` in the `process_url` endpoint with `httpx.AsyncClient` and `aiofiles.open`. This prevents the FastAPI event loop from blocking during large file downloads.
Updated test suite in `tests/test_url_upload.py` to use `AsyncMock` to mock `httpx.AsyncClient.stream` contexts and async generators properly, covering all original conditions and HTTP error handling paths.
Added dependencies `aiofiles` and `types-aiofiles` to resolve MyPy typing CI failures, and mitigated CodeQL security alerts regarding user-provided path extensions by leveraging `os.path.basename` around the generated target file paths.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 09:45:06 +00:00
google-labs-jules[bot]
b290cffb98
Performance Optimization: Replace synchronous file upload read with async aiofiles
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 09:36:33 +00:00
Christian Krakau-Louis
80dd117ebf
Merge pull request #587 from christianlouis/copilot/add-apple-drive-icloud-support
...
feat(storage): add Apple iCloud Drive storage provider
2026-03-12 01:14:37 +01:00
copilot-swe-agent[bot]
30f06e0b32
feat(storage): add Apple iCloud Drive storage provider
...
Add iCloud Drive as a new storage destination using the pyicloud library.
Includes upload task, configuration, user integration handler, provider
status, onboarding support, and comprehensive tests.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 23:38:35 +00:00
copilot-swe-agent[bot]
a41ded535f
feat(api): add GraphQL endpoint at /graphql with Strawberry
...
- Add strawberry-graphql[fastapi] dependency
- Implement GraphQL schema covering documents, pipelines, settings, users
- Enable GraphiQL playground at /graphql
- Mount GraphQL router in main.py
- Add 24 tests for all query types and auth enforcement
- Update docs/API.md with GraphQL documentation section
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 22:17:25 +00:00
copilot-swe-agent[bot]
a3fd74f117
feat(cli): add docuelevate CLI tool for power users
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-08 21:50:18 +00:00
copilot-swe-agent[bot]
58af9e5a29
feat(observability): add Sentry error and performance monitoring integration
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-08 21:09:17 +00:00
copilot-swe-agent[bot]
9a9efae19e
feat(watch-folders): add cloud provider watch folders (Dropbox, Drive, OneDrive, Nextcloud, S3, WebDAV)
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-07 21:22:33 +00:00
copilot-swe-agent[bot]
52e3852129
feat(auth): add local user signup, email verification, and Stripe billing
...
- Add LocalUser model with bcrypt password hashing, email verification
tokens, and password reset tokens
- Add ALLOW_LOCAL_SIGNUP config flag (requires SMTP to be configured)
- Add Stripe billing config fields (STRIPE_SECRET_KEY, etc.)
- Add stripe_customer_id to UserProfile and stripe_price_id_monthly/
stripe_price_id_yearly to SubscriptionPlan
- Create migration 018_add_local_users_and_billing
- Add app/utils/local_auth.py: hash_password, verify_password,
generate_token, is_token_expired, send_verification_email,
send_password_reset_email, build_session_user
- Add app/api/local_auth.py: signup, email verification, password reset
endpoints plus signup/verify-email-sent/reset-password page routes
- Add app/api/billing.py: Stripe Checkout, Customer Portal, and webhook
endpoints; syncs subscription tier from webhook events
- Update auth() to check LocalUser table before admin credentials fallback
- Update login() to pass allow_signup context variable to template
- Add signup.html, verify_email_sent.html, password_reset_form.html,
billing_success.html templates (Alpine.js, Tailwind, WCAG 2.1 AA)
- Update login.html to show 'Create account' link when signup enabled
- Update pricing.html CTA buttons to use Stripe Checkout for paid tiers
- Add docs/BillingSetup.md with setup guide, webhook config, compliance
- Add tests/test_local_auth.py (42 tests) and tests/test_billing.py
(31 tests); all 106 tests in the modified test suite pass
- Add stripe>=7.0.0,<15.0.0 to requirements.txt
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-07 13:15:15 +00:00
dependabot[bot]
25532aad87
Update ocrmypdf requirement from <17.0.0,>=16.0.0 to >=16.0.0,<18.0.0
...
Updates the requirements on [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF ) to permit the latest version.
- [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases )
- [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v16.0.0...v17.3.0 )
---
updated-dependencies:
- dependency-name: ocrmypdf
dependency-version: 17.3.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-01 23:09:06 +00:00
copilot-swe-agent[bot]
ff96340154
fix(config): default meilisearch_url to http://meilisearch:7700 for Docker/K8s service discovery
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-25 13:27:09 +00:00
copilot-swe-agent[bot]
fec032643b
feat(ocr): embed searchable text layer for providers without native PDF output
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-24 13:19:52 +00:00
copilot-swe-agent[bot]
1f843fe460
feat(ocr): add self-hosted OCR engine support (Tesseract, EasyOCR) with multi-provider cross-checking
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-23 20:59:43 +00:00
copilot-swe-agent[bot]
d4c7fb26ac
feat: add AI provider abstraction layer with OpenAI, Azure, Anthropic, Gemini, Ollama, OpenRouter, LiteLLM support
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-23 19:26:45 +00:00
copilot-swe-agent[bot]
b03ebab747
chore: apply ruff formatting and fix whitespace issues
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-13 09:12:11 +00:00
copilot-swe-agent[bot]
cc98039246
fix(deps): upgrade PyPDF2 to pypdf >= 3.9.0 to fix CVE-2023-36464
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-12 02:52:17 +00:00
Christian Krakau-Louis
9a2c2d20b1
feat(duplication): implement duplicate file handling and detection across processing steps
2026-02-12 02:38:00 +01:00
copilot-swe-agent[bot]
8d347e0a53
feat: Add rate limiting middleware with SlowAPI
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-10 16:17:53 +00:00
copilot-swe-agent[bot]
1a01811882
Add encryption and setup wizard features
...
ENCRYPTION:
- Add cryptography library for secure storage
- Implement Fernet encryption for sensitive settings
- Key derived from SESSION_SECRET
- Auto-encrypt/decrypt transparent to app
- "enc:" prefix identifies encrypted values
- Graceful fallback if crypto unavailable
SETUP WIZARD:
- Detect fresh installs needing configuration
- 3-step wizard: Infrastructure, Security, AI Services
- "/" redirects to wizard if setup required
- Auto-generate session_secret option
- Skip option for advanced users
- Beautiful UI with progress indicators
UI IMPROVEMENTS:
- Enhanced sensitive field display
- Lock icon showing encryption status
- Improved show/hide toggle for passwords
- Better visual hierarchy
FILES:
- app/utils/encryption.py - Encryption utilities
- app/utils/setup_wizard.py - Wizard detection logic
- app/views/wizard.py - Wizard routes
- frontend/templates/setup_wizard.html - Wizard UI
- requirements.txt - Added cryptography
- IMPLEMENTATION_CHECKLIST.md - Status tracking
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-08 06:18:49 +00:00
copilot-swe-agent[bot]
f0f48b39a9
Add security fixes, testing infrastructure, and CI/CD improvements
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-06 21:55:19 +00:00
Christian Krakau-Louis
05ede35059
feat: Add license and attribution routes, update templates and documentation
...
- Added a new license route to serve the LGPL license text.
- Introduced a new attribution page to acknowledge third-party software used in the project.
- Updated the base HTML template to include a link to the attribution page.
- Included the license router in the main application router.
- Added the license text file for LGPL to the static licenses directory.
- Updated the NOTICE file to include detailed attributions for third-party libraries.
- Added a new requirements-dev.txt for license compliance checking.
- Updated the requirements.txt to clarify the LGPL license for Paramiko.
2025-04-11 02:39:26 +02:00
Christian Krakau-Louis
ce91dc8c79
feat: Implement notification system with Apprise integration and credential checks
2025-04-11 01:55:10 +02:00
Christian Krakau-Louis
9823935927
feat: Replace PyMuPDF with PyPDF2 for PDF metadata editing and text extraction
2025-04-09 07:29:42 +02:00
Christian Krakau-Louis
98df430f8f
feat: add PDF rotation functionality and integrate with Azure Document Intelligence processing
2025-04-04 01:30:14 +02:00
Christian Krakau-Louis
94889e9e41
feat: implement Dropbox integration with OAuth setup and error handling
2025-04-03 10:35:55 +02:00
Christian Krakau-Louis
619c72ac53
feat: update version to 0.4.1-dev, refactor task imports, and replace Textract processing with Azure Document Intelligence
2025-04-02 15:46:56 +02:00
Christian Krakau-Louis
6972fb7505
feat: implement Google Drive integration and enhance documentation for new features
2025-04-01 04:44:00 +02:00
Christian Krakau-Louis
92a387a759
feat: add initial migration setup and configuration files
2025-03-31 10:51:49 +02:00
Christian Krakau-Louis
6f5ec7bd14
chore: update Python version in Dockerfile and enhance requirements.txt with comments
2025-03-29 03:56:04 +01:00
Christian Krakau-Louis
b9be5af407
adding starlette to requirements.txt
2025-03-25 12:26:33 +01:00
Christian Krakau-Louis
1f510a18ca
added authlib to requirements
2025-03-25 12:09:36 +01:00
Christian Krakau-Louis
19c763e595
added a favicon, updated the README.md file
2025-03-25 10:48:55 +01:00
Christian Krakau-Louis
9ebac992e6
changed required.txt
2025-02-14 22:53:03 +01:00
Christian Krakau-Louis
65beea89cf
First try for Azure API
2025-02-14 22:49:22 +01:00
Christian Krakau-Louis
42148c50bc
added initial Dropbox code
2025-02-12 00:03:58 +01:00
Christian Krakau-Louis
8e7d380e71
added requests to requirements.txt
2025-02-11 23:36:23 +01:00
Christian Krakau-Louis
1ad9425102
Added first working version of the code. Processes
...
PDF files, no upload yet.
2025-02-11 19:42:23 +01:00
Christian Krakau-Louis
d90cca71a6
Create requirements.txt
2025-02-09 16:18:58 +01:00