STAC API - Distribution Extension Specification

May 15, 2024 ยท View on GitHub

Overview

A STAC API Landing Page (a Catalog) can return information about the Catalog and Collection child objects it contains using the link relation distribution to an endpoint /distrib.

The purpose of this endpoint is to present information about the distribution of the software serving the STAC API.

This conformance class also requires implementation of the link relations in the STAC API - Core conformance class.

The following Link relations must exist in the Landing Page (root).

relhrefFromDescription
distribution/distribSTAC API - DistributionSTAC API Software Distribution information of this catalog

The following Link relations must exist in the /distrib endpoint response.

relhrefFromDescription
root/STAC CoreThe root URI
self/distribSTAC API - DistributionSelf reference

Endpoints

This conformance class also requires for the endpoints in the STAC API - Core conformance class to be implemented.

EndpointReturnsDescription
/distribJSONSTAC API Software Distribution information of this catalog

STAC APIs implementing the STAC API - Distribution conformance class must support HTTP GET operation at /distrib, with the return JSON document consisting of a root object distribution with the folowing fields:

Field NameTypeDescription
idstringREQUIRED A unique identifier for this STAC API software distribution
namestringA human-readable title for this STAC API software distribution
descriptionstringA description of this STAC API software distribution
versionstringThe version of the STAC API software distribution
licensestringThe license of the STAC API software distribution
linksarrayREQUIRED An array of links to other resources

more fields can be added to the response object, such as an inline change log, or a list of contributors.

Example

Below is a minimal example, but captures the essence.

The /distrib endpoint response object should look as follows:

{
  "distribution": {
    "id": "super-stac-api-server-1.0",
    "name": "Super STAC API Server 1.0",
    "description": "A super STAC API server that implements the STAC API specification",
    "version": "1.0.0",
    "license": "Apache-2.0"
  },
  "links": [
    {
      "rel": "root",
      "type": "application/json",
      "href": "https://stac-api.example.com"
    },
    {
      "rel": "self",
      "type": "application/json",
      "href": "https://stac-api.example.com/distrib"
    }
  ]
}