developmentseed / developmentseed/titiler-covjson

Implement a standalone /info metadata endpoint (coverage metadata, no data values)

Open
#59 0 comments 0 reactions 0 assignees View on GitHub
deferred
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.