# CMIS WP-0014 OpenCMIS Evidence - 2026-05-08T13:44:32Z ## Scope This note records the WP-0014 implementation evidence for raising CMIS 1.1 Browser Binding object/content maturity in `kontextual-engine`. CMIS remains an adapter over native engine services. The work in this pass focused on compatibility features that map naturally to existing assets, representations, metadata, policy gates, and projection folders. ## Implemented - Added profile-scoped adapter-managed workspace folders for CMIS-created folders. - Added Browser Binding `createFolder`, `createDocument`, `deleteTree`, and singular `parent` selector handling. - Added form-url-encoded and multipart Browser Binding action parsing without introducing a new multipart dependency. - Added document/folder path projection and Browser Binding `getObjectByPath` support through the root selector. - Tightened folder lifecycle so deleted workspace folders stop resolving as phantom virtual folders. - Returned full folder projections from `getObjectParents`, including `cmis:path` for OpenCMIS `getPaths()`. - Declared emitted document/folder custom properties in CMIS type metadata. - Included CMIS document version/read-only properties expected by common CMIS clients while keeping versioning operations unsupported. - Prevented CMIS-authored documents from appearing multifiled when the repository advertises `capabilityMultifiling=false`. - Corrected document allowable actions so non-folder objects do not advertise `canGetFolderParent`. ## Local Verification Focused CMIS tests: ```bash .venv/bin/python -m pytest tests/cmis --perf-history-disable ``` Result: - `47 passed` ## OpenCMIS Run Command shape: ```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-20260508T134432Z ``` Result: - Run ID: `run-20260508T134448Z` - Run directory: `/tmp/open-cmis-tck-kontextual-wp14-20260508T134432Z` - Harness status: `infrastructure_error` - Scorecard: `/tmp/open-cmis-tck-kontextual-wp14-20260508T134432Z/reports/cmis-maturity-scorecard.md` The scorecard still classifies the two mapped groups as infrastructure-blocked, but the raw OpenCMIS output shows meaningful progress inside the test groups. ## Evidence Progression Earlier WP-0014 runs stopped at foundational Browser Binding gaps: - Unsupported `parent` selector. - Folder custom properties declared by type metadata but missing from root folder objects. - Multipart `createDocument` action bodies not parsed because multipart boundaries were lowercased. - `deleteTree` unsupported during OpenCMIS cleanup. - CMIS-created folders still resolving after deletion as generic virtual folders. - Document projections exposing undeclared custom fields such as `kontextual:assetId`. - OpenCMIS `getPaths()` failing because parent folder objects lacked `cmis:path`. The final run reaches deeper object/content behaviors: - Repository info checks pass. - Root folder test passes. - Type definition enumeration runs. - Document creation proceeds far enough to exercise update, move, delete-tree, operation-context, and async object lookup tests. - Delete-tree tests create many documents and report MIME warnings rather than basic object-creation failures. ## Current Frontier Remaining natural CMIS maturity items: - Browser Binding action aliases: OpenCMIS sends `cmisaction=update` and `cmisaction=move`; we currently expose `updateProperties` and do not support move. - Operation-context fidelity: `getObject()` and `getChildren()` currently return more properties, ACLs, allowable actions, and path segments than requested. - MIME normalization: OpenCMIS expects `text/plain`; some created streams are reported as `text/plain; charset=utf-8`. - Async `getObjectByPath`: OpenCMIS async child/folder checks still hit a `Not Found` path lookup case. - Copy/move and secondary type mutation remain unsupported unless a later workplan admits them. ## Interpretation The adapter foundation is sounder after this pass. The failures are no longer basic session, repository, folder-creatable, multipart action parsing, or parent path hydration issues. They are now mostly CMIS client polish around action aliases, response filtering, and optional ECM behaviors. WP-0014 should remain active for follow-up maturity work, but the core folder/object-content compatibility foundation is implemented.