Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v.1.0.0-rc.1 release merge to master #291

Merged
merged 44 commits into from
Mar 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
32c3d83
Filter Extension - add Accent and Case-insensitive Comparison conform…
philvarner Feb 10, 2022
90f848e
require children endpoint to return all child link objects
philvarner Feb 28, 2022
30a54ae
clarify wording of search link rel requirement
philvarner Feb 28, 2022
7fabce4
update example urls to stac-api.example.com (#264)
philvarner Mar 3, 2022
a06becf
add type=application/geo+json to prev and next links (#266)
philvarner Mar 3, 2022
255034c
Undeprecate query extension (#262)
philvarner Mar 3, 2022
5753396
update CQL2 definition to reference OGC API yaml file in github, upda…
philvarner Mar 3, 2022
56cd33b
Merge branch 'dev' into children-reflect-root-child-links
philvarner Mar 4, 2022
137502e
Merge pull request #265 from philvarner/children-reflect-root-child-l…
philvarner Mar 4, 2022
1dbbdd0
explicitly state /children may return fewer fields for its entities
Mar 4, 2022
722e3ba
update CQL2 implemenation suggestions (#269)
philvarner Mar 4, 2022
2ee0f63
Merge branch 'dev' into pv/allow-subset-of-cat-or-coll-for-children
Mar 4, 2022
ad2c2a0
Merge pull request #273 from radiantearth/pv/allow-subset-of-cat-or-c…
philvarner Mar 4, 2022
10636ea
Merge pull request #267 from philvarner/clarify-search-link-rel
philvarner Mar 5, 2022
c5d1b2b
change all uses of shall to must, and stylize all non-linked conforma…
philvarner Mar 6, 2022
9a0b8c6
add changelog entry
philvarner Mar 6, 2022
73d907e
update version from 1.0.0-beta.5 to 1.0.0-rc.1
philvarner Mar 6, 2022
87ba737
fix uri for filter extension to remove item-search-filter
philvarner Mar 6, 2022
5e86a63
Merge pull request #276 from philvarner/shall-to-must-and-italics
philvarner Mar 6, 2022
e99bfe7
Merge branch 'dev' into pv/filter-extension-conformance-class-consist…
philvarner Mar 6, 2022
b6f1ef3
Merge pull request #279 from philvarner/pv/filter-extension-conforman…
philvarner Mar 6, 2022
07fe9b5
Merge branch 'dev' into pv/1.0.0-beta.5-to-rc.1
philvarner Mar 6, 2022
51fdd16
fix merge problem
philvarner Mar 6, 2022
a965195
update maturity levels in preparation for 1.0.0-rc.1
philvarner Mar 6, 2022
979182e
Merge pull request #278 from philvarner/pv/1.0.0-beta.5-to-rc.1
philvarner Mar 7, 2022
eb98eb2
Merge branch 'dev' into update-maturity
philvarner Mar 8, 2022
3abd06a
Add Versions section to README
philvarner Mar 10, 2022
c42290a
add all conformance class links to deployed index
philvarner Mar 10, 2022
b0971e5
fix a few minor openapi spec issues, upgrade remark and spectral
Mar 10, 2022
4519746
re-enable max line lenght
Mar 10, 2022
b28a87c
convert external spectral config into package.json
Mar 11, 2022
d2eb437
remove unused openapi spec elements and fix several stac_version values
Mar 11, 2022
d06b1e3
remove stray test from Filter
Mar 11, 2022
8a846d1
add remark-gfm plugin to fix issue with false positives on long lines…
Mar 11, 2022
ac16ed6
reformat
Mar 11, 2022
c29de7a
Merge pull request #283 from philvarner/update-maturity
philvarner Mar 16, 2022
0d4d0ca
Merge pull request #290 from radiantearth/pv/remove-stray-text
philvarner Mar 16, 2022
a5a380c
Merge pull request #284 from philvarner/pv/add-versions-to-readme
philvarner Mar 16, 2022
a81b34c
Merge pull request #289 from radiantearth/remove-unused-openapi-spec-…
philvarner Mar 16, 2022
9ef192c
Merge branch 'dev' into openapi-cleanup-and-spectral-and-remark-upgrade
philvarner Mar 17, 2022
0c36fce
format tables in extensions
philvarner Mar 17, 2022
b14ec82
Merge pull request #287 from radiantearth/openapi-cleanup-and-spectra…
philvarner Mar 17, 2022
59c8c1a
Claify Transaction Extension behavior (#271)
philvarner Mar 17, 2022
e1f2910
update changelog v1.0.0-rc.1 release date
Mar 17, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/.spectral-fragments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ rules:
openapi-tags: off
info-contact: off
oas3-api-servers: off
oas3-unused-components-schema: off
oas3-unused-component: off
operation-operationId: off
oas3-parameter-description: true
8 changes: 4 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
validate:
working_directory: ~/stac
docker:
- image: cimg/node:14.7
- image: cimg/node:16.14
steps:
- checkout
- save_cache:
Expand All @@ -44,7 +44,7 @@ jobs:
build:
working_directory: ~/stac
docker:
- image: cimg/node:14.7
- image: cimg/node:16.14
steps:
- *restore_repo
- *restore_dependencies
Expand All @@ -58,7 +58,7 @@ jobs:
publish:
working_directory: ~/stac
docker:
- image: cimg/node:14.7
- image: cimg/node:16.14
steps:
- *restore_repo
- *restore_dependencies
Expand All @@ -72,7 +72,7 @@ jobs:
check-core-changes:
working_directory: ~/stac
docker:
- image: cimg/node:14.7
- image: cimg/node:16.14
steps:
- *restore_repo
- *restore_dependencies
Expand Down
43 changes: 0 additions & 43 deletions .circleci/rc.yaml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
**Related Issue(s):** #
**Related Issue(s):**

- #

**Proposed Changes:**

Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ build/Release
# Dependency directories
node_modules/
jspm_packages/
package-lock.json

# Typescript v1 declaration files
typings/
Expand Down
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
16
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,37 @@ 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).

## [v1.0.0-rc.1] - 2022-03-17

### Added

- The CQL2 Accent and Case-insensitive Comparison
(`http://www.opengis.net/spec/cql2/1.0/conf/accent-case-insensitive-comparison`) conformance class
adds the ACCENTI and CASEI functions for case-insensitive comparison. These replace the UPPER and
LOWER psuedo-functions that were previously part of the Advanced Comparison Operators class.

### Changed

- Query Extension is no longer deprecated.
- Children conformance class now requires the /children endpoint includes all child catalogs or collections
referenced via `child` link relations from the Landing Page
- Clarified behavior of Transaction Extension endpoints:
- PUT and PATCH of a body that changes the `collection` or `id` is disallowed.
- POST, PUT, and PATCH do not need to include the `collection` attribute, as it should be derived from the URL.
- POST and PUT can be used with a body that is at least a GeoJSON Feature, but does not have to be an Item, but for which
the server can derive a valid Item, e.g., by populating the id and collection fields or adding links

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this mean the geojson feature has to have an id field?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good question -- I had thought geojson feature required id, but now I see it's a "should". So maybe we need to clarify that behavior -- maybe just say that it's up to the implementer if they want to autogenerate IDs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decided the answer to this is "yes". The openapi spec already defined id as a required field.

- Likewise, POST can be used with a body of a FeatureCollection that contains features that meet the same constraints.
- Specifications now use the term "must" instead of "shall". The semantics of these words are identical.
- Conformance class for Item Search Filter is now
`https://api.stacspec.org/v1.0.0-beta.5/item-search#filter`, whereas before it was incorrectly stated as
`https://api.stacspec.org/v1.0.0-beta.5/item-search#filter:item-search-filter`

### Deprecated

### Removed

### Fixed

## [v1.0.0-beta.5] - 2022-01-14

### Added
Expand Down Expand Up @@ -84,6 +115,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- The required Link Relations and endpoints for each conformance class now use the wording of 'shall'
instead of 'should'. While this technically changes the semantics, it was generally understood
previously the semantics were those of 'shall' (must).
- Explicitly state that the `/children` endpoint can return Catalog and Collection objects that have fewer
fields than are available through other endpoints.

### Deprecated

Expand Down
7 changes: 4 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ from dev to master (and require 3 approvals).

The same check-markdown and check-openapi programs that runs as a check on PR's is part of the repo and can be run locally.
To install you'll need npm, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).
Alternatively, you can also use [yarn](https://yarnpkg.com/) instead of npm. In this case replace all occurrences of `npm` with `yarn` below.
Any recent version of node/npm should work.

First you'll need to install everything with npm once. Just navigate to the root of the stac-spec repo and on
your command line run:
If using nvm, run `nvm install`.

Install the dependencies with npm:

```bash
npm install
Expand Down
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,24 @@
# STAC API

- [STAC API](#stac-api)
- [Releases](#releases)
- [About](#about)
- [Stability Note](#stability-note)
- [Maturity Classification](#maturity-classification)
- [Communication](#communication)
- [In this repository](#in-this-repository)
- [Contributing](#contributing)

## Releases

- [v1.0.0-rc.1](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.1)
- [v1.0.0-beta.5](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.5)
- [v1.0.0-beta.4](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.4)
- [v1.0.0-beta.3](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.3)
- [v1.0.0-beta.2](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.2)
- [v1.0.0-beta.1](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.1)
- [v0.9.0](https://github.com/radiantearth/stac-api-spec/tree/v0.9.0)

## About

The SpatioTemporal Asset Catalog (STAC) family of specifications aim to standardize the way geospatial asset metadata is structured and queried.
Expand All @@ -31,12 +42,12 @@ 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 <https://api.stacspec.org/v1.0.0-beta.5>, in addition to human-readable documentation.
rendered online into HTML at <https://api.stacspec.org/v1.0.0-rc.1>, in addition to human-readable documentation.

## Stability Note

This specification has evolved over the past couple years, and is used in production in a variety of deployments. It is
currently in a 'beta' state, with no major changes anticipated. For 1.0.0-beta.5, we remain fully aligned with [OGC API -
currently in a 'beta' state, with no major changes anticipated. For 1.0.0-rc.1, we remain fully aligned with [OGC API -
Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) Version 1.0, and we are working to stay aligned
as the additional OGC API components mature. This may result in minor changes as things evolve. The STAC API
specification follows [Semantic Versioning](https://semver.org/), so once 1.0.0 is reached any breaking change
Expand Down
30 changes: 15 additions & 15 deletions browseable/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@

- **OpenAPI specification:** none
- **Conformance URIs:**
- <https://api.stacspec.org/v1.0.0-beta.5/browseable>
- <https://api.stacspec.org/v1.0.0-beta.5/core>
- <https://api.stacspec.org/v1.0.0-rc.1/browseable>
- <https://api.stacspec.org/v1.0.0-rc.1/core>
- **[Maturity Classification](../README.md#maturity-classification):** Proposal
- **Dependencies**: [STAC API - Core](../core)

A STAC API conforming to the `STAC API - Browseable` conformance class must be structured such that all
A STAC API conforming to the *STAC API - Browseable* conformance class must be structured such that all
all Items in the catalog can be accessed by following `child` and `item` link relations. This is a more significant
constraint than a STAC API without this conformance class or a STAC Catalog that is available over HTTP but does not
implement STAC API, neither of which have any guarantee regarding the reachability of Items. This conformance
class is used to signal to users that they can fully navigate to all available Items using a UI (like [STAC Browser](https://github.com/radiantearth/stac-browser),
and also makes it clear to crawlers that they can reach everything by following catalog links.

Recommendations for structuring Catalogs hierarchically can be found in
[Structuring Catalog Hierarchies](../core/README.md#structuring-catalog-hierarchies) from the `STAC API - Core` specification.
[Structuring Catalog Hierarchies](../core/README.md#structuring-catalog-hierarchies) from the *STAC API - Core* specification.

## Link Relations

Expand All @@ -36,7 +36,7 @@ every Item in the Catalog can be accessed by traversing these relations.
| `item` | various | STAC Core | The child STAC Items. |

Note that there is a different link relation `items` (plural)
used by the `STAC API - Features` conformance class that links from a collection resource
used by the *STAC API - Features* conformance class that links from a collection resource
(at the `/collections/{collectionId}` endpoint) to the items in
that collection (at the `/collections/{collectionId}/items` endpoint). Both of these endpoints are
[derived from OGC API - Features](https://docs.opengeospatial.org/is/17-069r3/17-069r3.html#_items_).
Expand All @@ -49,8 +49,8 @@ This conformance class adds no additional endpoints.

## Example Landing Page for STAC API - Browseable

This JSON is what would be expected from an API that implements `STAC API - Browseable`. Note that the
`conformsTo` array contains `https://api.stacspec.org/v1.0.0-beta.5/browseable` and the `links` array
This JSON is what would be expected from an API that implements *STAC API - Browseable*. Note that the
`conformsTo` array contains `https://api.stacspec.org/v1.0.0-rc.1/browseable` and the `links` array
contains `child` link relations. The semantics of this conformance class imply that the the catalogs
linked to by these `child` link relations then have further `child` or `item` link relations that
eventually reach all items in this catalog.
Expand All @@ -63,39 +63,39 @@ eventually reach all items in this catalog.
"description": "This Catalog aims to demonstrate the a simple landing page",
"type": "Catalog",
"conformsTo" : [
"https://api.stacspec.org/v1.0.0-beta.5/core",
"https://api.stacspec.org/v1.0.0-beta.5/browseable"
"https://api.stacspec.org/v1.0.0-rc.1/core",
"https://api.stacspec.org/v1.0.0-rc.1/browseable"
],
"links": [
{
"rel": "self",
"type": "application/json",
"href": "https://stacserver.org"
"href": "https://stac-api.example.com"
},
{
"rel": "root",
"type": "application/json",
"href": "https://stacserver.org"
"href": "https://stac-api.example.com"
},
{
"rel": "service-desc",
"type": "application/vnd.oai.openapi+json;version=3.0",
"href": "https://stacserver.org/api"
"href": "https://stac-api.example.com/api"
},
{
"rel": "service-doc",
"type": "text/html",
"href": "https://stacserver.org/api.html"
"href": "https://stac-api.example.com/api.html"
},
{
"rel": "child",
"type": "application/json",
"href": "https://stacserver.org/catalogs/sentinel-2",
"href": "https://stac-api.example.com/catalogs/sentinel-2",
},
{
"rel": "child",
"type": "application/json",
"href": "https://stacserver.org/catalogs/landsat-8",
"href": "https://stac-api.example.com/catalogs/landsat-8",
}
]
}
Expand Down
10 changes: 6 additions & 4 deletions build/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
<h1>STAC API</h1>
<h2>Conformance Classes</h2>
<ul>
<li><a href="core/">Core</a></li>
<li><a href="item-search/">Item Search</a></li>
<li><a href="ogcapi-features/">STAC Features</a></li>
<li><a href="collections/">Collections</a></li>
<li><a href="core/">STAC API - Core</a></li>
<li><a href="item-search/">STAC API - Item Search</a></li>
<li><a href="ogcapi-features/">STAC API - Features</a></li>
<li><a href="collections/">STAC API - Collections</a></li>
<li><a href="children/">STAC API - Children</a></li>
<li><a href="browseable/">STAC API - Browseable</a></li>
</ul>
</body>

Expand Down
Loading