chore(consistency): sync task status from DB [auto]

Updated by fix-consistency on 2026-05-07:
  - update .custodian-brief.md for open-cmis-tck
This commit is contained in:
2026-05-07 22:58:28 +02:00
parent a9e1f7130c
commit cc43881565
13 changed files with 1301 additions and 39 deletions

67
docs/CMIS-PROFILES.md Normal file
View File

@@ -0,0 +1,67 @@
# CMIS Profiles
Status: draft
Created: 2026-05-07
## Purpose
`open-cmis-tck` uses guide-board target and assessment profiles without adding a
separate persisted profile format. This keeps the extension compatible with the
guide-board planner while still giving CMIS-specific diagnostics through
`open_cmis_tck.profile.validate_cmis_profile_config`.
## Target Profile Fields
The CMIS target profile uses the guide-board `target-profile` schema:
- `subject_type`: use `cmis-browser-binding-endpoint`.
- `endpoints`: include one endpoint with `binding` set to `cmis-browser` and
`url` set to the Browser Binding service document URL.
- `credentials_ref`: use `null` for anonymous/local development targets, or a
secret reference for authenticated repositories.
- `declared_capabilities`: list the CMIS requirement refs the target claims to
support, such as `cmis.repository-info`, `cmis.type-definitions`,
`cmis.object-services`, `cmis.content-streams`, `cmis.query`, `cmis.acl`, and
`cmis.versioning`.
- `known_gaps`: list unsupported optional requirements with a stable gap ID,
requirement refs, reason, and status such as `unsupported_by_design`.
## Assessment Runtime Fields
Repository selection and harness execution settings live in the assessment
profile because they are run policy, not target identity:
```json
{
"runtime_policy": {
"offline": false,
"timeout_seconds": 300,
"opencmis_tck": {
"repository_id": "compat-tck",
"requires_java_maven": true,
"command": ["java", "-jar", "/assets/opencmis-tck-runner.jar"]
}
}
}
```
`repository_id` is optional for preflight. If omitted, preflight selects the
first repository from the Browser Binding service document. A real TCK command
usually needs it.
`command` is optional. When absent, the wrapper reports
`tck_invocation_not_configured` as a structured, expected bootstrap blocker.
## Diagnostics
Use the extension helper from tests or local scripts:
```python
from open_cmis_tck.profile import validate_cmis_profile_config
diagnostics = validate_cmis_profile_config(target_profile, assessment_profile)
```
The result contains `status`, `diagnostics`, and the interpreted `cmis_config`.
Diagnostics are intentionally actionable: they point to the field that should be
changed and explain what the extension expects.

View File

@@ -0,0 +1,97 @@
# OpenCMIS TCK Runner
Status: draft
Created: 2026-05-07
## Purpose
The runner wrapper at `runners/opencmis_tck.py` is the boundary between
guide-board and Apache Chemistry OpenCMIS TCK execution. It keeps Java/Maven
setup, harness command lines, raw logs, and result normalization inside this
extension.
## Dependency Checks
By default, the wrapper checks:
- `java -version`
- `mvn -version`
If either dependency is unavailable, the runner returns `blocked` evidence with
`blocked_reason: missing_dependency`.
Set `runtime_policy.opencmis_tck.requires_java_maven` to `false` only for tests
or custom harness commands that do not use the local Java/Maven toolchain.
## Command Configuration
Configure a TCK command as an argv list:
```json
{
"runtime_policy": {
"opencmis_tck": {
"repository_id": "compat-tck",
"command": [
"java",
"-jar",
"/assets/opencmis-tck-runner.jar",
"--url",
"{browser_url}",
"--repository",
"{repository_id}",
"--group",
"{check_group}",
"--output",
"{artifact_dir}"
]
}
}
}
```
Supported placeholders:
- `{browser_url}`
- `{repository_id}`
- `{check_group}`
- `{target_id}`
- `{run_dir}`
- `{artifact_dir}`
The wrapper also accepts `OPENCMIS_TCK_COMMAND_JSON` as a JSON string array, or
`OPENCMIS_TCK_COMMAND` as a shell-like string that is split into argv. The final
command still runs without shell expansion.
## Raw Artifacts
For each selected check group, artifacts are written under:
```text
artifacts/open-cmis-tck/tck/<check-group>/
```
Current artifacts:
- `invocation.json`
- `stdout.log`
- `stderr.log`
- `normalized-runner-result.json`
The guide-board core fingerprints these files in the assessment package artifact
manifest when they are referenced by the runner result.
## Normalization
The wrapper normalizes, in order:
1. JSON written to stdout with a `tests`, `cases`, or `results` array.
2. JUnit-style XML files written directly into `{artifact_dir}`.
3. Exit code only, when no structured output is found.
Case statuses normalize to guide-board result vocabulary: `pass`, `fail`,
`skipped`, `expected_gap`, `unsupported_by_design`, `infrastructure_error`, and
related core statuses.
This is enough to run a real local TCK adapter while preserving raw logs for
future Apache Chemistry-specific parsing refinements.

View File

@@ -0,0 +1,56 @@
# 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`
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.