Releases: radiantearth/stac-spec
v1.1.0
Version 1.1.0 is the first stable release after the 1.0.0 release of the SpatioTemporal Asset Catalog specification!
The focus has been the addition of a common band construct to unify eo:bands and raster:bands.
Additionally, Item Asset Definitions are now part of the core specification and various additional fields have been made available via the common metadata mechanism.
Some alignment with OGC API - Records have been integrated and the best practices have evolved further.
It is accompanied by various minor changes and clarifications.
Changes since v1.1.0-beta.1
Added
- Add to best-practices mime types for COPC, Geoparquet, 3dTiles, pmtiles (#1321)
Fixed
item_assetsis not required- Better describe the Statistics Object (#1318)
- bands as entity in UML model
- Editorial edits
Changes since v1.0.0
Added
bandsis a new field in common metadata to replaceeo:bandsandraster:bands(#1213)- The fields
data_type,nodata,statisticsandunithave been added to common metadata (#1213) - The
keywordsfield known from Collections is available in common metadata. (#1187) - New fields
method,headersandbodyin the Link Object. (#1198) - The
licensefield additionally supports SPDX expressions and the valueother. - The
rolesfield known from Assets and Providers is available in common metadata. (#1267) - The
collectionrelation type is added to the list of known relation types. (#1236) - The
item_assetsfield in Collections are integrated from extension into the core Collection spec. (#1275) - Validation for absolute self link in item schema. (#1281)
- Best practice: Link titles should exactly reflect the title of the corresponding entity (#1168)
Changed
- Common Metadata:
- Clarify in various field descriptions that the fields do not only apply to Items
- Validate the fields also in Catalogs, Collections and Links
- If a description is given, require that it is not empty
- Clarified URL resolving mechanics, e.g. that trailing slashes in URLs are significant (#1212)
- All JSON Schema
$idvalues no longer have#at the end. - Two spatial bounding boxes in a Collection don't make sense and will be reported as invalid by the schema. (#1243)
- Clarify in descriptions that start_datetime and end_datetime are inclusive bounds (#1280)
- Moved the STAC structural relations into commons
- Moved general descriptions about Assets and Links into commons
- Moved common metadata from the item-spec into commons, but kept the JSON schemas in the item-spec for backward compatibility
Deprecated
license: The valuesproprietaryandvariousare deprecated in favor of SPDX expressions andother.
Removed
- "Strongly recommended" language around
selflinks in the item spec. (#1173)
Fixed
- Several typos and minor language changes
- Clarification on unique parent link requirement (#1279)
- Clarified that collection IDs should be unique across all collections in the corresponding root catalog
- Clarified that item IDs should be unique per collection
- Clarified which media types should be used for the hierarchical relation types
- Clarified in the Markdown specification that GeometryCollections are not allowed as Item Geometry (#1160)
- Best practice: Do not recommend subdirectories for Items without sidecar files (#1195)
- Clarified that multiple collections can point to an Item, but an Item can only point back to a single collection. (#1273)
- Restructured asset role types and clarified usage of the roles
thumbnail,overviewandvisual(#1272) - Clarified that JSON Schema draft-07 is the default version for Collection summaries and other versions may not be supported
Thanks Contributors @m-mohr @gadomski @emmanuelmathot @philvarner @sankichi92 @christophfriedrich @dwsilk @matthewhanson @cholmes @wilsaj @tschaub @jonhealy1 @nkleinbaer @jedsundwall @jbants
v1.1.0-beta.1
Version 1.1.0-beta.1 is the first update to the stable release of the SpatioTemporal Asset Catalog specification!
The focus has been the addition of a common band construct to unify eo:bands and raster:bands.
Additionally, Item Asset Definitions are now part of the core specification and various additional fields have been made available via the common metadata mechanism.
Some alignment with OGC API - Records have been integrated and the best practices have evolved further.
It is accompanied by various minor changes and clarifications.
This is a beta-release with the option to make changes before a final 1.1.0 release if the feedback of the STAC community asks for it in the next weeks. Currently, no further changes are planned at the time of this release though.
We'd appreciate if the STAC community takes some time to implement the new version and give feedback so that we can ensure the new version is mature and well-received by the community.
The following changes have been made to the specification since v1.0.0:
Added
bandsis a new field in common metadata to replaceeo:bandsandraster:bands(#1213)- The fields
data_type,nodata,statisticsandunithave been added to common metadata (#1213) - The
keywordsfield known from Collections is available in common metadata. (#1187) - New fields
method,headersandbodyin the Link Object. (#1198) - The
licensefield additionally supports SPDX expressions and the valueother. - The
rolesfield known from Assets and Providers is available in common metadata. (#1267) - The
collectionrelation type is added to the list of known relation types. (#1236) - The
item_assetsfield in Collections are integrated from extension into the core Collection spec. (#1275) - Validation for absolute self link in item schema. (#1281)
- Best practice: Link titles should exactly reflect the title of the corresponding entity (#1168)
Changed
- Common Metadata:
- Clarify in various field descriptions that the fields do not only apply to Items
- Validate the fields also in Catalogs, Collections and Links
- If a description is given, require that it is not empty
- Clarified URL resolving mechanics, e.g. that trailing slashes in URLs are significant (#1212)
- All JSON Schema
$idvalues no longer have#at the end. - Two spatial bounding boxes in a Collection don't make sense and will be reported as invalid by the schema. (#1243)
- Clarify in descriptions that start_datetime and end_datetime are inclusive bounds (#1280)
- Moved the STAC structural relations into commons
- Moved general descriptions about Assets and Links into commons
- Moved common metadata from the item-spec into commons, but kept the JSON schemas in the item-spec for backward compatibility
Deprecated
license: The valuesproprietaryandvariousare deprecated in favor of SPDX expressions andother.
Removed
- "Strongly recommended" language around
selflinks in the item spec. (#1173)
Fixed
- Several typos and minor language changes
- Clarification on unique parent link requirement (#1279)
- Clarified that collection IDs should be unique across all collections in the corresponding root catalog
- Clarified that item IDs should be unique per collection
- Clarified which media types should be used for the hierarchical relation types
- Clarified in the Markdown specification that GeometryCollections are not allowed as Item Geometry (#1160)
- Best practice: Do not recommend subdirectories for Items without sidecar files (#1195)
- Clarified that multiple collections can point to an Item, but an Item can only point back to a single collection. (#1273)
- Restructured asset role types and clarified usage of the roles
thumbnail,overviewandvisual(#1272) - Clarified that JSON Schema draft-07 is the default version for Collection summaries and other versions may not be supported
Thanks Contributors @m-mohr @gadomski @emmanuelmathot @philvarner @sankichi92 @christophfriedrich @dwsilk @matthewhanson @cholmes @wilsaj @tschaub @jonhealy1 @nkleinbaer @jedsundwall @jbants
v1.0.0
Version 1.0.0 is the first completely stable release of the SpatioTemporal Asset Catalog specification!
The following listed changes are just the very minor tweaks between version 1.0.0-rc.4 and 1.0.0. The specification itself did not change at all, it was just minor tweaks in the supporting documents. For the full list of changes in the release candidate and beta releases leading up to 1.0.0 see the 1.0.0 changelog
[v1.0.0] - 2021-05-25
Added
- Updated best practices to add a recommendation to include title in links where possible. (#1133)
Changed
v1.0.0-rc.4
[v1.0.0-rc.4] - 2021-05-11
Changed
- An empty Catalog is now allowed, removed the requirement that it must have a child or item link. (#1115)
- An open date range to both sides is now allowed in the Collection's temporal extents. (#1125)
- Catalog and Collection JSON Schemas don't have a common JSON Schema any more. (#1122)
Removed
- Catalogs don't support summaries any more. (#1122)
Fixed
v1.0.0-rc.3
[v1.0.0-rc.3] - 2021-04-29
Added
- Summaries are allowed to specify JSON Schema in addition to ranges and sets of values. (#1045)
- Added
previewrelation type for interoperable thumbnails to best practices. (#1090) - Recommendation to include both
rootandparentrelation types when they point at the same file. (#1098) - Overview section linking to various foundational standards. (#1111)
Changed
- The first extent in a Collection is always the overall extent, followed by more specific extents. (#1064, opengeospatial/ogcapi-features#520)
- Updated examples for automatic collection creation from code and validation (#1080)
- Clarified that stac_extensions should also list extensions that are used in Collection summaries. (#1077)
- The Stats Object for Summaries has been renamed to Range Object (no functional change). (#1093)
changed,created(common metadata) and temporal extents (collections): Timestamps must be always in UTC (#1095)- Clarified that collection summaries do not require that all property fields are summarized. (#1106)
- Clarified that gsd should only be used on an asset to represent the sensor, not just different processing. (#1105)
- Clarified that leaving a field out is not equivalent to setting it as null. (#1111)
v1.0.0-rc.2
[v1.0.0-rc.2] - 2021-03-31
Changed
- Required properties of type
stringrequire a minimum length of1. (#1065) gsdmust be greater than 0. (#1068)
Removed
- The remaining extensions in the spec (EO, Projection, Scientific Citation and View) have been moved out of the core specification, into their own repos in the stac-extensions GitHub organization. They must now be referred to by their schemas directly - the name shortcuts for them are no longer valid. The concept of the 'named shortcut' also goes away entirely. (#1070)
Fixed
- Collection Assets were specified as required (only in written text, not in JSON Schema), but that was incorrectly copied over from the former
collection-assetsextension. Collection Assets are not required. - Clarified that the values in summaries (both for ranges and sets of values) must follow the data type of the property they summarize. (#1069)
v1.0.0-rc.1
[v1.0.0-rc.1] - 2021-03-03
Added
- Catalog and Collection now require a
typeparameter, to be set toCatalogorCollectionfor clients to more easily distinguish them easily. (#971) - Collection specification adds Assets (previously needed Collections Asset extension to do that). (#1008)
- 'via' and 'canonical' rel types are now options in Items. (#884)
- In Extensions list there is now reference to three new (non-core) extensions: processing, file info and card4l. These would have been added to the stac-spec repo, except all non-core extensions were moved to stac-extensions org. (#1024)
- 'summaries' are now available in the Catalog spec, so both catalogs and collections can make use of it. (#903)
- There is a new recommendation to enable CORS. (#940)
- A Best Practice section on 'requester pays' cloud buckets was added. (#1021)
- A new Best Practice section explains Asset Roles, plus some lists of potential roles for people to use (in best practices, sar and eo). (#989)
- There is a new Best Practice recommendation to keep collections at consistent levels. (#1009)
Changed
- The Stats Object for Collection
summarieschangedmintominimumandmaxtomaximumto align with JSON Schema. (#967) - URIs (usually found int properties like
href,url) are now validated using theiri-referenceformat in JSON Schema (allows international characters in URIs) (#953) - Enhanced the way the spec talks about ID's to encourage more global uniqueness. (#883)
- Clarified how collection-level asset object properties do not remove the need for item-level asset object properties in the
item-assetsextension (#880) - Made
summariesto be strongly recommended - everyone should strive to implement them, as they are very useful. (#985) - Moved examples from individual directories into a single /examples folder at the root, and evolved them to be more representative. (#955)
- Renamed "Scientific Extension" to "Scientific Citation Extension" (#990)
- Relaxed the regular expression for DOIs in the scientific extension (#910)
proj:geometryallows all GeoJSON geometries instead of just a polygon. (#995)
Removed
- Checksum extension (field
checksum:multihash). Use File Info extension (fieldfile:checksum) instead for assets. There's no replacement for links. (#934) - Collection Assets extension, as the core construct of Assets in a Collection is now part of the core Collection spec. No change is required except removing
collection-assetsfrom the list ofstac_extensions. (#1008) - Numerous extensions (Data Cube, Item Assets, Point Cloud, SAR, Single File STAC, Tiled Assets, Timestamps & Versioning) have been moved out of the core specification, into their own repos in the stac-extensions GitHub organization. They must now be referred to by their schemas directly - the name shortcuts for them are no longer valid. (#1024)
Fixed
- Fixed JSON Schema for
providers(Collections and Items) to be an object and require aname. (#924)
v1.0.0-beta.2
[v1.0.0-beta.2] - 2020-07-08
Added
- JSON-schema file in the Point Cloud extension.
Changed
- Clarification on null geometries, making bbox not required if a null geometry is used.
- Multiple extents (bounding boxes / intervals) are allowed per Collection
Removed
- Validation instructions
Fixed
- Fixed several JSON Schemas
- Fixed examples
v1.0.0-beta.1
[v1.0.0-beta.1] - 2020-06-02
Removed
- The API portion of STAC has been split off into a new repository: stac-api-spec and will start being versioned and released separately than the core STAC spec.
- proj4 string from proj extension
- Various warnings about how the spec is very early and likely will change.
- implementations.md (migrated to https://stacspec.org) and how-to-help.md (migrated to https://github.com/stac-utils/stac-ecosystem).
commonsextension completely removed: Items should contain all properties and not default to a common set at the Collection level- ItemCollection removed from stac-spec core repo, will migrate to stac-api-spec as that is the only place it is used.
Added
- 'alternate' as a listed 'rel' type with recommended 'text/html' to communicate there is an html version.
- Added a code of conduct based on github's template.
- Overview document that gives a more explanatory discussion of the various parts of the spec and how they relate
- Several new sections to 'best practices' document.
- Added the ability to define Item properties under Assets (item-spec/item-spec.md)
- Add
proj:shapeandproj:transformto the projections extension. - Collection-level assets extension
- Instructions on how to run check-markdown locally
- Timestamps extensions (adds fields
published,expiresandunpublished) createdandupdatedcan be used in the assets to specify the creation / update times of the assets.- Tiled Assets extension, for representing data that has been split into tiles
Changed
- Label extension types were clarified and types in README and JSON schema were brought into alignment
- Moved item recommendations to best practices, and added a bit more in item spec about 'search'
- Moved
eo:gsdfromeoextension to coregsdfield in Item common metadata assetextension renamed toitem-assetsand renamedassetsfield in Collections toitem_assetsitem-assetsextension only requires any two fields to be available, not the two specific fieldstitleandtypedatetimeallowsnullas value, but requiresstart_datetimeandend_datetimethen- Extensions
sat,scientificandview: At least one field is required to be specified. - Single File STAC extension changed to be a complete STAC catalog + GeoJSON FeatureCollection that contains collections and items.
- Improved several JSON Schemas
Fixed
- Datacube extension:
cube:dimensionswas not flagged as required.
v0.9.0
v0.9.0 - 2020-02-26
Added
- ItemCollection requires
stac_versionfield,stac_extensionshas also been added - A
descriptionfield has been added to Item assets (also Asset definitions extension) - Field
missionto Common Metadata fields - Extensions:
- Version Indicators extension, new
versionanddeprecatedfields in STAC Items and Collections - Data Cube extension can be used in Collections, added new field
description - Asset Extension: new
descriptionandrolesfields - New Projection Extension to describe Items with Assets that have an associated geospatial projection
- New View Geometry Extension
- Version Indicators extension, new
- STAC API:
- Added the Item and Collection API Version extension to support versioning in the API specification
- Run
npm run serveornpm run serve-extto quickly render development versions of the OpenAPI spec in the browser
- Basics added to Common Metadata definitions with new
descriptionfield for
Item properties - New fields to the
linkobject to facilitate pagination support for POST requests datarole, as a suggestion for a common role for data files to be used in case data providers don't come up with their own names and semantics- Clarification text on HTTP verbs in STAC API
Changed
- Support for CommonMark 0.29 instead of CommonMark 0.28
- Collection field
propertyand the merge ability moved to a new extension 'Commons' - Added attribute
rolesto Item assets (also Asset definitions extension), to be used similarly to Linkrel - Updated API yaml to clarify bbox filter should be implemented without brackets. Example:
bbox=160.6,-55.95,-170,-25.89 - Collection
summariesmerge array fields now - Several fields have been moved from extensions or item fields to the Common Metadata fields:
eo:platform/sar:platform=>platformeo:instrument/sar:instrument=>instruments, also changed from string to array of stringseo:constellation/sar:constellation=>constellationdtr:start_datetime=>start_datetimedtr:end_datetime=>end_datetime
- Moved angle definitions from extensions
eoand newviewextensioneo:off_nadir->view:off_nadireo:azimuth->view:azimutheo:incidence_angle->view:incidence_angleeo:sun_azimuth->view:sun_azimutheo:sun_elevation->view:sun_elevation
- Extensions:
- Data Cube extension: Changed allowed formats (removed PROJ string, added PROJJSON / WKT2) for reference systems
- Checksum extension is now using self-identifiable hashes (Multihash)
- Changed
sar:typetosar:product_typeandsar:polarizationtosar:polarizationsin the SAR extension
- STAC API:
- The endpoint
/stachas been merged with/ - The endpoint
/stac/searchis now called/search - Sort Extension - added non-JSON query/form parameter format
- Fields extension has a simplified format for GET parameters
searchextension renamed tocontextextension. JSON object renamed fromsearch:metadatatocontext- Removed "next" from the search metadata and query parameter, added POST body and headers to the links for paging support
- Query Extension - type restrictions on query predicates are more accurate, which may require additional implementation support
- The endpoint
- Item
titledefinition moved from core Item fields to Common Metadata Basics
fields. No change is required for STAC Items. putFeaturecan return aPreconditionFailedto provide more explicit information when the resource has changed in the server- Sort extension now uses "+" and "-" prefixes for GET requests to denote sort order.
- Clarified how
/searchlinks must be added to/and changed that links to both GET and POST must be provided now that the method can be specified in links
Removed
versionfield in STAC Collections. Use Version Extension insteadsummariesfield from Catalogs. Use Collections instead- Asset Types (pre-defined values for the keys of individual assets, not media types) in Items. Use the asset's
rolesinstead licensefield doesn't allow SPDX expressions any longer. Usevariousand links instead- Extensions:
eo:platform,eo:instrument,eo:constellationfrom EO extension, andsar:platform,sar:instrument,sar:constellationfrom the SAR extension- Removed from EO extension field
eo:epsgin favor ofproj:epsg gsdandaccuracyfromeo:bandsin the EO extensionsar:absolute_orbitandsar:center_wavelengthfields from the SAR extensiondata_typeandunitfrom thesar:bandsobject in the SAR extension- Datetime Range (
dtr) extension. Use the Common Metadata fields instead
- STAC API:
nextfrom the search metadata and query parameter
- In API, removed any mention of using media type
multipart/form-dataandx-www-form-urlencoded
Fixed
- The
licensefield in Item and Collection spec explicitly mentions that the valueproprietarywithout a link means that the data is private - Clarified how to fill
stac_extensions - More clarifications; typos fixed
- Fixed Item JSON Schema now
allOfoptional Common Metadata properties are evaluated - Clarified usage of optional Common Metadata fields for STAC Items
- Clarified usage of paging options, especially in relation to what OGC API - Features offers
- Allow Commonmark in asset description, as it's allowed everywhere else
- Put asset description in the API
- Fixed API spec regarding license expressions
- Added missing schema in the API Version extension
- Fixed links in the Landsat example in the collection-spec