opengeospatial / opengeospatial/ogcapi-processes

Part 1: Dismiss breaks HTTP Semantics

Open
#620 4 comments 1 reaction 1 assignee View on GitHub

@pvretano is already working on this.

Since Aug 31, 2026.

2.0
Dominant language
AsciiDoc
Stars
63
Forks
46
Avg merge
2d 1h
Merged PRs (30d)
8

Description

Part 1 currently has the following requirements:

Requirement 112

  • The server SHALL support the HTTP DELETE operation at the path /jobs/{jobID}.

Requirement 113

  • A: If the job is currently in the accepted or running state, then the server SHALL set the status of the job to dismissed.
  • B: If the job is currently in the successful, failed or dismissed state, then the server SHALL remove the job and it SHALL no longer be accessible via the Processes API.

That approach violates HTTP semantics, since DELETE requests must be idempotent. That is, the result of one or two DELETEs on a running job must be the same end result, but currently is different (one DELETE: dismissed, two DELETEs: removed). As a result, the request is not idempotent as required by RFC 9110 (see the Method Registry).

The underlying reason is that the same request is used with two different semantics, which is not a good API design.

Potential options:

  • Change req 113 to "remove the job, cancelling first if necessary";
  • leave removal up to the server;
  • model dismissal as PUT /jobs/{jobID}/status (idempotent) or POST /jobs/{jobID}/dismiss, reserving DELETE for removal.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.