Chris Coutinho
562c102711
feat(server): Add /live & /health endpoints
2025-10-29 10:29:30 +01:00
Chris Coutinho
d7a8719d0e
build: Remove duplicate --host
2025-10-29 01:40:36 +01:00
Chris Coutinho
97fa9ef8a7
build: Update helm chart README and instructions
2025-10-29 01:37:08 +01:00
Chris Coutinho
77dd17b3e1
build: fix templating/linting errors
2025-10-29 01:37:07 +01:00
Chris Coutinho
d56ec33b77
build: update helm chart
2025-10-29 01:37:07 +01:00
Chris Coutinho
a1c5acc1c2
feat: Initialize helm chart
2025-10-29 01:37:03 +01:00
Chris Coutinho
6833f7f117
Merge pull request #242 from cbcoutinho/renovate/pin-dependencies
...
chore(deps): pin downloads.unstructured.io/unstructured-io/unstructured-api docker tag to a43ab55
2025-10-26 02:43:56 +02:00
renovate-bot-cbcoutinho[bot]
7db2a5c586
chore(deps): pin downloads.unstructured.io/unstructured-io/unstructured-api docker tag to a43ab55
2025-10-25 22:05:59 +00:00
Chris Coutinho
b76c10f18c
Merge branch 'docs/oauth-arch'
2025-10-25 22:08:02 +02:00
Chris Coutinho
ab7411d9fd
test: Fix tests
2025-10-25 22:07:46 +02:00
Chris Coutinho
d02fe3c3b6
Merge pull request #241 from cbcoutinho/docs/oauth-arch
...
docs: Update OAuth architecture
2025-10-25 21:58:45 +02:00
Chris Coutinho
49f9cead69
docs: Update OAuth architecture
2025-10-25 21:54:30 +02:00
Chris Coutinho
415b1c901b
docs: Parse available scopes from registered tools and update docs
2025-10-25 21:16:40 +02:00
Chris Coutinho
90b96a8afe
docs: Remove old [skip ci]
2025-10-25 20:43:12 +02:00
github-actions[bot]
57a2157c58
bump: version 0.20.0 → 0.21.0
v0.21.0
2025-10-25 18:33:56 +00:00
Chris Coutinho
bfdc33c390
Merge branch 'feature/document-parsing-registry'
2025-10-25 20:33:17 +02:00
Chris Coutinho
8844c07ecb
docs: Update README [skip ci]
2025-10-25 20:27:41 +02:00
Chris Coutinho
0a0ef10989
Merge pull request #240 from cbcoutinho/feature/document-parsing-registry
...
Transform document parsing into pluggable processor architecture
2025-10-25 20:25:38 +02:00
Chris Coutinho
9414d9c9c3
test: Add integration marker to user/group tests
2025-10-25 20:16:14 +02:00
Chris Coutinho
8a52df4a8e
test: Skip unstructured tests if not enabled
2025-10-25 20:13:41 +02:00
Chris Coutinho
a36038422b
feat: Add text processing background worker for telling client about progress
2025-10-25 19:52:45 +02:00
Chris Coutinho
2147fc1696
refactor: Transform document parsing into pluggable processor architecture
...
Refactors PR #190 's hardcoded Unstructured.io integration into a flexible,
extensible plugin system supporting multiple text extraction engines.
- **`DocumentProcessor` ABC**: Abstract interface for all processors
- **`ProcessorRegistry`**: Central registry for discovery and routing
- **`ProcessingResult`**: Standardized output format across processors
- **`UnstructuredProcessor`**: Refactored from `UnstructuredClient`
- **`TesseractProcessor`**: Local OCR for images (lightweight alternative)
- **`CustomHTTPProcessor`**: Generic wrapper for custom HTTP APIs
- New `get_document_processor_config()` returns structured config
- Supports enabling/disabling individual processors
- Per-processor configuration via environment variables
- **Breaking Change**: `ENABLE_UNSTRUCTURED_PARSING` replaced with:
- `ENABLE_DOCUMENT_PROCESSING=true/false` (master switch)
- `ENABLE_UNSTRUCTURED=true/false` (per-processor)
- `ENABLE_TESSERACT=true/false`
- `ENABLE_CUSTOM_PROCESSOR=true/false`
- `parse_document()` now uses `ProcessorRegistry`
- Auto-selects appropriate processor based on MIME type
- Processor priority system (Unstructured=10, Tesseract=5, Custom=1)
- `initialize_document_processors()` registers processors at startup
- Integrated into both BasicAuth and OAuth lifespans
- Graceful degradation if processors fail to initialize
```env
ENABLE_DOCUMENT_PROCESSING=false
ENABLE_UNSTRUCTURED=false
UNSTRUCTURED_API_URL=http://unstructured:8000
UNSTRUCTURED_STRATEGY=auto # auto|fast|hi_res
UNSTRUCTURED_LANGUAGES=eng,deu
ENABLE_TESSERACT=false
TESSERACT_LANG=eng
ENABLE_CUSTOM_PROCESSOR=false
CUSTOM_PROCESSOR_URL=http://localhost:9000/process
CUSTOM_PROCESSOR_TYPES=application/pdf,image/jpeg
```
- **Removed**: `tests/test_unstructured_config.py` (legacy tests)
- **Added**: `tests/unit/test_document_processor_config.py`
- 7 unit tests for new config system
- Tests individual and multi-processor configurations
- **Added**:
- `nextcloud_mcp_server/document_processors/__init__.py`
- `nextcloud_mcp_server/document_processors/base.py`
- `nextcloud_mcp_server/document_processors/registry.py`
- `nextcloud_mcp_server/document_processors/unstructured.py`
- `nextcloud_mcp_server/document_processors/tesseract.py`
- `nextcloud_mcp_server/document_processors/custom_http.py`
- `tests/unit/test_document_processor_config.py`
- **Modified**:
- `nextcloud_mcp_server/config.py` - New plugin config system
- `nextcloud_mcp_server/app.py` - Processor initialization
- `nextcloud_mcp_server/utils/document_parser.py` - Uses registry
- `nextcloud_mcp_server/server/webdav.py` - Import updates
- `env.sample` - New configuration format
- `docker-compose.yml` - (profile changes from previous work)
- **Removed**:
- `nextcloud_mcp_server/client/unstructured_client.py` - Replaced by UnstructuredProcessor
- `tests/test_unstructured_config.py` - Replaced with new tests
✅ **Extensible**: Add processors without modifying core code
✅ **Testable**: Mock processors for unit tests
✅ **Configurable**: Enable only needed processors
✅ **Flexible**: Choose fast (Tesseract) vs accurate (Unstructured)
✅ **Opt-in**: Disabled by default, no mandatory dependencies
Users upgrading from PR #190 need to update environment variables:
```bash
ENABLE_UNSTRUCTURED_PARSING=true
ENABLE_DOCUMENT_PROCESSING=true
ENABLE_UNSTRUCTURED=true
```
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-25 19:28:35 +02:00
Chris Coutinho
a19017c686
Merge pull request #190 from yuisheaven/feature/introduce_files_parsing_with_unstructured_service_for_webdav_files_retrieval
...
Introduce files parsing with "unstructured" service for webdav files retrieval
2025-10-25 19:11:27 +02:00
yuisheaven
f0e5333e43
Merge branch 'master' into feature/introduce_files_parsing_with_unstructured_service_for_webdav_files_retrieval
2025-10-25 17:23:38 +02:00
Chris Coutinho
553e84e5f2
Merge pull request #239 from cbcoutinho/renovate/docker.io-library-nextcloud-32.x
...
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.1
2025-10-25 12:28:24 +02:00
renovate-bot-cbcoutinho[bot]
ff20031601
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.1
2025-10-25 10:06:16 +00:00
github-actions[bot]
04e0ab127a
bump: version 0.19.1 → 0.20.0
v0.20.0
2025-10-24 18:24:45 +00:00
Chris Coutinho
1117a83a52
Merge pull request #237 from cbcoutinho/feature/app-scopes
...
Feature/app scopes
2025-10-24 20:24:15 +02:00
Chris Coutinho
01b43c96ba
test: Update client id/secret -> client_info
2025-10-24 19:47:49 +02:00
Chris Coutinho
c9db6afb59
chore: Update CLAUDE.md
2025-10-24 19:35:04 +02:00
Chris Coutinho
50b69a2531
fix: Add support for RFC 7592 client registration and deletion
2025-10-24 19:19:27 +02:00
Chris Coutinho
8e0a4d8ce5
feat(auth): Add support for client registration deletion
2025-10-24 18:54:24 +02:00
Chris Coutinho
72fce189d2
test: Add tests for dcr endpoint and update oidc app
2025-10-24 18:48:05 +02:00
Chris Coutinho
1e877f17f7
test: Replace persistent OAuth client cache with session-scoped fixtures
...
Remove file-based caching of OAuth client credentials and implement automatic
client lifecycle management for test fixtures.
Changes:
- Add RFC 7592 client deletion function in auth/client_registration.py
- Remove cache_file parameter from _create_oauth_client_with_scopes helper
- Update all OAuth credential fixtures to use yield/finalizer pattern
- Add automatic client cleanup at end of test session (best-effort)
- Remove persistent .nextcloud_oauth_*.json cache files
Benefits:
- No persistent cache files cluttering repository
- Fresh OAuth clients created for each test session via DCR
- Automatic cleanup attempts (RFC 7592 DELETE endpoint)
- Cleaner test environment with proper fixture lifecycle
Note: Client deletion may fail due to Nextcloud authentication middleware
(logged as warning). The key improvement is removing persistent cache files.
OAuth clients may accumulate in Nextcloud but can be cleaned manually.
2025-10-24 08:11:22 +02:00
github-actions[bot]
50a824155c
bump: version 0.19.0 → 0.19.1
v0.19.1
2025-10-24 04:36:51 +00:00
Chris Coutinho
0df9e41332
Merge pull request #238 from cbcoutinho/renovate/mcp-1.x
...
fix(deps): update dependency mcp to >=1.19,<1.20
2025-10-24 06:36:20 +02:00
Chris Coutinho
13f76a7734
chore: Upgrade pydantic Config to ConfigDict
2025-10-24 06:18:13 +02:00
renovate-bot-cbcoutinho[bot]
3baf10662f
fix(deps): update dependency mcp to >=1.19,<1.20
2025-10-24 04:06:55 +00:00
Chris Coutinho
81ca799410
fix: Update webdav models for proper serialization
2025-10-24 06:01:02 +02:00
Chris Coutinho
2f1bd1bbe9
test: Move client integration tests to mocked unit tests
2025-10-24 05:50:25 +02:00
Chris Coutinho
d452684535
feat: Split read/write scopes into app:read/write scopes
2025-10-24 04:38:49 +02:00
github-actions[bot]
bfbaed9a66
bump: version 0.18.0 → 0.19.0
v0.19.0
2025-10-23 23:50:51 +00:00
Chris Coutinho
ff32149220
Merge pull request #235 from cbcoutinho/feature/opaque-introspection
...
Feature/opaque introspection
2025-10-24 01:50:17 +02:00
Chris Coutinho
d55e5708c7
ci: fix imports
2025-10-24 01:04:30 +02:00
Chris Coutinho
d4ee5a74c2
test: Update default tokens to JWT, add to introspection tests
2025-10-24 00:51:50 +02:00
yuisheaven
db79afacb9
improved tests - fixing the linting
2025-10-23 22:56:25 +02:00
Chris Coutinho
261749fcdc
ci: Update oidc app
2025-10-23 22:45:22 +02:00
yuisheaven
6730dd4a4b
added new tests for unstructured api (pdf and docx workflow)
2025-10-23 22:38:27 +02:00
yuisheaven
8734c4b292
add new tests for unstructured config
2025-10-23 22:37:52 +02:00
yuisheaven
29df645d53
Merge branch 'master' into feature/introduce_files_parsing_with_unstructured_service_for_webdav_files_retrieval
2025-10-23 21:30:09 +02:00