developmentseed / developmentseed/titiler-covjson
Implement a standalone /info metadata endpoint (coverage metadata, no data values)
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 12
Description
Implement a standalone `GET /info` endpoint returning a single dataset's CoverageJSON **metadata** -- the coverage's spatial domain extent and its parameters (band descriptions and units) -- **without data values**, modeled from the reader's `info()`. This is a description/metadata aid, not a data-extraction endpoint, and it does **not** depend on OGC API - Environmental Data Retrieval conformance (Option C in [ADR-0001](docs/adr/0001-covjson-http-api-direction.md)); it stands alone.
Unmilestoned: real but unscheduled, parked in the backlog like the CoverageCollection work (#24), to be pulled into a milestone when prioritized.
## Open question to scope first
How to represent a **values-less coverage** as schema-valid CoverageJSON. CoverageJSON ranges are normally required and must be consistent with the domain, so a metadata-only response needs a decided shape:
- a Coverage carrying `domain` (extent) and `parameters` but with ranges omitted or represented as an empty/typed placeholder, if the vendored schema permits; or
- an alternative structure (e.g., a parameters plus domain-description document) if a rangeless Coverage does not validate.
Settle this against the vendored `coveragejson.json` schema before building.
## Sketch (pending the above)
- **Path and parameters:** `GET {prefix}/info` with the usual `url=` / dataset dependency, the EDR `parameter-name` alias for band selection, and the `crs` override.
- **Read:** `Reader.info()` (and/or `statistics()`) for extent and parameter metadata -> a metadata path -> a values-less coverage.
- **Format / response:** `f=CoverageJSON` else `Accept`; `application/prs.coverage+json` (reuse `CovJSONResponse`).
## Out of scope
- The crawlable discovery surface (`/collections`, `/collections/{id}`, `/conformance`) -- that is Option C (full conformance), deliberately not planned at this time per ADR-0001.
Follows ADR-0001. No milestone (backlog).
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with docs/adr/0001-covjson-http-api-direction.md and the vendored coveragejson.json schema to resolve whether a values-less CoverageJSON shape validates. Then inspect Reader.info() (and possibly statistics()) and CovJSONResponse to map the metadata path. Done means a scoped GET /info endpoint with the stated url, parameter-name, crs, and format/Accept behavior, returning validated domain and parameter metadata without data values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json, python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100