Files
open-cmis-tck/docs/SERVICE-AND-RETENTION.md

84 lines
2.3 KiB
Markdown

# Service And Retention Integration
Status: draft
Created: 2026-05-07
## Local Service
`open-cmis-tck` does not run its own service. It plugs into the guide-board
local API as an external extension:
```sh
cd ../guide-board
PYTHONPATH=src python3 -m guide_board \
--extension-dir ../open-cmis-tck \
serve --host 127.0.0.1 --port 8080
```
The guide-board service can then:
- list `open-cmis-tck` from `GET /extensions`,
- build CMIS run plans with `POST /assessments/plan`,
- start CMIS runs with `POST /runs`,
- inspect jobs with `GET /runs/{job_id}`,
- fetch reports with `GET /runs/{job_id}/reports`.
CLI execution remains the primary and most transparent path. The service is a
transport and job-tracking layer over the same runner contracts.
## Retention
CMIS runs use the guide-board run directory contract. Each run writes:
- `run.json`
- `retention-summary.json`
- `plan.json`
- `normalized/evidence.json`
- `normalized/findings.json`
- `normalized/mappings.json`
- `reports/assessment-package.json`
- `reports/report.md`
Extension-side post-processing can also add:
- `reports/cmis-maturity-scorecard.json`
- `reports/cmis-maturity-scorecard.md`
- `reports/opencmis-log-review.json`
- `reports/opencmis-log-review.md`
The sample assessment profile keeps summaries for 365 days and raw artifacts for
30 days:
```json
{
"retention_policy": {
"summary_days": 365,
"raw_artifact_days": 30
}
}
```
Compact `retention-summary.json` files are suitable for guide-board trend
summaries and downstream CMIS capability scorecards without retaining unbounded
raw TCK logs.
## Durable Local Archive
For product-facing assessment evidence, do not rely on `/tmp` as the only copy.
Archive completed runs after scorecard and log-review generation:
```sh
cd /home/worsch/open-cmis-tck
PYTHONPATH=src python3 scripts/archive_assessment_run.py \
--run-dir /tmp/open-cmis-tck-live \
--archive-root .local/runs/archive
```
The archive command copies the full run directory and writes
`archive-manifest.json` with SHA-256 hashes, file sizes, source path, archive
path, run ID, target profile reference, and assessment profile reference.
The default local archive root remains under `.local/`, so it is not committed.
Move selected archive packages into a controlled evidence store when the run is
used for release or external audit preparation.