diff --git a/CHANGELOG.md b/CHANGELOG.md index 2860df89..9dcd5bc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + ## [Unreleased] +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +## [v1.0.0-beta.3] - 2020-08-06 + ### Added - Added STAC API - Collections definition (subset of STAC API - Features) diff --git a/README.md b/README.md index 62a31443..ccd78cd0 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ to search STAC catalogs, where the features returned are STAC [Item](stac-spec/i that have common properties, links to their assets and geometries that represent the footprints of the geospatial assets. The specification for STAC API is provided as files that follow the [OpenAPI](http://openapis.org/) 3.0 specification, -rendered online into HTML at , in addition to human-readable documentation. +rendered online into HTML at , in addition to human-readable documentation. ## Stability Note diff --git a/build/swagger-config.yaml b/build/swagger-config.yaml index 1ba7c05b..ad056d8e 100644 --- a/build/swagger-config.yaml +++ b/build/swagger-config.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: STAC API - Complete - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 apis: - url: 'build/core/openapi.yaml' paths: diff --git a/collections/README.md b/collections/README.md index ed5ec7d5..aa091ea0 100644 --- a/collections/README.md +++ b/collections/README.md @@ -7,7 +7,7 @@ - [Conformance](#conformance) - **OpenAPI specification:** Missing -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Dependencies**: [STAC API - Core](../core) @@ -25,42 +25,42 @@ aim to align with it. But it still seems to be in flux.* The following Link relations should exist in the Landing Page (root). -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `self` | `/` | OAFeat | Self reference, same as root URI | +| **rel** | **href** | **From** | **Description** | +| -------------- | -------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `root` | `/` | STAC Core | The root URI | +| `self` | `/` | OAFeat | Self reference, same as root URI | | `service-desc` | `/api` (recommended) | OAFeat OpenAPI | The OpenAPI service description. Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | -| `child` | various | STAC Core | The child STAC Catalogs & Collections. Provides curated paths to get to STAC Collection and Item objects | -| `data` | `/collections` | OAFeat | List of Collections | +| `child` | various | STAC Core | The child STAC Catalogs & Collections. Provides curated paths to get to STAC Collection and Item objects | +| `data` | `/collections` | OAFeat | List of Collections | Additionally, a `service-doc` endpoint is recommended. -| **rel** | **href** | **From** | **Description** | -| ------------ | -------- | -------------- |----------------- | -| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | +| **rel** | **href** | **From** | **Description** | +| ------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | The following Link relations should exist in the `/collections` endpoint response. -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `self` | `/collections` | OAFeat | Self reference | +| **rel** | **href** | **From** | **Description** | +| ------- | -------------- | --------- | --------------- | +| `root` | `/` | STAC Core | The root URI | +| `self` | `/collections` | OAFeat | Self reference | The following Link relations should exist in the `/collections/{collectionId}` endpoint response. -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `parent` | `/` | OAFeat | Parent reference, usually the root Catalog | -| `self` | `/collections/{collectionId}` | OAFeat | Self reference | -| `items` | `/collections/{collectionId}/items` | OAFeat | Items within Collection | +| **rel** | **href** | **From** | **Description** | +| -------- | ----------------------------------- | --------- | ------------------------------------------ | +| `root` | `/` | STAC Core | The root URI | +| `parent` | `/` | OAFeat | Parent reference, usually the root Catalog | +| `self` | `/collections/{collectionId}` | OAFeat | Self reference | +| `items` | `/collections/{collectionId}/items` | OAFeat | Items within Collection | ## Endpoints -| Endpoint | Returns | Description | -| ----------------------------------------------- | ---------------- | ----------- | -| `/collections` | JSON | Object with a list of Collections contained in the catalog and links | -| `/collections/{collectionId}` | Collection | Returns single Collection JSON | +| Endpoint | Returns | Description | +| ----------------------------- | ---------- | -------------------------------------------------------------------- | +| `/collections` | JSON | Object with a list of Collections contained in the catalog and links | +| `/collections/{collectionId}` | Collection | Returns single Collection JSON | STAC API's implementing the Collections class must support HTTP GET operation at `/collections`, with the return JSON document consisting of an array of all STAC Collections and an array of Links. @@ -134,7 +134,7 @@ and if the canonical location is elsewhere it is recommended to include a `rel` ## Conformance -Any implementation that provides the STAC Collection functionality described above must add `http://stacspec.org/spec/api/1.0.0-beta.2/collections`, +Any implementation that provides the STAC Collection functionality described above must add `http://stacspec.org/spec/api/1.0.0-beta.3/collections`, the conformance URI, to the `conformsTo` JSON at the landing page. The core STAC landing page (`/`) must also include a link with a `rel` of `data` that links to the `/collections` endpoint. diff --git a/collections/openapi.yaml b/collections/openapi.yaml index a8c37e86..3aa23810 100644 --- a/collections/openapi.yaml +++ b/collections/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: STAC API - Collections - version: '1.0.0-beta.2' + version: '1.0.0-beta.3' description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API - Core specification. This is a subset of the STAC API - Collections specification. @@ -38,13 +38,13 @@ paths: schema: $ref: '../core/openapi.yaml#/components/schemas/landingPage' example: - stac_version: 1.0.0-beta.2 + stac_version: 1.0.0-beta.3 type: Catalog id: sentinel title: Copernicus Sentinel Imagery description: Catalog of Copernicus Sentinel 1 and 2 imagery. conformsTo: - - 'https://api.stacspec.org/v1.0.0-beta.2/core' + - 'https://api.stacspec.org/v1.0.0-beta.3/core' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson' diff --git a/core/README.md b/core/README.md index 00cccb33..c32cfbe9 100644 --- a/core/README.md +++ b/core/README.md @@ -5,9 +5,9 @@ - [Example Landing Page for STAC API - Core](#example-landing-page-for-stac-api---core) - [Extensions](#extensions) -- **OpenAPI specification:** [openapi.yaml](openapi.yaml) describes the core endpoints ([rendered version](https://api.stacspec.org/v1.0.0-beta.2/core)), +- **OpenAPI specification:** [openapi.yaml](openapi.yaml) describes the core endpoints ([rendered version](https://api.stacspec.org/v1.0.0-beta.3/core)), and [commons.yaml](commons.yaml) is the OpenAPI version of the core [STAC spec](../stac-spec) JSON Schemas. -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Dependencies**: None @@ -50,18 +50,18 @@ API endpoints from OAFeat or STAC API to be implemented, so the following links The following Link relations should exist in the Landing Page (root). -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `self` | `/` | OAFeat | Self reference, same as root URI | +| **rel** | **href** | **From** | **Description** | +| -------------- | -------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `root` | `/` | STAC Core | The root URI | +| `self` | `/` | OAFeat | Self reference, same as root URI | | `service-desc` | `/api` (recommended) | OAFeat OpenAPI | The OpenAPI service description. Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | -| `child` | various | STAC Core | The child STAC Catalogs & Collections. Provides curated paths to get to STAC Collection and Item objects | +| `child` | various | STAC Core | The child STAC Catalogs & Collections. Provides curated paths to get to STAC Collection and Item objects | Additionally, a `service-doc` endpoint is recommended. -| **rel** | **href** | **From** | **Description** | -| ------------ | -------- | -------------- |----------------- | -| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | +| **rel** | **href** | **From** | **Description** | +| ------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | It is also valid to have `item` links from the landing page, but most STAC API services are used to serve up a large number of features, so they typically @@ -82,7 +82,7 @@ the [overview](../overview.md#example-landing-page) document. "title": "A simple STAC API Example", "description": "This Catalog aims to demonstrate the a simple landing page", "conformsTo" : [ - "https://api.stacspec.org/v1.0.0-beta.2/core" + "https://api.stacspec.org/v1.0.0-beta.3/core" ], "links": [ { diff --git a/core/commons.yaml b/core/commons.yaml index 0ab1f189..c744e2f3 100644 --- a/core/commons.yaml +++ b/core/commons.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Commons description: This is the OpenAPI version of the core STAC spec JSON Schemas. - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: responses: diff --git a/core/openapi.yaml b/core/openapi.yaml index 80ed3084..eeb4d1f8 100644 --- a/core/openapi.yaml +++ b/core/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: STAC API - Core - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API - Core specification. Any service that implements this endpoint to allow discovery of @@ -63,7 +63,7 @@ components: title: Copernicus Sentinel Imagery description: Catalog of Copernicus Sentinel 1 and 2 imagery. conformsTo: - - 'https://api.stacspec.org/v1.0.0-beta.2/core' + - 'https://api.stacspec.org/v1.0.0-beta.3/core' links: - href: 'http://data.example.org/' rel: self diff --git a/extensions.md b/extensions.md index a3b39cd2..88b8a75e 100644 --- a/extensions.md +++ b/extensions.md @@ -16,13 +16,13 @@ in terms of stability and number of implementations. All extensions included mus maturity classification, so that STAC spec users can easily get a sense of how much they can count on the extension. -| Maturity Classification | Min Impl # | Description | Stability | -| ----------------------- | ----------- | ----------- | --------- | -| Proposal | 0 | An idea put forward by a community member to gather feedback | Not stable - breaking changes almost guaranteed as implementers try out the idea. | -| Pilot | 1 | Idea is fleshed out, with examples and a JSON schema, and implemented in one or more catalogs. Additional implementations encouraged to help give feedback | Approaching stability - breaking changes are not anticipated but can easily come from additional feedback | -| Candidate | 3 | A number of implementers are using it and are standing behind it as a solid extension. Can generally count on an extension at this maturity level | Mostly stable, breaking changes require a new version and minor changes are unlikely. | -| Stable | 6 | Highest current level of maturity. The community of extension maintainers commits to a STAC review process for any changes, which are not made lightly. | Completely stable, all changes require a new version number and review process. | -| Deprecated | N/A | A previous extension that has likely been superseded by a newer one or did not work out for some reason. | Will not be updated and may be removed in an upcoming major release. | +| Maturity Classification | Min Impl # | Description | Stability | +| ----------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| Proposal | 0 | An idea put forward by a community member to gather feedback | Not stable - breaking changes almost guaranteed as implementers try out the idea. | +| Pilot | 1 | Idea is fleshed out, with examples and a JSON schema, and implemented in one or more catalogs. Additional implementations encouraged to help give feedback | Approaching stability - breaking changes are not anticipated but can easily come from additional feedback | +| Candidate | 3 | A number of implementers are using it and are standing behind it as a solid extension. Can generally count on an extension at this maturity level | Mostly stable, breaking changes require a new version and minor changes are unlikely. | +| Stable | 6 | Highest current level of maturity. The community of extension maintainers commits to a STAC review process for any changes, which are not made lightly. | Completely stable, all changes require a new version number and review process. | +| Deprecated | N/A | A previous extension that has likely been superseded by a newer one or did not work out for some reason. | Will not be updated and may be removed in an upcoming major release. | Maturity mostly comes through diverse implementations, so the minimum number of implementations column is the main gating function for an extension to mature. But extension authors can also @@ -50,15 +50,15 @@ are scoped against ogcapi-features*. This is the list of all extensions that are contained in the stac-api-spec repository. -| Extension Name | Scope* | Description | Maturity | -|----------------|--------|-------------|----------| -| [Fields](item-search/README.md#fields) | [Item Search](item-search/) request | Adds parameter to control which fields are returned in the response. | *Pilot* | -| [Filter](item-search/README.md#filter) | [Item Search](item-search/) and [STAC - Features API](ogcapi-features) `/items` requests | Adds parameter to search Item and Collection properties. | *Pilot* | -| [Context](item-search/README.md#context) | [Item Search](item-search/) response ([ItemCollection](fragments/itemcollection/README.md)) | Adds search related metadata (context) to ItemCollection. | *Proposal* | -| [Sort](item-search/README.md#sort) | [Item Search](item-search/) request | Adds Parameter to control sorting of returns results. | *Pilot* | -| [Transaction](ogcapi-features/extensions/transaction/README.md) | [STAC - Features API](ogcapi-features) POST on `/items` endpoint, DELETE/PUT on `/items/{itemId}` endpoint | Adds PUT and DELETE endpoints for the creation, editing, and deleting of Item objects. | *Pilot* | -| [Items and Collections API Version](ogcapi-features/extensions/version/README.md) | [STAC - Features API](ogcapi-features) on `/items` endpoint | Adds GET versions resource to Collection and Item endpoints and provides semantics for a versioning scheme for Collection and Item objects. | *Proposal* | -| [Query](item-search/README.md#query) | [Item Search](item-search/) request | Adds parameter to search Item and Collection properties. | *Pilot*, scheduled to be *Deprecated* | +| Extension Name | Scope* | Description | Maturity | +| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | +| [Fields](item-search/README.md#fields) | [Item Search](item-search/) request | Adds parameter to control which fields are returned in the response. | *Pilot* | +| [Filter](item-search/README.md#filter) | [Item Search](item-search/) and [STAC - Features API](ogcapi-features) `/items` requests | Adds parameter to search Item and Collection properties. | *Pilot* | +| [Context](item-search/README.md#context) | [Item Search](item-search/) response ([ItemCollection](fragments/itemcollection/README.md)) | Adds search related metadata (context) to ItemCollection. | *Proposal* | +| [Sort](item-search/README.md#sort) | [Item Search](item-search/) request | Adds Parameter to control sorting of returns results. | *Pilot* | +| [Transaction](ogcapi-features/extensions/transaction/README.md) | [STAC - Features API](ogcapi-features) POST on `/items` endpoint, DELETE/PUT on `/items/{itemId}` endpoint | Adds PUT and DELETE endpoints for the creation, editing, and deleting of Item objects. | *Pilot* | +| [Items and Collections API Version](ogcapi-features/extensions/version/README.md) | [STAC - Features API](ogcapi-features) on `/items` endpoint | Adds GET versions resource to Collection and Item endpoints and provides semantics for a versioning scheme for Collection and Item objects. | *Proposal* | +| [Query](item-search/README.md#query) | [Item Search](item-search/) request | Adds parameter to search Item and Collection properties. | *Pilot*, scheduled to be *Deprecated* | ### Conformance classes of extensions @@ -66,23 +66,23 @@ Each extension has its own conformance URI, which is used in the `conformsTo` re the service supports. This are listed at the top of each extension description, but the full table is given here for ease of reference. - [Fields](item-search/README.md#fields) - - + - - [Filter](item-search/README.md#filter) - - - - - - - - - - + - + - + - + - + - - [Context](item-search/README.md#context) - - + - - [Sort](item-search/README.md#sort) - - + - - [Transaction](ogcapi-features/extensions/transaction/README.md) - - + - - [Items and Collections API Version](ogcapi-features/extensions/version/README.md) - - + - - [Query](item-search/README.md#query) - - + - ## Third-party / vendor extensions @@ -92,8 +92,8 @@ parties, extensions may be made official and incorporated in the STAC repository Please contact a STAC maintainer or open a Pull Request to add your extension to this table. -| Name | Scope | Description | Vendor | -| -------- | ----- | ----------- | ------ | +| Name | Scope | Description | Vendor | +| ------------------------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------- | ---------------------------------------------- | | [Free-text Search](https://github.com/cedadev/stac-freetext-search) | [Item Search](item-search/) request | Adds `q` parameter and free-text search against item properties | [CEDA, STFC, UKRI](https://github.com/cedadev) | ## Creating new extensions diff --git a/fragments/context/README.md b/fragments/context/README.md index 57b723c5..56589304 100644 --- a/fragments/context/README.md +++ b/fragments/context/README.md @@ -1,7 +1,7 @@ # STAC API - Context Fragment - **OpenAPI specification:** [openapi.yaml](openapi.yaml) -- **Conformance Class:** +- **Conformance Class:** - **Fragment [Maturity Classification](../../extensions.md#extension-maturity):** Pilot - **Dependents:** - [Item Search](../../item-search) diff --git a/fragments/context/openapi.yaml b/fragments/context/openapi.yaml index 1dab1fdf..42a4ca2d 100644 --- a/fragments/context/openapi.yaml +++ b/fragments/context/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Context description: Adds search related metadata (context) to GeoJSON Responses. - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: schemas: diff --git a/fragments/fields/README.md b/fragments/fields/README.md index f26cbb29..76f18fce 100644 --- a/fragments/fields/README.md +++ b/fragments/fields/README.md @@ -1,7 +1,7 @@ # STAC API - Fields Fragment - **OpenAPI specification:** [openapi.yaml](openapi.yaml) -- **Conformance Class:** +- **Conformance Class:** - **Fragment [Maturity Classification](../../extensions.md#extension-maturity):** Pilot - **Dependents:** - [Item Search](../../item-search) diff --git a/fragments/fields/openapi.yaml b/fragments/fields/openapi.yaml index dde11909..e0ae8172 100644 --- a/fragments/fields/openapi.yaml +++ b/fragments/fields/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Fields description: Adds parameter to control which fields are returned in the response. - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: parameters: diff --git a/fragments/filter/README.md b/fragments/filter/README.md index 7f8c1373..b19799fe 100644 --- a/fragments/filter/README.md +++ b/fragments/filter/README.md @@ -2,20 +2,20 @@ - **OpenAPI specification:** [openapi.yaml](openapi.yaml) - **Conformance Classes:** - - Filter: - - Item Search Filter: - - CQL Text: - - CQL JSON: - - Basic CQL: - - Basic Spatial Operators: - - Basic Temporal Operators: - - Enhanced Comparison Operators: - - Enhanced Spatial Operators: - - Enhanced Temporal Operators: - - Functions: - - Arithmetic: - - Arrays: - - Queryable First Operand: + - Filter: + - Item Search Filter: + - CQL Text: + - CQL JSON: + - Basic CQL: + - Basic Spatial Operators: + - Basic Temporal Operators: + - Enhanced Comparison Operators: + - Enhanced Spatial Operators: + - Enhanced Temporal Operators: + - Functions: + - Arithmetic: + - Arrays: + - Queryable First Operand: - **Extension [Maturity Classification](../../extensions.md#extension-maturity):** Pilot - **Dependents:** - [Item Search](../../item-search) @@ -131,32 +131,32 @@ The precise decomposition of the OAFeat conformance classes is still a work in p (see [ogcapi-features/issues/579](https://github.com/opengeospatial/ogcapi-features/issues/579)). The STAC API Filter Extension reuses the definitions in OAFeat CQL, but divides them into different conformance classes that better fit the use cases of STAC API. This extension uses conformance classes with a prefix of -`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:`. We hope the conformance +`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:`. We hope the conformance classes defined here and in OGC API Features Part 3 will re-align at some point but, for now, they do not. The implementation **must** support these conformance classes: -- Filter (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:filter`) defines the Queryables mechanism and +- Filter (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:filter`) defines the Queryables mechanism and parameters `filter-lang`, `filter-crs`, and `filter`. -- Basic CQL (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-cql`) defines the basic operations allowed in +- Basic CQL (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-cql`) defines the basic operations allowed in the query language used for the `filter` parameter defined by Filter. This includes logical operators (`AND`, `OR`, `NOT`), comparison operators (`=`, `<`, `<=`, `>`, `>=`), and `IS NULL`. -- Item Search Filter (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:item-search-filter`) binds the Filter and +- Item Search Filter (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:item-search-filter`) binds the Filter and Basic CQL conformance classes to apply to the Item Search endpoint (`/search`). This class is the correlate of the OAFeat CQL Features Filter class that binds Filter and Basic CQL to the Features resource (`/collections/{cid}/items`). It is **recommended** that the implementation also support the Basic Spatial Operators and Basic Temporal Operators classes: -- Basic Spatial Operators (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-spatial-operators`) +- Basic Spatial Operators (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-spatial-operators`) defines the `INTERSECTS` predicate -- Basic Temporal Operators: (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-temporal-operators`) +- Basic Temporal Operators: (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-temporal-operators`) defines the `ANYINTERACTS` predicate Additionally, the implementation **must** support at least one of the "CQL Text" or "CQL JSON" conformance classes that define the CQL format used in the filter parameter: -- CQL Text (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:cql-text`) defines that the CQL Text format is supported by Item Search. -- CQL JSON (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:cql-json`) defines that the CQL JSON format is supported by Item Search +- CQL Text (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:cql-text`) defines that the CQL Text format is supported by Item Search. +- CQL JSON (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:cql-json`) defines that the CQL JSON format is supported by Item Search If both are advertised as being supported, it is only required that both be supported for GET query parameters, and that only that CQL JSON be supported for POST JSON requests. It is recommended that clients use CQL Text in GET requests and @@ -169,18 +169,18 @@ operations required by the Enhanced Spatial Operators. If implemented for Item S URI should follow the same pattern relative to OAFeat CQL. - Enhanced Comparison Operators - (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:enhanced-comparison-operators`) defines the `LIKE`, + (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:enhanced-comparison-operators`) defines the `LIKE`, `BETWEEN`, and `IN` operators. It is **recommended** to implement this class. - Enhanced Spatial Operators - (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:enhanced-spatial-operators`) defines the + (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:enhanced-spatial-operators`) defines the same operators as OAF Part 3 CQL Enhanced Spatial Operators. - Enhanced Temporal Operators - (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:enhanced-temporal-operators`) defines the + (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:enhanced-temporal-operators`) defines the same operators as OAF Part 3 CQL Enhanced Temporal Operators. -- Functions (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:functions`) defines the same operators as OAF Part 3 CQL Functions. -- Arithmetic: (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:arithmetic`) defines the same operators as OAF Part 3 CQL Arithmetic. -- Arrays: (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:arrays`) defines the same operators as OAF Part 3 CQL Arrays. -- Queryable Operands: (`https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:queryable-operands`) allows the +- Functions (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:functions`) defines the same operators as OAF Part 3 CQL Functions. +- Arithmetic: (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:arithmetic`) defines the same operators as OAF Part 3 CQL Arithmetic. +- Arrays: (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:arrays`) defines the same operators as OAF Part 3 CQL Arrays. +- Queryable Operands: (`https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:queryable-operands`) allows the use of queryables (e.g., properties) in any position of a clause, not just in the first position. This allows predicates like `property1 == property2` be expressed, whereas the Basic CQL conformance class only requires comparisons against literal values. @@ -354,18 +354,18 @@ at least these values: "http://www.opengis.net/spec/ogcapi_common-2/1.0/req/collections", - "http://api.stacspec.org/v1.0.0-beta.2/core", - "http://api.stacspec.org/v1.0.0-beta.2/stac-search", - "http://api.stacspec.org/v1.0.0-beta.2/stac-response", - - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:filter", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:features-filter", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-cql", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:cql-text", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:cql-json", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-spatial-operators", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:basic-temporal-operators", - "https://api.stacspec.org/v1.0.0-beta.2/item-search#filter:enhanced-comparison-operators" + "http://api.stacspec.org/v1.0.0-beta.3/core", + "http://api.stacspec.org/v1.0.0-beta.3/stac-search", + "http://api.stacspec.org/v1.0.0-beta.3/stac-response", + + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:filter", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:features-filter", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-cql", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:cql-text", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:cql-json", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-spatial-operators", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:basic-temporal-operators", + "https://api.stacspec.org/v1.0.0-beta.3/item-search#filter:enhanced-comparison-operators" ], "links": [ diff --git a/fragments/filter/openapi.yaml b/fragments/filter/openapi.yaml index 29a66ff5..c1a331b2 100644 --- a/fragments/filter/openapi.yaml +++ b/fragments/filter/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Filter description: Adds parameters to compare properties and only return the items that match - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 tags: - name: STAC API - Core diff --git a/fragments/itemcollection/openapi.yaml b/fragments/itemcollection/openapi.yaml index 6d0f92df..ed222885 100644 --- a/fragments/itemcollection/openapi.yaml +++ b/fragments/itemcollection/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Item Collection description: The specification for a set of items, e.g. returned by a search. - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: schemas: diff --git a/fragments/query/README.md b/fragments/query/README.md index 896713e2..2229092d 100644 --- a/fragments/query/README.md +++ b/fragments/query/README.md @@ -1,7 +1,7 @@ # STAC API - Query Fragment - **OpenAPI specification:** [openapi.yaml](openapi.yaml) -- **Conformance Class:** +- **Conformance Class:** - **Extension [Maturity Classification](../../extensions.md#extension-maturity):** Pilot, scheduled to be Deprecated in favor of the [Filter Extension](../filter/README.md) using [CQL](http://docs.opengeospatial.org/DRAFTS/19-079.html). - **Dependents:** - [Item Search](../../item-search) diff --git a/fragments/query/openapi.yaml b/fragments/query/openapi.yaml index c3e64111..fd22abc7 100644 --- a/fragments/query/openapi.yaml +++ b/fragments/query/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Query description: Adds parameter to compare properties and only return the items that match - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: parameters: diff --git a/fragments/sort/README.md b/fragments/sort/README.md index 1e34304c..8c61d51d 100644 --- a/fragments/sort/README.md +++ b/fragments/sort/README.md @@ -1,7 +1,7 @@ # STAC API - Sort Fragment - **OpenAPI specification:** [openapi.yaml](openapi.yaml) -- **Conformance Class:** +- **Conformance Class:** - **Fragment [Maturity Classification](../../extensions.md#extension-maturity):** Pilot - **Dependents:** - [Item Search](../../item-search) diff --git a/fragments/sort/openapi.yaml b/fragments/sort/openapi.yaml index ecc59fc5..7cfbf7cd 100644 --- a/fragments/sort/openapi.yaml +++ b/fragments/sort/openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Sort description: Adds Parameter to control sorting of returns results. - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 paths: {} components: parameters: diff --git a/item-search/README.md b/item-search/README.md index 8b693e87..ba019598 100644 --- a/item-search/README.md +++ b/item-search/README.md @@ -20,8 +20,8 @@ - [Context](#context) - [Query](#query) -- **OpenAPI specification:** [openapi.yaml](openapi.yaml) ([rendered version](https://api.stacspec.org/v1.0.0-beta.2/item-search)) -- **Conformance URI:** +- **OpenAPI specification:** [openapi.yaml](openapi.yaml) ([rendered version](https://api.stacspec.org/v1.0.0-beta.3/item-search)) +- **Conformance URI:** - **Dependencies**: [STAC API - Core](../core) - **Examples**: [examples.md](examples.md) @@ -46,18 +46,18 @@ Implementing `GET /search` is **required**, `POST /search` is optional, but reco The following Link relations should exist in the Landing Page (root). -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `self` | `/` | OAFeat | Self reference, same as root URI | -| `service-desc` | `/api` (recommended) | OAFeat OpenAPI | The OpenAPI service description. Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | -| search | `/search` | STAC Item Search | URI for the Search endpoint | +| **rel** | **href** | **From** | **Description** | +| -------------- | -------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `root` | `/` | STAC Core | The root URI | +| `self` | `/` | OAFeat | Self reference, same as root URI | +| `service-desc` | `/api` (recommended) | OAFeat OpenAPI | The OpenAPI service description. Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | +| search | `/search` | STAC Item Search | URI for the Search endpoint | Additionally, a `service-doc` endpoint is recommended. -| **rel** | **href** | **From** | **Description** | -| ------------ | -------- | -------------- |----------------- | -| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | +| **rel** | **href** | **From** | **Description** | +| ------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | It is **required** to add a Link to the root endpoint (`/`) with the `rel` type set to `search` that refers to the search endpoint in the `href` property, @@ -104,14 +104,14 @@ For more examples see [examples.md](examples.md). The core parameters for STAC search are defined by OAFeat, and STAC adds a few parameters for convenience. -| Parameter | Type | Source API | Description | -| ----------- | ---------------- | ------------ | ----------- | -| limit | integer | OAFeat | The maximum number of results to return (page size). Defaults to 10 | -| bbox | \[number] | OAFeat | Requested bounding box. | -| datetime | string | OAFeat | Single date+time, or a range ('/' separator), formatted to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Use double dots `..` for open date ranges. | -| intersects | GeoJSON Geometry | STAC | Searches items by performing intersection between their geometry and provided GeoJSON geometry. All GeoJSON geometry types must be supported. | -| ids | \[string] | STAC | Array of Item ids to return. | -| collections | \[string] | STAC | Array of one or more Collection IDs that each matching Item must be in. | +| Parameter | Type | Source API | Description | +| ----------- | ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| limit | integer | OAFeat | The maximum number of results to return (page size). Defaults to 10 | +| bbox | \[number] | OAFeat | Requested bounding box. | +| datetime | string | OAFeat | Single date+time, or a range ('/' separator), formatted to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). Use double dots `..` for open date ranges. | +| intersects | GeoJSON Geometry | STAC | Searches items by performing intersection between their geometry and provided GeoJSON geometry. All GeoJSON geometry types must be supported. | +| ids | \[string] | STAC | Array of Item ids to return. | +| collections | \[string] | STAC | Array of one or more Collection IDs that each matching Item must be in. | See [examples](examples.md) for some example requests. @@ -173,11 +173,11 @@ execute a subsequent request for the next page of results. The following fields have been added to the `link` object specification for the API spec: -| Parameter | Type | Description | -| --------- | ------- | ----------- | -| method | string | The HTTP method of the request, usually `GET` or `POST`. Defaults to `GET` | -| headers | object | A dictionary of header values that should be included in the next request | -| body | object | A JSON object containing fields/values that should be included in the body of the next request | +| Parameter | Type | Description | +| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| method | string | The HTTP method of the request, usually `GET` or `POST`. Defaults to `GET` | +| headers | object | A dictionary of header values that should be included in the next request | +| body | object | A JSON object containing fields/values that should be included in the body of the next request | | merge | boolean | If `true`, the headers/body fields in the `next` link should be merged into the original request and be sent combined in the next request. Defaults to `false` | The implementor has the freedom to decide exactly how to apply these extended fields for their particular pagination @@ -229,14 +229,14 @@ does implement them, for STAC and OAFeat implementations that want to enable wri When implementing the STAC API - Item Search conformance class, it it recommended to implement these Link relations. -| **`rel`** | **href to** | **From** | **Description** | -|-----------|--------------------------------------------|--------------------|------------------------------------------------------------------| -| `root` | The root URI | STAC Core | Reference to self URI | -| `self` | The root URI | OAFeat | Reference to self URI | -| `service-desc` | The OpenAPI service description | OAFeat OpenAPI | Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | -| `service-doc` | An HTML service description | OAFeat OpenAPI | Uses the `text/html` media type to refer to a human-consumable description of the service | -| `child` | The child STAC Catalogs & Collections | STAC Core | Provides curated paths to get to STAC Collection and Item objects | -| `search` | The STAC search endpoint (often `/search`) | STAC Search | Cross-collection query endpoint to select sub-sets of STAC Item objects | +| **`rel`** | **href to** | **From** | **Description** | +| -------------- | ------------------------------------------ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `root` | The root URI | STAC Core | Reference to self URI | +| `self` | The root URI | OAFeat | Reference to self URI | +| `service-desc` | The OpenAPI service description | OAFeat OpenAPI | Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | +| `service-doc` | An HTML service description | OAFeat OpenAPI | Uses the `text/html` media type to refer to a human-consumable description of the service | +| `child` | The child STAC Catalogs & Collections | STAC Core | Provides curated paths to get to STAC Collection and Item objects | +| `search` | The STAC search endpoint (often `/search`) | STAC Search | Cross-collection query endpoint to select sub-sets of STAC Item objects | It is also valid to have `item` links from the landing page, but most STAC API services are used to serve up a large number of features, so they typically @@ -256,8 +256,8 @@ the [overview](../overview.md#example-landing-page) document. "title": "A simple STAC API Example", "description": "This Catalog aims to demonstrate the a simple landing page", "conformsTo" : [ - "https://api.stacspec.org/v1.0.0-beta.2/core", - "https://api.stacspec.org/v1.0.0-beta.2/item-search" + "https://api.stacspec.org/v1.0.0-beta.3/core", + "https://api.stacspec.org/v1.0.0-beta.3/item-search" ], "links": [ { @@ -298,7 +298,7 @@ the root (`/`) landing page, to indicate to clients that they will respond prope ### Fields -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Fields Fragment](../fragments/fields/) @@ -310,7 +310,7 @@ through the use of a `fields` parameter. The full description of how this extens ### Filter -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Filter Fragment](../fragments/filter/) @@ -322,7 +322,7 @@ fragment](../fragments/filter/). ### Sort -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Sort Fragment](../fragments/sort/) @@ -335,7 +335,7 @@ of this extension can be found in the [sort fragment](../fragments/sort). ### Context -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Context Fragment](../fragments/context/) @@ -345,7 +345,7 @@ The full description and examples of this are found in the [context fragment](.. ### Query -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot, scheduled to be Deprecated - **Definition**: [STAC API - Query Fragment](../fragments/query/) diff --git a/item-search/openapi.yaml b/item-search/openapi.yaml index 59907a77..b719c42a 100644 --- a/item-search/openapi.yaml +++ b/item-search/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: STAC API - Item Search - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API - Item Search specification. diff --git a/ogcapi-features/README.md b/ogcapi-features/README.md index 0b38e6dc..b4447ab1 100644 --- a/ogcapi-features/README.md +++ b/ogcapi-features/README.md @@ -12,10 +12,10 @@ *based on [**OGC API - Features - Part 1: Core**](https://www.ogc.org/standards/ogcapi-features)* -- **OpenAPI specification:** [openapi.yaml](openapi.yaml) ([rendered version](https://api.stacspec.org/v1.0.0-beta.2/ogcapi-features)) +- **OpenAPI specification:** [openapi.yaml](openapi.yaml) ([rendered version](https://api.stacspec.org/v1.0.0-beta.3/ogcapi-features)) uses all the OGC API - Features openapi fragments to describe returning STAC Item objects. - **Conformance URIs:** - - + - - - [Requirements Class Core](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html#rc_core)) - - [Requirements Class OpenAPI 3.0](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html#rc_oas30)) - - [Requirements Class GeoJSON](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html#_requirements_class_geojson)) @@ -37,19 +37,19 @@ with OAFeat clients. But specialized STAC clients will likely display results be The following Link relations should exist in the Landing Page (root). -| **rel** | **href** | **From** | **Description** | -| -------------- | -------------------- | -------------- | ---------------- | -| `root` | `/` | STAC Core | The root URI | -| `self` | `/` | OAFeat | Self reference, same as root URI | -| `conformance` | `/conformance` | OAFeat | Conformance URI | +| **rel** | **href** | **From** | **Description** | +| -------------- | -------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `root` | `/` | STAC Core | The root URI | +| `self` | `/` | OAFeat | Self reference, same as root URI | +| `conformance` | `/conformance` | OAFeat | Conformance URI | | `service-desc` | `/api` (recommended) | OAFeat OpenAPI | The OpenAPI service description. Uses the `application/vnd.oai.openapi+json;version=3.0` media type to refer to the OpenAPI 3.0 document that defines the service's API | -| `data` | `/collections` | OAFeat | List of Collections | +| `data` | `/collections` | OAFeat | List of Collections | Additionally, a `service-doc` endpoint is recommended. -| **rel** | **href** | **From** | **Description** | -| ------------ | -------- | -------------- |----------------- | -| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | +| **rel** | **href** | **From** | **Description** | +| ------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `service-doc` | `/api.html` (recommended) | OAFeat OpenAPI | An HTML service description. Uses the `text/html` media type to refer to a human-consumable description of the service | ## Endpoints @@ -151,8 +151,8 @@ the [overview](../overview.md#example-landing-page) document. "title": "A simple STAC API Example", "description": "This Catalog aims to demonstrate the a simple landing page", "conformsTo" : [ - "https://api.stacspec.org/v1.0.0-beta.2/core", - "https://api.stacspec.org/v1.0.0-beta.2/ogcapi-features", + "https://api.stacspec.org/v1.0.0-beta.3/core", + "https://api.stacspec.org/v1.0.0-beta.3/ogcapi-features", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson" @@ -241,7 +241,7 @@ to requests from clients. ### Transaction - **Conformance URIs:** - - + - - - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Transaction Fragment](extensions/transaction/) @@ -253,7 +253,7 @@ POST, PUT, PATCH, and DELETE methods. The full description of how this extension ### Items and Collections API Version Extension -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../extensions.md#extension-maturity):** Pilot - **Definition**: [STAC API - Version](extensions/version/) diff --git a/ogcapi-features/extensions/transaction/README.md b/ogcapi-features/extensions/transaction/README.md index 6971f3c4..73d5b971 100644 --- a/ogcapi-features/extensions/transaction/README.md +++ b/ogcapi-features/extensions/transaction/README.md @@ -4,7 +4,7 @@ - **OpenAPI specification:** [openapi.yaml](openapi.yaml) - **Conformance URIs:** - - + - - - **Extension [Maturity Classification](../../../extensions.md#extension-maturity):** Pilot - **Dependencies**: [STAC API - Features](../../README.md) diff --git a/ogcapi-features/extensions/transaction/openapi.yaml b/ogcapi-features/extensions/transaction/openapi.yaml index 5cfe8a67..a2bb850e 100644 --- a/ogcapi-features/extensions/transaction/openapi.yaml +++ b/ogcapi-features/extensions/transaction/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: The SpatioTemporal Asset Catalog API - Transaction - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API Transaction specification. diff --git a/ogcapi-features/extensions/version/README.md b/ogcapi-features/extensions/version/README.md index 369d4210..b6a4b7fd 100644 --- a/ogcapi-features/extensions/version/README.md +++ b/ogcapi-features/extensions/version/README.md @@ -1,7 +1,7 @@ # Items and Collections API Version Extension - **OpenAPI specification:** [openapi.yaml](openapi.yaml) -- **Conformance URI:** +- **Conformance URI:** - **Extension [Maturity Classification](../../../extensions.md#extension-maturity):** Proposal - **Dependencies**: [STAC API - Features](../../README.md) diff --git a/ogcapi-features/extensions/version/openapi.yaml b/ogcapi-features/extensions/version/openapi.yaml index 87acaa56..6f720835 100644 --- a/ogcapi-features/extensions/version/openapi.yaml +++ b/ogcapi-features/extensions/version/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: The SpatioTemporal Asset Catalog API - Item Search - version: 1.0.0-beta.2 + version: 1.0.0-beta.3 description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API Item Search specification. diff --git a/ogcapi-features/openapi.yaml b/ogcapi-features/openapi.yaml index 55de6c71..70111cef 100644 --- a/ogcapi-features/openapi.yaml +++ b/ogcapi-features/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: STAC API - Features - version: '1.0.0-beta.2' + version: '1.0.0-beta.3' description: >- This is an OpenAPI definition of the SpatioTemporal Asset Catalog API - Features specification. This extends OGC API - Features - Part 1: Core. @@ -38,13 +38,13 @@ paths: schema: $ref: '../core/openapi.yaml#/components/schemas/landingPage' example: - stac_version: 1.0.0-beta.2 + stac_version: 1.0.0-beta.3 type: Catalog id: sentinel title: Copernicus Sentinel Imagery description: Catalog of Copernicus Sentinel 1 and 2 imagery. conformsTo: - - 'https://api.stacspec.org/v1.0.0-beta.2/core' + - 'https://api.stacspec.org/v1.0.0-beta.3/core' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30' - 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson' diff --git a/overview.md b/overview.md index f4be01c3..a8fdaecf 100644 --- a/overview.md +++ b/overview.md @@ -20,7 +20,7 @@ off point for the more powerful capabilities - it contains a list of URL's, each 'relationships' (`rel`) to indicate their functionality. Note that the [STAC Core specification](stac-spec) provides most all the content of API responses - the STAC API is primarily concerned with the return of STAC [Item](stac-spec/item-spec/README.md) and [Collection](stac-spec/collection-spec/README.md) objects via a -RESTful web API. See the [rendered OpenAPI document](https://api.stacspec.org/v1.0.0-beta.2/core) for more details. +RESTful web API. See the [rendered OpenAPI document](https://api.stacspec.org/v1.0.0-beta.3/core) for more details. There are then two major sets of functionality that build on the core, which are designed to be complementary, letting implementations choose which parts they want to utilize. Most every STAC API implements at least one, and many follow @@ -33,7 +33,7 @@ located at a `/search` endpoint. It re-uses all of the OAFeat [query parameters](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html#_items_) specified in their 'core', and adds a couple more. It does not require a full implementation of OAFeat, it is instead a simplified construct that can run a search across any set of indexed STAC [`Item`](stac-spec/item-spec/README.md) objects. See the [rendered OpenAPI -document](https://api.stacspec.org/v1.0.0-beta.2/item-spec) for more details. +document](https://api.stacspec.org/v1.0.0-beta.3/item-spec) for more details. ### Collections @@ -65,7 +65,7 @@ is always in GeoJSON and OpenAPI is used to specify STAC API. Full compliance in individual `/collections/{collectionId}/items` endpoints that expose querying single collections, as OAFeat does not currently allow cross-collection search. And it adds a few other requirements, which are highlighted in the [features description](ogcapi-features/), in order to help STAC implementors understand OAFeat without having to -read the full spec from scratch. See the [rendered OpenAPI document](https://api.stacspec.org/v1.0.0-beta.2/ogcapi-features) +read the full spec from scratch. See the [rendered OpenAPI document](https://api.stacspec.org/v1.0.0-beta.3/ogcapi-features) for more details. ### Extensions & Fragments @@ -106,15 +106,15 @@ the `Content-Type` header to drive behavior on resources ("nouns") - the endpoin The following table describes the service resources available in a full STAC API implementation. Note that the 'Endpoint' column is more of an example in some cases. OGC API makes some endpoint locations required, those will be bolded below. -| Endpoint | Specified in | Link Relationship | Returns | Description | -|-----------------------------------------------------|----------------------------|-------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| -| `/` | [Core](core) | root | [Catalog](stac-spec/catalog-spec/catalog-spec.md) | Extends `/` from OAFeat to return a full STAC catalog. | -| `/search` | [Item Search](item-search) | search | [ItemCollection](fragments/itemcollection/README.md) | Retrieves a group of Item objects matching the provided search predicates, probably containing search metadata from the `search` extension | -| **`/collections`** | [OAFeat](ogcapi-features) | data | JSON | Object with a list of Collection objects contained in the catalog and links | -| **`/conformance`** | [OAFeat](ogcapi-features) | conformance | JSON | Info about standards to which the API conforms | -| `/api` | [OAFeat](ogcapi-features) | service-desc | OpenAPI 3.0 JSON | The OpenAPI definition of the endpoints in this service | -| **`/collections/{collectionId}`** | [OAFeat](ogcapi-features) | collection | Collection | Returns single Collection JSON | -| **`/collections/{collectionId}/items`** | [OAFeat](ogcapi-features) | items | ItemCollection | GeoJSON FeatureCollection-conformant entity of Item objects in collection | +| Endpoint | Specified in | Link Relationship | Returns | Description | +| --------------------------------------------------- | -------------------------- | ----------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `/` | [Core](core) | root | [Catalog](stac-spec/catalog-spec/catalog-spec.md) | Extends `/` from OAFeat to return a full STAC catalog. | +| `/search` | [Item Search](item-search) | search | [ItemCollection](fragments/itemcollection/README.md) | Retrieves a group of Item objects matching the provided search predicates, probably containing search metadata from the `search` extension | +| **`/collections`** | [OAFeat](ogcapi-features) | data | JSON | Object with a list of Collection objects contained in the catalog and links | +| **`/conformance`** | [OAFeat](ogcapi-features) | conformance | JSON | Info about standards to which the API conforms | +| `/api` | [OAFeat](ogcapi-features) | service-desc | OpenAPI 3.0 JSON | The OpenAPI definition of the endpoints in this service | +| **`/collections/{collectionId}`** | [OAFeat](ogcapi-features) | collection | Collection | Returns single Collection JSON | +| **`/collections/{collectionId}/items`** | [OAFeat](ogcapi-features) | items | ItemCollection | GeoJSON FeatureCollection-conformant entity of Item objects in collection | | **`/collections/{collectionId}/items/{featureId}`** | [OAFeat](ogcapi-features) | item | Returns single Item (GeoJSON Feature). This relation is usually not used in OAFeat implementations. | ## Conformance Classes @@ -122,7 +122,7 @@ column is more of an example in some cases. OGC API makes some endpoint location STAC API is evolving to utilize OAFeat's '[Conformance](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html#_declaration_of_conformance_classes)' JSON structure. For -STAC API 1.0.0-beta.2 we declare new STAC Conformance classes, with the core ones detailed in the table below. [STAC +STAC API 1.0.0-beta.3 we declare new STAC Conformance classes, with the core ones detailed in the table below. [STAC Features](ogcapi-features) requires the core OAFeat conformance classes, and declares that those endpoints return STAC Collection and Feature objects. The core STAC conformance classes communicate the conformance JSON only in the root (`/`) document, while OGC API @@ -136,11 +136,12 @@ have the URI's for conformance to actually resolve to machine-readable informati ### Conformance Class Table -| **Name** | **Specified in** | **Conformance URI** | **Description** | -|---------------------------|----------------------------|------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| STAC Core | [Core](core) | | Specifies the STAC Landing page `/`, communicating conformance and available endpoints. | -| Item Search | [Item Search](item-search) | | Enables search of all STAC Item objects on the server, with the STAC `[/search](#stac-api-endpoints)` endpoint. | -| STAC Features | [STAC API - Features](ogcapi-features) | | Specifies the use of OGC API - Features to serve STAC Item and Collection objects | +| **Name** | **Specified in** | **Conformance URI** | **Description** | +| ------------- | -------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| STAC Core | [Core](core) | | Specifies the STAC Landing page `/`, communicating conformance and available endpoints. | +| Item Search | [Item Search](item-search) | | Enables search of all STAC Item objects on the server, with the STAC `[/search](#stac-api-endpoints)` endpoint. | +| STAC Features | [STAC API - Features](ogcapi-features) | | Specifies the use of OGC API - Features to serve STAC Item and Collection objects | +| Collections | [Collections](collections) | | Specifies the use of a subset of OGC API - Features to serve Collection objects | Additional conformance classes are specified in the [STAC Extensions](extensions.md#Conformance-classes-of-extensions). @@ -161,9 +162,10 @@ The Landing Page will at least have the following `conformsTo` and `links`: "title": "A simple STAC API Example", "description": "This Catalog aims to demonstrate the a simple landing page", "conformsTo" : [ - "https://api.stacspec.org/v1.0.0-beta.2/core", - "https://api.stacspec.org/v1.0.0-beta.2/item-search", - "https://api.stacspec.org/v1.0.0-beta.2/ogcapi-features", + "https://api.stacspec.org/v1.0.0-beta.3/core", + "https://api.stacspec.org/v1.0.0-beta.3/item-search", + "https://api.stacspec.org/v1.0.0-beta.3/ogcapi-features", + "https://api.stacspec.org/v1.0.0-beta.3/collections", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30", "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson" diff --git a/package.json b/package.json index f7133d0a..be5a0971 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "api-spec", - "version": "1.0.0-beta.2", + "version": "1.0.0-beta.3", "description": "STAC API helpers to generate, serve and check the API spec.", "repository": "https://github.com/radiantearth/stac-api-spec", "license": "Apache-2.0",