|
2 | 2 |
|
3 | 3 | - [Overview](#overview)
|
4 | 4 | - [General Conventions](#general-conventions)
|
| 5 | +- [The `stac_extensions` property](#the-stac_extensions-property) |
5 | 6 | - [Stable STAC Extensions](#stable-stac-extensions)
|
6 | 7 | - [Community Extensions](#community-extensions)
|
7 | 8 | - [Extension Maturity](#extension-maturity)
|
@@ -43,6 +44,25 @@ Each extension has at least one *owner*. You can find extension owners in each e
|
43 | 44 | 3. Additional attributes relating to a [Catalog](../catalog-spec/catalog-spec.md) or
|
44 | 45 | [Collection](../collection-spec/collection-spec.md) should be added to the root of the object.
|
45 | 46 |
|
| 47 | +## The `stac_extensions` property |
| 48 | + |
| 49 | +[Catalog](../catalog-spec/catalog-spec.md#stac_extensions), [Collection](../collection-spec/collection-spec.md#stac_extensions) and |
| 50 | +[Item](../item-spec/item-spec.md#stac_extensions) objects have a `stac_extensions` property which contain URLs to JSON Schemas used to |
| 51 | +validate the implementation of an extension. These JSON Schema URLs act as identifiers for specific version of the extension that the |
| 52 | +object implements. The logic for when an object should list an extension JSON Schema URL (referred to as the extension ID) in it's |
| 53 | +`stac_extension` property is as follows: |
| 54 | + |
| 55 | +- If the object directly implements the extension, the `stac_extensions` property of that object should contain the extension ID. |
| 56 | +- If an Asset implements properties of the extension, then `stac_extensions` property of the Item or Collection which holds that |
| 57 | + Asset should contain the extension ID. |
| 58 | +- If a Collection [summary](../collection-spec/collection-spec.md#summaries) contains Item properties that implement an extension, then |
| 59 | + the `stac_extensions` property of that Collection should list the extension ID. For example, if a Collection `summaries` property |
| 60 | + contains a summary of `eo:bands`, then that Collection should have the EO extension JSON Schema URL in the `stac_extensions` property. |
| 61 | +- If an object implements an extension that results in properties from a separate extension to be referenced, then the latter extension |
| 62 | + ID should be included in the `stac_extension` property for that object. For example, if a Collection implements the |
| 63 | + [item_assets](https://github.com/stac-extensions/item-assets) extension, and in the `item_assets` property there is an Asset Definition |
| 64 | + which includes `eo:bands`, then the EO extension ID should be listed in that Collection's `stac_extensions` property. |
| 65 | + |
46 | 66 | ## Stable STAC Extensions
|
47 | 67 |
|
48 | 68 | These extensions are considered stable and are widely used in many production implementations. As additional extensions advance
|
|
0 commit comments