# CMIS WP-0014 OpenCMIS Evidence - 2026-05-08T15:33:16Z ## Scope This note records the second WP-0014 maturity pass for the CMIS 1.1 Browser Binding adapter. The pass followed the earlier folder/action work and focused on OpenCMIS compatibility issues that fit the engine architecture naturally. ## Implemented Since Prior Evidence - Added Browser Binding `cmisaction=update` as an alias for `updateProperties`. - Added scoped `cmisaction=move` support for CMIS-authored workspace documents and adapter-managed workspace folders. - Added URL-path Browser Binding routes under `/browser/root/{path}` for object, children, parent, parents, properties, allowable actions, content, and POST actions against path-addressed objects. - Normalized stored CMIS content stream media types and emitted explicit `Content-Type` headers so text streams do not acquire an unwanted charset. - Accepted metadata-backed standard property updates for `cmis:name`, `cmis:description`, and `cmis:secondaryObjectTypeIds`. - Honored `cmis:secondaryObjectTypeIds` during document creation. - Rejected invalid `createDocument` type ids, such as `cmis:folder`. - Removed non-standard `cmis:path` from document property definitions and document object projections while retaining folder `cmis:path`. ## Local Verification Focused CMIS suite: ```bash .venv/bin/python -m pytest tests/cmis -q ``` Result: - `48 passed` - Performance monitor warnings appeared on two Browser Binding tests; these should be watched across additional runs before treating them as a regression. ## OpenCMIS Run The final run used an isolated temporary target on port `8010` to avoid colliding with other local services: ```bash cd /home/worsch/guide-board source /home/worsch/open-cmis-tck/.local/toolchains/env.sh 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-20260508T153146Z ``` Result: - Run ID: `run-20260508T153316Z` - Run directory: `/tmp/open-cmis-tck-kontextual-wp14-20260508T153146Z` - Harness status: `infrastructure_error` - Maturity scorecard: `/tmp/open-cmis-tck-kontextual-wp14-20260508T153146Z/reports/cmis-maturity-scorecard.md` - Maturity score: `19.05` - Coverage: `2/9` groups ## Capability Interpretation - `repository-type`: improved from failing to `warning` / partial. Repository info and type metadata are now usable enough for the selected baseline, with warnings instead of hard failures. - `object-content`: still infrastructure-blocked in guide-board classification, but the blockers are now concrete object/content edge cases rather than Browser Binding startup, folder creation, MIME, or secondary-type basics. ## Remaining Frontier - `getObjectByPath` still fails in several OpenCMIS child checks for paths such as `/test-folder/test-folder`; this likely needs tighter folder/document child path-segment semantics and cleanup behavior investigation. - Creating a document without content still leads OpenCMIS into a missing content-stream exception. We need decide whether CMIS-created no-content documents should expose an empty stream or clearer no-content semantics. - Invalid-type errors are now correctly rejected, but OpenCMIS still classifies our HTTP 422 as a runtime warning rather than a clean CMIS constraint response. - Folder `cmis:path` still appears when property filters request narrower property sets. Operation-context filtering for properties, ACLs, allowable actions, and path segments remains a compatibility gap. - `bulkUpdate`, `deleteContent`, and some change-token tests still receive unsupported-action or validation responses. These should be handled either by natural implementation or sharper unsupported behavior. ## Conclusion The CMIS adapter foundation is sounder and more standards-shaped after this pass. We should keep WP-0014 active for the remaining object/content frontier, but the work has moved from "basic Browser Binding compatibility" into specific CMIS behavior polish and optional-service boundary decisions.