4.6 KiB
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 singularparentselector 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
getObjectByPathsupport through the root selector. - Tightened folder lifecycle so deleted workspace folders stop resolving as phantom virtual folders.
- Returned full folder projections from
getObjectParents, includingcmis:pathfor OpenCMISgetPaths(). - 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:
.venv/bin/python -m pytest tests/cmis --perf-history-disable
Result:
47 passed
OpenCMIS Run
Command shape:
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
parentselector. - Folder custom properties declared by type metadata but missing from root folder objects.
- Multipart
createDocumentaction bodies not parsed because multipart boundaries were lowercased. deleteTreeunsupported 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 lackedcmis: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=updateandcmisaction=move; we currently exposeupdatePropertiesand do not support move. - Operation-context fidelity:
getObject()andgetChildren()currently return more properties, ACLs, allowable actions, and path segments than requested. - MIME normalization: OpenCMIS expects
text/plain; some created streams are reported astext/plain; charset=utf-8. - Async
getObjectByPath: OpenCMIS async child/folder checks still hit aNot Foundpath 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.