generated from coulomb/repo-seed
110 lines
4.6 KiB
Markdown
110 lines
4.6 KiB
Markdown
# 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.
|