Skip to content

Align OGC API - Processes ruleset with latest v2.0 draft (18-062r3) - #813

Merged
joostfarla merged 2 commits into
mainfrom
align-processes-ruleset-to-v2
Jul 9, 2026
Merged

Align OGC API - Processes ruleset with latest v2.0 draft (18-062r3)#813
joostfarla merged 2 commits into
mainfrom
align-processes-ruleset-to-v2

Conversation

@joostfarla

@joostfarla joostfarla commented Jul 9, 2026

Copy link
Copy Markdown
Member

Closes #809.

The OGC API — Processes rulesets were based on an earlier draft of 18-062r3. This reconciles the four covered conformance classes with the latest v2.0 draft (18-062r3 is the latest revision, not yet a final/published standard).

Changes

Version bump 1.0 → 2.0 across all four conformance-class URIs and documentationUrls (core, job-list, json, ogc-process-description). The ruleset-index keys are the conformance-class URIs the linter matches against a server's conformsTo, so it now matches servers advertising the 2.0 classes.

processes-core.ts

  • Fixed requirement identifiers to match the spec (were slash forms): process-exception/no-such-processprocess-exception-no-such-process, and the four job-results-exception/* → hyphenated job-results-exception-*.
  • Corrected the doc-link anchors for the three requirements whose HTML anchors use an underscore (…exception_invalid-query-parameter-value, …_results-not-ready, …_results-not-available).
  • Added two new statically-checkable v2 requirements: /req/core/job-result-op-0th (new path /jobs/{jobID}/results/{outputID}/0) and /req/core/job-results-exception-no-such-output (400 on /jobs/{jobID}/results).

processes-json.ts — removed the execution POST from /req/json/definition; v2 lists only /, /conformance, /processes, /processes/{processID}, /jobs/{jobID} (execution output is content-negotiated and need not be JSON).

processes-ogc-process-description.ts — resolved the // TODO: Upgrade to v2.0 schema; process.yaml now points at the v2 schema.

examples/processes.json — added type: object to the results schema so it validates against v2 results.yaml, and added the new /jobs/{jobID}/results/{outputID}/0 path.

Tests — renamed the three changed rule codes, added tests for the two new rules, and removed the obsolete JSON execution-endpoint test.

Deliberate scope decisions

  • Schemas stay on the master GitHub branch. The v2 schemas at schemas.opengis.net/…/part1/2.0/… are not published yet (r3 is still a draft — they 404). master tracks the 2.0 revision and is the live source.
  • Runtime-behavioral requirements were intentionally left out. v2 core added ~30 requirements, but most (execution modes, inline-input handling, content negotiation, response headers) aren't observable in an OpenAPI definition, which is all this linter inspects. The brand-new conformance classes (dismiss, oas30/oas31, html, kvp-execute, collection-input/output, remote-collections, callback, query-param-profile) were not scaffolded; this PR aligns the existing coverage to v2. Any follow-up for the additional v2 conformance classes can be tracked separately.

Verification

  • Processes unit tests: 71 passed (incl. the 3 new tests and the network-fetched job-list/process-description tests).
  • Validated the example against all four rulesets with live schema fetches (unit tests mock schemas): 0 violations, stable across repeated runs.
  • pnpm lint: clean.

The Processes rulesets were based on an earlier draft. Reconcile the four
covered conformance classes with the latest v2.0 draft (18-062r3, not yet a
final/published standard):

- Bump conformance-class and requirement URIs from 1.0 to 2.0 (core, job-list,
  json, ogc-process-description).
- Fix requirement identifiers to match the spec (slash -> hyphen for
  process-exception-no-such-process and the job-results-exception-* rules) and
  correct the underscore doc-link anchors.
- Resolve the ogc-process-description v2 schema TODO (point process.yaml at the
  master branch, which tracks 2.0; the schemas.opengis.net 2.0 tree is not
  published yet).
- Drop the execution POST from the JSON media-type rule; v2 no longer lists it
  (execution output is content-negotiated).
- Add the two new statically-checkable requirements: job-result-op-0th (path
  /jobs/{jobID}/results/{outputID}/0) and job-results-exception-no-such-output.
- Add type: object to the example results schema so it validates against the
  v2 results.yaml, and add the /0 path to the example.

Update and extend tests accordingly.
@joostfarla
joostfarla force-pushed the align-processes-ruleset-to-v2 branch from 27f9da8 to 01edc51 Compare July 9, 2026 09:03
@joostfarla joostfarla changed the title Align OGC API - Processes ruleset with final v2.0 spec (18-062r3) Align OGC API - Processes ruleset with latest v2.0 draft (18-062r3) Jul 9, 2026
Reconcile the requirement table with 18-062r3: fix the renamed identifiers
(process-exception-no-such-process, job-results-exception-*,
process-execute-sync-one-default-content, process-execute-success-sync-empty-outputs),
and add the missing requirements including the two new statically-checkable
rules (job-result-op-0th, job-results-exception-no-such-output).
@joostfarla
joostfarla force-pushed the align-processes-ruleset-to-v2 branch from 074f363 to fb75463 Compare July 9, 2026 09:18
@joostfarla
joostfarla merged commit eb71bb9 into main Jul 9, 2026
6 checks passed
@joostfarla
joostfarla deleted the align-processes-ruleset-to-v2 branch July 9, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support OGC API Processes v2.0 latest draft

1 participant