Files
kontextual-engine/docs/cmis-opencmis-tck-wp0014-evidence-2026-05-08T153316Z.md
2026-05-11 12:28:36 +02:00

100 lines
4.1 KiB
Markdown

# 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.