feat(tilepack): add first-pass OGC process API - #309
Conversation
|
Any thoughts on the comment in #302 before we go ahead and implement? How could we plan to maintain modularity of OAM, when the
I don't have answers to these questions - hence the need for more discussion 😅 |
|
I agree — I think these are the right architectural questions to settle before we go further with #309. My current implementation was intentionally a first-pass adapter inside "tilepack-api", mainly to validate what an OGC Processes surface would look like against a real OAM workflow. But I agree that making "tilepack-api" the long-term owner of a global "/processes" endpoint could work against the modularity of the platform. I think we should first decide where the process catalog/routing layer belongs:
I'm happy to pause #309 here and work on the architectural direction first rather than locking us into the current ownership model. |
|
First we need to know what GET Perhaps we could implement this as a simple Nginx Ingress response if its simple enough |
What type of PR is this? (check all applicable)
Related Issue
Fixes #302
Describe this PR
This PR adds a minimal OGC-compatible process discovery and execution surface for the existing tilepack workflow.
It introduces:
GET /processesto discover available processesGET /processes/tilepackto describe the tilepack processPOST /processes/tilepack/executionto trigger the existing tilepack workflowThe new process API is implemented as a thin adapter over the existing tilepack execution path. It reuses the current validation, S3 idempotency/output handling, Kubernetes Job creation, and pgSTAC publication flow rather than introducing a separate execution framework or database.
The tilepack ingress is also updated to expose the new
/processesroutes.This is intentionally a first-pass implementation focused on establishing the process API convention with one existing OAM workflow. Cross-service
/processesrouting, a global process registry, additional processing workflows, and a separate/jobs/{jobId}API are left for future work.Screenshots
Not applicable. This PR adds backend API endpoints and deployment configuration without UI changes.
Alternative Approaches Considered
The issue discussion considered using ZOO-Project to provide the OGC Processes API and introducing a broader workflow/process layer.
For this first pass, I chose to keep the implementation within the existing tilepack service and adapt the current tilepack execution flow instead.
This avoids introducing a new execution framework or database before validating the API convention against a real OAM processing workflow.
A broader
/processesregistry or multi-service routing strategy can be addressed separately once the first process implementation has been reviewed.Review Guide
The main areas to review are:
Process discovery:
GET /processesGET /processes/tilepackGET /processes/unknown→404Process execution:
POST /processes/tilepack/execution{"inputs": {...}}request handlingBackward compatibility:
POST /tilepacks/{id}behavior remains unchangedDeployment:
/processesTests:
go test ./...go vet ./...The implementation intentionally does not add a separate job registry; the existing tilepack execution/status behavior remains the source of truth for this first pass.
Checklist before requesting a review