Ocean Health Systems · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the CKM REST API

6 actions 6 updates update extends openapi/ocean-health-systems-ckm-rest-api-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Ocean Health Systems's API. It is a proposal applied on top of the contract, not a document Ocean Health Systems publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-api-evangelist-reversibilityx-api-evangelist-base-url-notex-api-evangelist-instance-hostsx-api-evangelist-artifactsx-api-evangelist-gapsx-api-evangelist-dry-run

Targets 4

$.info
$.paths['/archetypes/{cid-archetype}']['delete']
$.paths['/templates/{cid-template}']['delete']
$.paths['/templates/validation-report']['post']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the CKM REST API
  version: 1.0.0
extends: openapi/ocean-health-systems-ckm-rest-api-openapi.json
x-provenance:
  generated: '2026-09-02'
  method: generated
  source: >-
    Derived from the verbatim Swagger 2.0 contract at
    https://ckm.openehr.org/ckm/rest/v1/swagger.json plus the artifacts in this repo. The original
    spec is never mutated; everything below is our addition and is marked as such.
actions:
  - target: $.info
    description: >-
      Record the servers the contract omits. The published Swagger 2.0 document declares a basePath
      (/ckm/rest/v1) but no host and no schemes, because CKM is licensed software deployed per
      customer — the host is whichever CKM instance you hold credentials for.
    update:
      x-api-evangelist-base-url-note: >-
        No host is declared in the contract. The reference public deployment is
        https://ckm.openehr.org/ckm/rest/v1 (openEHR International's instance of Ocean's CKM);
        arketyper.no serves the identical contract at https://arketyper.no/ckm/rest/v1. Substitute
        your own instance host.
      x-api-evangelist-instance-hosts:
        - https://ckm.openehr.org/ckm/rest/v1
        - https://arketyper.no/ckm/rest/v1
  - target: $.info
    description: Cross-link the derived artifacts so an agent reading the spec can find the semantics that are not in it.
    update:
      x-api-evangelist-artifacts:
        conventions: conventions/ocean-health-systems-conventions.yml
        errors: errors/ocean-health-systems-problem-types.yml
        data_model: data-model/ocean-health-systems-data-model.yml
        authentication: authentication/ocean-health-systems-authentication.yml
        lifecycle: lifecycle/ocean-health-systems-lifecycle.yml
        conformance: conformance/ocean-health-systems-conformance.yml
        skills: skills/_index.yml
  - target: $.info
    description: Flag the gaps a consumer will hit, measured against the contract as published.
    update:
      x-api-evangelist-gaps:
        error_schema: 'None. 104 declared responses, no error schema, no application/problem+json.'
        rate_limits: 'None declared. No 429, no RateLimit headers.'
        idempotency: 'No idempotency key. Conditional requests (if-match / if-unmodified-since, 412) only.'
        pagination_totals: 'offset and size are declared; no total count and no next link, so page depth is unknowable.'
        examples: 'Schema-level examples exist on CkmResource fields; no request or response examples on any operation.'
  - target: $.paths['/archetypes/{cid-archetype}']['delete']
    description: >-
      Mark the archetype delete as irreversible for agent consumption. Ocean states this in prose in
      the operation description; this makes it machine-readable.
    update:
      x-api-evangelist-reversibility:
        reversible: false
        reversal_operation: null
        window: null
        blast_radius: >-
          For a trunk archetype, also destroys branches, review rounds, individual reviews,
          discussion comments, resource-centre documents, to-do tasks and change requests.
        confirmation_required: true
        source: "the operation description in Ocean's own published contract"
  - target: $.paths['/templates/{cid-template}']['delete']
    description: Mark the template delete as irreversible for agent consumption.
    update:
      x-api-evangelist-reversibility:
        reversible: false
        reversal_operation: null
        window: null
        blast_radius: >-
          For a trunk template, also destroys branches, review rounds, individual reviews,
          discussion comments, resource-centre documents, to-do tasks and change requests.
        confirmation_required: true
        source: "the operation description in Ocean's own published contract"
  - target: $.paths['/templates/validation-report']['post']
    description: Label the validation report as the dry-run for template import and update.
    update:
      x-api-evangelist-dry-run:
        dry_run_for:
          - importTemplate
          - updateTemplateOnTrunk
        mutates: false