Skip to content

Commit 42236ef

Browse files
authored
Merge pull request #492 from Open-EO/draft
Release v1.2.0
2 parents 16b1122 + 3341922 commit 42236ef

File tree

12 files changed

+2031
-547
lines changed

12 files changed

+2031
-547
lines changed

.github/workflows/docs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
steps:
1313
- name: Inject env variables
1414
uses: rlespinasse/github-slug-action@v3.x
15-
- uses: actions/setup-node@v1
15+
- uses: actions/setup-node@v3
1616
with:
17-
node-version: '16'
18-
- uses: actions/checkout@v2
17+
node-version: 'lts/*'
18+
- uses: actions/checkout@v3
1919
- run: |
2020
npm install
2121
npm run build

.github/workflows/tests.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ on: [push, pull_request]
33
jobs:
44
deploy:
55
runs-on: ubuntu-latest
6-
strategy:
7-
matrix:
8-
node-version: [14.x]
96
steps:
10-
- uses: actions/setup-node@v1
11-
- uses: actions/checkout@v2
7+
- uses: actions/setup-node@v3
8+
with:
9+
node-version: 'lts/*'
10+
- uses: actions/checkout@v3
1211
- name: Run tests
1312
run: |
1413
npm install

.spectral.yml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,15 @@
11
extends: "spectral:oas"
2-
# don't error on circular schemas, these are currently not supported by spectral
3-
# https://github.com/stoplightio/spectral/issues/894
2+
# Work around broken rules: https://github.com/stoplightio/spectral/issues/1972
43
except:
5-
"openapi.yaml#/components/schemas/process_graph/example":
4+
"openapi.yaml#/paths/~1udf_runtimes/get/responses/200/content/application~1json/example":
65
- oas3-valid-schema-example
7-
"openapi.yaml#/paths/~1processes/get/responses/200/content/application~1json/example":
8-
- oas3-valid-oas-content-example
9-
"openapi.yaml#/paths/~1process_graphs/get/responses/200/content/application~1json/example":
10-
- oas3-valid-oas-content-example
11-
"openapi.yaml#/paths/~1service_types/get/responses/200/content/application~1json/example":
12-
- oas3-valid-oas-content-example
13-
"openapi.yaml#/paths/~1file_formats/get/responses/200/content/application~1json/example":
14-
- oas3-valid-oas-content-example
156
rules:
16-
# Ported from Spectral 4.0
177
contact-properties: true
188
tag-description: true
199
oas3-parameter-description: true
20-
oas3-unused-components-schema: false # Broken: https://github.com/stoplightio/spectral/issues/1271
10+
oas3-unused-component: false # Broken: https://github.com/stoplightio/spectral/issues/1271
2111
operation-summary-formatted:
2212
description: Operation `summary` should start with upper case and not end with a dot.
23-
recommended: true
24-
type: style
2513
given: '$.paths.*[?( @property === ''get'' || @property === ''put'' || @property === ''post'' || @property === ''delete'' || @property === ''options'' || @property === ''head'' || @property === ''patch'' || @property === ''trace'' )]'
2614
then:
2715
field: summary
@@ -31,7 +19,7 @@ rules:
3119
tags:
3220
- operation
3321
operation-id-kebab-case:
34-
given: "$"
22+
given: "$..operationId"
3523
then:
3624
function: pattern
3725
functionOptions:

CHANGELOG.md

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## Unreleased / Draft
88

9+
## [1.2.0] - 2021-05-31
10+
11+
### Added
12+
13+
- **New extensions:**
14+
- [Commercial Data Extension](./extensions/commercial-data/README.md)
15+
- [Federation Extension](./extensions/federation/README.md)
16+
- `GET /`: New Relation types: [#404](https://github.com/Open-EO/openeo-api/issues/404)
17+
- `create-form` to link to the registration page
18+
- `recovery-form` to link to the credentials recovery page.
19+
- `GET /file_formats`: Add `pointcloud` to the `gis_data_types`. [#475](https://github.com/Open-EO/openeo-api/issues/475)
20+
- `GET /me`: New Relation types `alternate` and `related` for user-specific external pages. [#404](https://github.com/Open-EO/openeo-api/issues/404)
21+
- `GET /credentials/oidc`: Allow `authorization_code` and `urn:ietf:params:oauth:grant-type:device_code` (both without PKCE) as grants for `default_clients`. [#410](https://github.com/Open-EO/openeo-api/issues/410)
22+
- `GET /jobs` and `GET /jobs/{job_id}`: Added a links property that can for example link to results and logs. [#453](https://github.com/Open-EO/openeo-api/issues/453)
23+
- `GET /jobs/{job_id}/results`:
24+
- Recommendation to add a link with relation type `canonical` which points to a signed URL with the same content as the response. [#397](https://github.com/Open-EO/openeo-api/issues/397)
25+
- Added metadata field `openeo:status` to indicate the job status (and whether the result is complete or not).
26+
- Added parameter `partial` to allow retrieving incomplete results, which must also add the new property `openeo:status` to the metadata. [#430](https://github.com/Open-EO/openeo-api/issues/430)
27+
- `GET /jobs/{job_id}/logs`, `GET /services/{service_id}/logs`: Added `level` parameter to requests to set the minimum log level returned by the response. [#485](https://github.com/Open-EO/openeo-api/issues/485)
28+
- Added property `log_level` to secondary web service, batch job and synchronous processing endpoints to indicate the minimum severity level that should be stored for logs. [#329](https://github.com/Open-EO/openeo-api/issues/329)
29+
- `GET /jobs/{job_id}/logs`, `GET /services/{service_id}/logs` and `POST /result`: Added `level` property in responses to reflect the minimum log level that may appear in the response. [#329](https://github.com/Open-EO/openeo-api/issues/329)
30+
- Recommendation to add media types and titles to links for a better user experience.
31+
- Allow the relation type `canonical` to be used generally for (shared) resources (e.g. UDPs or batch jobs) without requiring Bearer authentication. [#405](https://github.com/Open-EO/openeo-api/issues/405)
32+
- Recommendation for UDF runtime names. [#409](https://github.com/Open-EO/openeo-api/issues/409)
33+
- Processes: Added `dimensions` schema for subtype `datacube`
34+
- Collections: Added `geometry` dimension type to `cube:dimensions`
35+
- New endpoint for metadata filters (queryables): `/collections/{collection_id}/queryables`. Also adds a new rel type to the collection links. [#396](https://github.com/Open-EO/openeo-api/issues/396)
36+
37+
### Changed
38+
39+
- Updated STAC specification examples and references to v1.0.0, please see the [STAC changelog](https://github.com/radiantearth/stac-spec/blob/master/CHANGELOG.md) for all changes between 0.9 and 1.0.
40+
- `cube:dimensions`: `reference_system` is allowed to be PROJJSON, too.
41+
- Relaxed requirement that unsupported endpoints must return HTTP status code 501. Instead also HTTP status code 404 can be used (and is regularly used in practice). [#415](https://github.com/Open-EO/openeo-api/issues/415)
42+
- Minimum value for `costs` and `budget` is 0.
43+
- `GET /jobs/{job_id}/estimate`: If a batch job can't be estimated reliably, a `EstimateComplexity` error should be returned. [#443](https://github.com/Open-EO/openeo-api/issues/443)
44+
- The `/conformance` endpoint is now generally used for OGC APIs, STAC API and openEO. `conformsTo` is also exposed in `GET /` for STAC APIs. The openEO API and all extensions got individual conformance classes. [#186](https://github.com/Open-EO/openeo-api/issues/186)
45+
46+
### Fixed
47+
48+
- Explicitly mention the use of HTTP content negotiation
49+
- Clarify that the default charset is UTF-8 [#462](https://github.com/Open-EO/openeo-api/issues/462)
50+
- Fixed inconsistencies in errors.json: removed `ProcessGraphIdDoesntMatch`, clarified `ProcessGraphMissing`, added `ProcessInvalid` and `ProcessGraphInvalid`. [#394](https://github.com/Open-EO/openeo-api/issues/394), [#395](https://github.com/Open-EO/openeo-api/issues/395), [#401](https://github.com/Open-EO/openeo-api/issues/401)
51+
- Fixed the default value for the version number in the API url (`v1.0` -> `v1`) and improved the description for API versioning. [#393](https://github.com/Open-EO/openeo-api/issues/393)
52+
- Fixed the Collection example to use `gsd` instead of `eo:gsd`. [#399](https://github.com/Open-EO/openeo-api/issues/399)
53+
- Clarify use of `user_id`. [#404](https://github.com/Open-EO/openeo-api/issues/404)
54+
- Clarify that the relation type `version-history` should include `/.well-known/openeo` in the URL.
55+
- Clarify that clients should (re-)request capabilities and discovery endpoints with token if available and supported. [#416](https://github.com/Open-EO/openeo-api/issues/416)
56+
- Clarify the fields `plan` (for processing requests) and `billing_plan` (in `GET /` and `GET /me`). [#425](https://github.com/Open-EO/openeo-api/issues/425) [#426](https://github.com/Open-EO/openeo-api/issues/426)
57+
- Clarified ambiguous batch job status changes.
58+
- Reflect that the `debug` process has been renamed to `inspect`.
59+
- Clarified uniqueness constraints for identifiers. [#449](https://github.com/Open-EO/openeo-api/issues/449) [#454](https://github.com/Open-EO/openeo-api/issues/454)
60+
- Clarified schematically the applicability of JSON Schema extensions (`parameters`, `returns`, `dimensions`) and their relation to the subtypes
61+
- `GET /`: Removed the superfluous default value for `currency`. [#423](https://github.com/Open-EO/openeo-api/issues/423)
62+
- `GET /credentials/oidc`: Clarify that clients may add additional scopes
63+
- `GET /me`: Clarify the behavior of the field `budget`.
64+
- `GET /jobs/{job_id}/logs`, `GET /services/{service_id}/logs` and `POST /result`: Clarified the formatting of the `message` property. [#455](https://github.com/Open-EO/openeo-api/issues/455)
65+
- `GET /jobs/{job_id}/estimate`: Don't require that the costs are the upper limit. Services may specify the costs more freely depending on their terms of service.
66+
- `GET /services` and `GET /services/{service_id}`: Clarify that `enabled` is required by removing the default value. [#473](https://github.com/Open-EO/openeo-api/issues/473)
67+
- Several appearances of `nullable` were clarified according to the lint report by Spectral
68+
- Clarify how the well-known document works [#460](https://github.com/Open-EO/openeo-api/issues/460)
69+
- Clarify handling of JSON Schema versions
70+
971
## [1.1.0] - 2021-05-17
1072

1173
### Added
@@ -34,7 +96,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3496
- Clarified that job results require the property `datetime` and allow for additional properties. [#362](https://github.com/Open-EO/openeo-api/issues/362)
3597
- Clarified that billing plans, service names and file formats must be accepted case-insensitive. [#371](https://github.com/Open-EO/openeo-api/issues/371)
3698
- Clarified that the first provider listed at `GET /credentials/oidc` is the default provider for OpenID Connect.
37-
- Clarified that `GET /jobs/{job_id}/results` should always return valid signed URLs and the endpoint can be used to renew the signed URLs. [#379](https://github.com/Open-EO/openeo-api/issues/379)
99+
- Clarified that `GET /jobs/{job_id}/results` should always return valid signed URLs and the endpoint can be used to renew the signed URLs. [#379](https://github.com/Open-EO/openeo-api/issues/379)
38100
- Fixed casing of potential endpoints `GET /collections/{collection_id}/items` and `GET /collections/{collection_id}/items/{feature_id}`.
39101
- Clarified allowed characters in the `path` for uploaded user files.
40102

@@ -83,9 +145,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
83145
- Additional dimensions in `cube:dimensions` can only be of type `other`.
84146
- The extents `interval` and `bbox` can have multiple entries.
85147
- Allow all STAC versions that are compatible to STAC 0.9.0.
86-
- Process graph nodes have an additional field `namespace` to distinguish pre-defined and user-defined processes. The default behavior has not changed. [#305](https://github.com/Open-EO/openeo-api/issues/305)
148+
- Process graph nodes have an additional field `namespace` to distinguish predefined and user-defined processes. The default behavior has not changed. [#305](https://github.com/Open-EO/openeo-api/issues/305)
87149
- Added `format: commonmark` to all properties supporting CommonMark formatting.
88-
- `errors.json`: The pre-defined error messages have been reworked. [#272](https://github.com/Open-EO/openeo-api/issues/272), [#273](https://github.com/Open-EO/openeo-api/issues/273)
150+
- `errors.json`: The predefined error messages have been reworked. [#272](https://github.com/Open-EO/openeo-api/issues/272), [#273](https://github.com/Open-EO/openeo-api/issues/273)
89151
- Added `FolderOperationUnsupported`, `UnsupportedApiVersion`, `PermissionsInsufficient`, `ProcessGraphIdDoesntMatch` and `PredefinedProcessExists`.
90152
- Added variable `reason` to error `FilePathInvalid` and `type` to `FileTypeInvalid` and`ServiceUnsupported`.
91153
- Replaced the following error messages. The variables in the messages may have changed, too.
@@ -272,7 +334,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
272334
- `GET /jobs/{job_id}/estimate` can return the estimated required storage capacity. [#122](https://github.com/Open-EO/openeo-api/issues/122)
273335
- `GET /jobs/{job_id}` has two new properties:
274336
- `progress` indicates the batch job progress when running. [#82](https://github.com/Open-EO/openeo-api/issues/82)
275-
- `error` states the error message when a job errored out.
337+
- `error` states the error message when a job stopped due to an error.
276338
`GET /jobs/{job_id}/result` mirrors this error message in a response with HTTP status code 424. [#165](https://github.com/Open-EO/openeo-api/issues/165)
277339
- `GET /.well-known/openeo` allows clients to choose between versions. [#148](https://github.com/Open-EO/openeo-api/issues/148)
278340
- `GET /` (Capabilities):
@@ -369,6 +431,7 @@ Initial version.
369431

370432

371433
[Unreleased]: <https://github.com/Open-EO/openeo-api/compare/master...dev>
434+
[1.2.0]: <https://github.com/Open-EO/openeo-api/compare/1.1.0...1.2.0>
372435
[1.1.0]: <https://github.com/Open-EO/openeo-api/compare/1.0.1...1.1.0>
373436
[1.0.1]: <https://github.com/Open-EO/openeo-api/compare/1.0.0...1.0.1>
374437
[1.0.0]: <https://github.com/Open-EO/openeo-api/compare/0.4.2...1.0.0>

README.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ openEO develops an open API to connect R, Python and JavaScript clients to big E
66

77
## Versions / Branches
88

9-
The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 'stable' version of the openEO API specification. It is currently version **1.1.0** of the specification. The [draft branch](https://github.com/Open-EO/openeo-api/tree/draft) is where active development takes place.
9+
The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 'stable' version of the openEO API specification. It is currently version **1.2.0** of the specification. The [draft branch](https://github.com/Open-EO/openeo-api/tree/draft) is where active development takes place.
1010

1111
| Version / Branch | Status | Description |
1212
| --------------------------------------------------------- | ----------- | ----------- |
1313
| [draft](https://api.openeo.org/draft) | planned | *Unstable* - Next version. |
14-
| [**1.1.0**](https://api.openeo.org) | **current** | Clarifications, STAC updates, return value for child processes, more details for logs and jobs, default clients for OIDC. [Changelog](CHANGELOG.md#110---2021-06-15). |
14+
| [**1.2.0**](https://api.openeo.org) | **current** | Clarifications, new extensions, vector data cubes, STAC (API) updates, more link relation types, improved batch job results and logs. [Changelog](CHANGELOG.md#120---2023-05-31). |
15+
| [1.1.0](https://api.openeo.org/1.1.0) | legacy | Clarifications, STAC updates, return value for child processes, more details for logs and jobs, default clients for OIDC. [Changelog](CHANGELOG.md#110---2021-06-15). |
1516
| [1.0.1](https://api.openeo.org/1.0.1) | legacy | Clarifications, bugfixes and CORS improvements. [Changelog](CHANGELOG.md#101---2020-12-07). |
1617
| [1.0.0](https://api.openeo.org/1.0.0) | legacy | First stable version of openEO. [Changelog](CHANGELOG.md#100---2020-07-17). |
1718
| [1.0.0-rc.2](https://api.openeo.org/1.0.0-rc.2) | legacy | Introduced user-defined processes. [Changelog](CHANGELOG.md#100-rc2---2020-02-20). |
@@ -26,10 +27,30 @@ The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 's
2627

2728
See also the [changelog](CHANGELOG.md) and the [milestones](https://github.com/Open-EO/openeo-api/milestones) for a rough roadmap based on GitHub issues.
2829

30+
## Extensions
31+
32+
| Name | Version | Stability | Description |
33+
| ---------------------------------------------- | ------- | ------------ | ----------- |
34+
| [Commercial Data](extensions/commercial-data/) | 0.1.0 | experimental | Provides an interface for discovering, ordering and using commercial data. |
35+
| [Federation](extensions/federation/) | 0.1.0 | experimental | Covers federation aspects, i.e. where multiple back-ends are exposed as a single API. |
36+
2937
## Repository
3038

3139
This repository contains a set of files formally describing the openEO API, each with a human-readable and easily browseable version:
3240

3341
* [openapi.yaml](openapi.yaml) provides the [OpenAPI](https://www.openapis.org/) 3.0 definition of the openEO API. See the table above for human-readable versions of the OpenAPI definition.
3442
* [errors.json](errors.json) is a list of potential global error codes and messages, excluding specific exceptions separately available for each process.
3543
* The [assets](assets/) folder contains some useful additional files such as examples or schemas. All of these are non-binding additions. The source of truth are the top-level specification files.
44+
* The [extensions](extensions/) folder contains extensions to the openEO API.
45+
46+
# Development
47+
48+
The `draft` branch is the latest version and is the one to create Pull Requests against.
49+
50+
For development some tools can be used:
51+
52+
1. Install [node and npm](https://nodejs.org) - should run with any recent version
53+
2. Run `npm install` in this folder to install the dependencies
54+
3. Run the linter for the OpenAPI file with `npm test`. This will lint the files and check against some best-practices. It uses `spectral` in the background.
55+
4. To show the files nicely formatted in a web browser, run `npm start`. It starts a server and opens the API specification rendered with ReDoc in a web browser.
56+
5. To create a static HTML page (e.g. for hosting it on GitHub Pages), you can run `npm run build` and it will create a `redoc.html` in this folder.

0 commit comments

Comments
 (0)