Scoped CMIS workspace folders with create, list, parent, path lookup, delete, and delete-tree behavior

This commit is contained in:
2026-05-08 16:47:30 +02:00
parent efb6152487
commit 06e3654aaa
6 changed files with 1103 additions and 23 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "CMIS Object/Content Maturity Expansion"
domain: markitect
repo: kontextual-engine
status: planned
status: active
owner: codex
topic_slug: markitect
planning_priority: high
@@ -90,11 +90,48 @@ Disallowed architectural moves:
- The maturity scorecard is updated from fresh TCK evidence, with remaining
unsupported features explicitly classified.
## Implementation Evidence - 2026-05-08
Evidence file:
- `docs/cmis-opencmis-tck-wp0014-evidence-2026-05-08T134432Z.md`
Implemented in this pass:
- Profile-scoped CMIS workspace folder registry.
- Browser Binding `createFolder`, multipart/form `createDocument`,
`deleteTree`, `parent`, and `getObjectByPath` support.
- Workspace folder deletion that removes adapter-managed folders rather than
falling back to phantom virtual folder projections.
- Full parent folder projections for `getObjectParents`, including `cmis:path`
for OpenCMIS `getPaths()`.
- Document/folder type metadata alignment for emitted CMIS and Kontextual
properties.
- CMIS document version/read-side property projection while keeping versioning
operations unsupported.
- Single-parent projection for CMIS-authored documents when repository
multifiling remains advertised as unsupported.
Latest verification:
- Internal: `.venv/bin/python -m pytest tests/cmis --perf-history-disable`
-> `47 passed`.
- OpenCMIS: `run-20260508T134448Z` in
`/tmp/open-cmis-tck-kontextual-wp14-20260508T134432Z`.
Current external frontier:
- OpenCMIS now reaches action/operation-context maturity gaps:
`cmisaction=update`, `cmisaction=move`, filter trimming, async
`getObjectByPath`, and MIME normalization.
These are follow-up maturity items rather than the original folder-creatable
blocker.
## D14.1 - Define CMIS maturity boundary and TCK profile semantics
```task
id: KONT-WP-0014-T001
status: todo
status: done
priority: high
state_hub_task_id: "333f8ea0-0582-467d-a52d-7ef5cf6f34c0"
```
@@ -112,7 +149,7 @@ Acceptance:
```task
id: KONT-WP-0014-T002
status: todo
status: done
priority: high
state_hub_task_id: "30d02544-0325-490e-84d7-ebaa3825ee78"
```
@@ -131,7 +168,7 @@ Acceptance:
```task
id: KONT-WP-0014-T003
status: todo
status: done
priority: high
state_hub_task_id: "b5324bcb-67fe-4f28-9591-83e6361bfd01"
```
@@ -150,7 +187,7 @@ Acceptance:
```task
id: KONT-WP-0014-T004
status: todo
status: in_progress
priority: high
state_hub_task_id: "f9323c25-4d81-42cd-b7e6-e40d7e0487cd"
```
@@ -190,7 +227,7 @@ Acceptance:
```task
id: KONT-WP-0014-T006
status: todo
status: in_progress
priority: medium
state_hub_task_id: "b1562023-807b-4fed-b794-6930fcc2274e"
```
@@ -228,7 +265,7 @@ Acceptance:
```task
id: KONT-WP-0014-T008
status: todo
status: done
priority: high
state_hub_task_id: "c9514345-793c-489e-9dcc-86776db47cf4"
```