Configuring the Voyager STAC service

The STAC service is exposed through HQ and can be configured through the following steps:

  1. Navigate to your HQ config directory for instance <hq home folder>\config. If you’re not sure where this is you can find it through the vmoptions file or through the the HQ user interface at https://<server url>/app/system/info

  2. create a file called stac.json at under the following path .\home\config\service\stac.json. The file should have the following content with descriptions following the example.

  3. Access the STAC endpoint using the following URL https://<base url to HQ>/api/stac/<id of catalog>

Default stac.json

This is the basic configuration and will expose all data in the voyager registry as STAC items.

{ "catalogs": [ { "collection": { "descriptorSource": "repos.json", "license": "proprietary", "descriptionPath": "$.repositories[?(@.id=='%(id)')].url", "titlePath": "$.repositories[?(@.id=='%(id)')].name" }, "datetimeField": "indexed", "description": "Voyager STAC", "facetField": "location", "fieldList": [ "" ], "id": "locations", "query": "q=:*" } ], "lastModified": 1697121839831 }

Example: Exposing Planet Labs data (stac.json)

{ "catalogs": [{ "collection": { "descriptorSource": "stac_catalogs.json", "license": "$.providers[?(@.id=='%(id)')].license", "descriptionPath": "$.providers[?(@.id=='%(id)')].description", "titlePath": "$.providers[?(@.id=='%(id)')].title" }, "datetimeField": "fd__acquired", "facetField": "fs__provider", "fieldList": [], "description": "Planet STAC by Voyager", "id": "planet", "query": "q={!tag=format}format:(application\/vnd.planet.feature)" } ] }

Annotated Example: Exposing Planet Labs data indexed using the planet connector (available by request from our professional services team) file:stac.json

{ "catalogs": [{ "collection": { // NOTE: reference to new file containing metadata elements // file is store at .\home\config "descriptorSource": "stac_catalogs.json", "license": "$.providers[?(@.id=='%(id)')].license", "descriptionPath": "$.providers[?(@.id=='%(id)')].description", "titlePath": "$.providers[?(@.id=='%(id)')].title" }, // NOTE: this is the field used to expose the date and time "datetimeField": "fd__acquired", // NOTE: the field used to expose multiple collections "facetField": "fs__provider", // NOTE: the list of fields to expse through STAC // empty allows all fields to be exposed "fieldList": [], // NOTE: a nice description "description": "Planet STAC by Voyager", // NOTE: the id "id": "planet", // NOTE: the query used to select what is exposed through STAC "query": "q={!tag=format}format:(application\/vnd.planet.feature)" } ] }

stac_catalogs.json