400 api enhancements - #531
Conversation
daniel-slaugh
left a comment
There was a problem hiding this comment.
I spent a lot of time reading through this PR, clicking around, and pointing agents at it with directed questions. In general, everything seems to be running pretty smooth. The agents found the following issues I'd recommend looking at before submitting this:
[P1] Observation downloads can silently omit data.
The server returns an estimated totalCount for large filtered queries, but the clients use it to decide when to stop downloading. With 60,000 matching observations, an estimate of 40,000, and the UI’s 50,000-row page size, the client downloads only 50,000 and reports success. I reproduced this using the PR’s count and pagination logic. Count implementation
[P2] Task-run endpoints return HTTP 500 for advertised query parameters.
ETL, monitoring, and product run-list endpoints forward properties and include into a service that rejects those arguments. limit=0 also passes request validation but fails service validation. I verified all three validation failures; the exception handler maps them to 500. These are one API-contract bug, not separate findings. Affected forwarding
[P2] The ingestion selector allows mappings that cannot be saved.
linkedDatastreamIds is now permanently empty, so datastreams already assigned to another ingestion task appear available. Selecting one passes frontend validation, but the backend rejects its mapping because the target must be unique. The new task is saved before its mappings, so this also leaves a partially created task. Disabled selection guard
|
@daniel-slaugh The issues you found should be addressed now.
|
Updates several parts of the data management API to improve flexibility in using the API and to better align the API with OGC specs.
Note: These changes adopt several design paradigms used by the OGC API spec, but are still not fully compliant with the spec. Strict spec compliance will be worked on later.