# CMIS OpenCMIS TCK Evidence - WP-0014 - 2026-05-08T16:43:34Z ## Run - Run ID: `run-20260508T164334Z` - Harness: `guide-board` with external extension `/home/worsch/open-cmis-tck` - Target: `kontextual-cmis-compat` - Endpoint under test: `http://127.0.0.1:8010/cmis/compat-tck/browser` - Output directory: `/tmp/open-cmis-tck-kontextual-wp14-20260508T1643Z` - Assessment package: `/tmp/open-cmis-tck-kontextual-wp14-20260508T1643Z/reports/assessment-package.json` - Report: `/tmp/open-cmis-tck-kontextual-wp14-20260508T1643Z/reports/report.md` Command shape: ```sh cd /home/worsch/guide-board PYTHONPATH=src python3 -m guide_board \ --extension-dir ../open-cmis-tck \ run \ --target /tmp/kontextual-cmis-compat-8010.json \ --assessment ../open-cmis-tck/profiles/assessments/cmis-browser-baseline.json \ --output-dir /tmp/open-cmis-tck-kontextual-wp14-20260508T1643Z ``` The local Java/Maven toolchain from `/home/worsch/open-cmis-tck/.local/toolchains` was supplied in the command environment. ## Internal Verification - Focused CMIS tests: `.venv/bin/python -m pytest tests/cmis/test_cmis_runtime_browser_binding.py tests/cmis/test_cmis_browser_binding_api.py -q` -> `20 passed`. - Full suite: `.venv/bin/python -m pytest -q` -> `160 passed, 14 skipped`. ## OpenCMIS Result Summary Overall Guide Board status remains `infrastructure_error` because the `object-content` group still contains unsupported or incomplete CMIS services. Normalized group counts: - `repository-type`: `38 pass`, `2 info`, `1 skipped`, `1 warning`. - `object-content`: `12 info`, `5 skipped`, `3 warning`, `3 fail`, `3 infrastructure_error`. The sole `repository-type` warning is local HTTP rather than HTTPS: `HTTPS is not used. Credentials might be transferred as plain text!` ## Improvements Since `run-20260508T153316Z` - Fixed Browser Binding parent `relativePathSegment`; OpenCMIS no longer builds invalid paths such as `/folder/folder` for documents. - Added Browser Binding property filtering and optional envelope trimming for `filter`, `includeAllowableActions`, `includeACL`, and `includePathSegment`. - Changed Browser Binding children `numItems` to report the total child count instead of page length. - Added range-aware content responses with sliced bodies, `Content-Length`, `Content-Range`, and `206` for partial requests. - Added no-content document compatibility streams while keeping document content stream properties nullable. - Added stable object-id behavior for adapter-managed folder rename/update. - Added `setContent` and `deleteContent` Browser Binding action aliases over the existing content-stream service boundary. - Preserved existing blob deduplication and digest verification paths. Removed or reduced OpenCMIS frontier items: - `getObjectByPath` path-segment failures are gone. - Create/delete document paging `numItems` failures are gone. - Update Smoke Test folder rename/object-id failures are gone. - Operation Context ACL delivery warning is gone. - Most content range warnings are gone. - No-content document retrieval no longer aborts with `Representation not found`. ## Remaining Frontier These are now the concrete maturity gaps visible in the selected OpenCMIS baseline: - **Invalid type exception mapping**: invalid document/folder type creation returns HTTP `422`, which OpenCMIS reports as `CmisRuntimeException` instead of a narrower CMIS invalid-argument/constraint exception. - **Bulk update**: `cmisaction=bulkUpdate` is still unsupported and reports `Unprocessable Entity`. - **Delete content semantics**: `deleteContentStream` is accepted through the alias layer, but OpenCMIS still observes content after delete. The adapter needs a stronger natural representation-removal or tombstone model. - **Change tokens**: repeated property/content updates with the same change token do not produce CMIS update-conflict behavior yet. - **Copy/create-from-source**: `createDocumentFromSource` remains unsupported. - **Range classification**: the remaining range warning is for an offset-zero full-stream request being marked as partial. ## Interpretation The CMIS layer is now past the early Browser Binding and basic object/content shape problems. The remaining failures are concentrated in specific CMIS service semantics: exception mapping, content deletion, change token conflict handling, copy support, and bulk update. This is a healthy architectural signal: the adapter continues to map naturally onto native asset, representation, blob, metadata, policy, and audit services. The remaining work should be handled as explicit compatibility choices rather than broad ECM reimplementation.