Home

Awesome

Versioning Indicators Extension Specification

This document explains the Versioning Indicators Extension to the SpatioTemporal Asset Catalog (STAC) specification.

This extension allows to version STAC Collections and STAC Items. Therefore, it also allows to deprecate legacy versions. Only fields and possible link relation types are defined in this extension, but it does NOT suggest any versioning best practices to structure static or dynamic catalogs. Instead check the Versioning Best Practices for Catalogs.

Fields

The fields in the table below can be used in these parts of STAC documents:

Field NameTypeDescription
versionstringVersion of the context this fields is used in (e.g. Asset or Collection).
deprecatedbooleanSpecifies that the context this field is used in (e.g. Asset or Collection) is deprecated with the potential to be removed. Defaults to false. It should be transitioned out of usage as soon as possible and users should refrain from using it in new projects. A link with relation type latest-version SHOULD be added to the links and MUST refer to the resource that can be used instead.
experimentalbooleanSpecifies that the context this field is used in (e.g. Asset or Collection) is experimental with the potential to break or be unstable. Defaults to false.

These fields have different meaning depending on where they are used. When used as an Item properties or top-level Collection field, they refer to the version or deprecation of all data referenced in the Item or Collection, which may include the metadata itself. When used in an Asset Object, they refer to the version or deprecation of the particular data asset linked to in the Asset Object.

Relation types

The following types should be used as applicable rel types for the Link Object to reference the latest version, the predecessor version and successor versions. These are all following RFC 5829.

TypeDescription
latest-versionThis link points to a STAC resource containing the latest (e.g., current) version. A maximum of one link can use this relation type per STAC resource.
predecessor-versionOne or multiple links can point to STAC resources that are predecessor versions in the version history.
successor-versionOne or multiple links can point to STAC resources that are successor versions in the version history.
version-historyThis link points to a version history or changelog. This can be for example a Markdown file with the corresponding media type or a STAC Catalog or Collection.

Contributing

All contributions are subject to the STAC Specification Code of Conduct. For contributions, please follow the STAC specification contributing guide Instructions for running tests are copied here for convenience.

Running tests

The same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid. To run tests locally, you'll need npm, which is a standard part of any node.js installation.

First you'll need to install everything with npm once. Just navigate to the root of this repository and on your command line run:

npm install

Then to check markdown formatting and test the examples against the JSON schema, you can run:

npm test

This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.

If the tests reveal formatting problems with the examples, you can fix them with:

npm run format-examples