Skip to content

Commit 206567e

Browse files
authored
Merge pull request #258 from Open-EO/1.0.0-rc.1
Release 1.0.0 rc.1
2 parents c0c5e8d + 4d7f600 commit 206567e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+6445
-8367
lines changed

.gitignore

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
__pycache__/
2-
.vscode
3-
site/
4-
.idea
2+
package-lock.json
3+
node_modules/
4+
/redoc.html

.gitmodules

-3
This file was deleted.

.travis.yml

+51-29
Original file line numberDiff line numberDiff line change
@@ -9,47 +9,69 @@ node_js:
99
sudo: required
1010

1111
before_install:
12+
# Speccy
1213
- npm install -g speccy
13-
- speccy lint openapi.json -r "speccy.yml"
14+
- speccy lint openapi.yaml -r tests/speccy.yml
15+
# OpenAPI Spec Validator
1416
- pip install openapi-spec-validator
15-
- openapi-spec-validator openapi.json
17+
- openapi-spec-validator openapi.yaml
1618
# DIY example validation (PR#194)
1719
- pip install -r tests/requirements.txt
1820
- pytest tests
21+
# ToDo: Check assets/pg-evi-example.json against the schema in pg-schema.json
1922

2023
install:
21-
- pip install mkdocs
22-
- pip install mkdocs-material
23-
- pip install mkdocs-macros-plugin
24-
- pip install pymdown-extensions
25-
- pip install pygments
26-
- npm install -g asyncapi-generator@0.6.7 # 0.7 only supports AsyncAPI 2.0
27-
- npm install -g concat-json-files
24+
- npm install
2825

2926
script:
30-
- concat-json-files "processes/*.json" -t "processes.json"
31-
- mv CHANGELOG.md docs/changelog.md
32-
- ag subscriptions.json markdown
33-
- \mv -f asyncapi.md docs/apireference-subscriptions.md
34-
- mkdocs build --clean
35-
- cp *.json site/
36-
- \mv -f docs/apireference.html site/apireference/index.html
37-
- \mv -f docs/processreference.html site/processreference/index.html
38-
- cp processes/*.json site/processreference/
27+
- npm run build
3928

4029
before_deploy:
4130
- git clone --branch gh-pages https://$GITHUB_TOKEN@github.com/Open-EO/openeo-api.git gh-pages
4231
- cd gh-pages
43-
- if [[ $TRAVIS_BRANCH == 'master' ]] ; then rm -rf !(v) && cp -R ../site/* ./ ; fi
44-
- if [[ $TRAVIS_BRANCH == 'draft' ]] ; then rm -rf draft/ && mkdir -p draft/ && cp -R ../site/* draft/ ; fi
45-
- if [[ $TRAVIS_BRANCH =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then rm -rf v/$TRAVIS_BRANCH/ && mkdir -p v/$TRAVIS_BRANCH/ && cp -R ../site/* v/$TRAVIS_BRANCH/ ; fi
32+
- |
33+
if [[ $TRAVIS_BRANCH == 'master' ]] ; then
34+
cp ../redoc.html index.html
35+
cp ../errors.json errors.json
36+
cp ../subtype-schemas.json subtype-schemas.json
37+
cp -r ../assets assets
38+
fi
39+
- |
40+
if [[ $TRAVIS_BRANCH == 'draft' ]] ; then
41+
rm -rf draft
42+
mkdir -p draft
43+
cp ../redoc.html draft/index.html
44+
cp ../errors.json draft/errors.json
45+
cp ../subtype-schemas.json draft/subtype-schemas.json
46+
cp -r ../assets draft/assets
47+
fi
48+
- |
49+
if [ -n "$TRAVIS_TAG" ] ; then
50+
rm -rf $TRAVIS_TAG
51+
mkdir -p $TRAVIS_TAG
52+
cp ../redoc.html $TRAVIS_TAG/index.html
53+
cp ../errors.json $TRAVIS_TAG/errors.json
54+
cp ../subtype-schemas.json $TRAVIS_TAG/subtype-schemas.json
55+
cp -r ../assets $TRAVIS_TAG/assets
56+
fi
4657
4758
deploy:
48-
provider: pages
49-
skip-cleanup: true
50-
github-token: $GITHUB_TOKEN
51-
keep-history: true
52-
committer-from-gh: true
53-
local-dir: gh-pages
54-
on:
55-
all_branches: true
59+
- provider: pages
60+
skip-cleanup: true
61+
github-token: $GITHUB_TOKEN
62+
local-dir: gh-pages
63+
keep-history: true
64+
name: openEO CI
65+
email: openeo.ci@uni-muenster.de
66+
on:
67+
tags: true
68+
- provider: pages
69+
skip-cleanup: true
70+
github-token: $GITHUB_TOKEN
71+
local-dir: gh-pages
72+
keep-history: true
73+
name: openEO CI
74+
email: openeo.ci@uni-muenster.de
75+
on:
76+
all_branches: true
77+
condition: $TRAVIS_BRANCH =~ ^(master|draft)$

CHANGELOG.md

+85-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,97 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [0.4.2] - 2019-06-11
7+
## 1.0.0-rc.1 - 2020-01-31
8+
9+
**Note:** The user and developer documentation has been moved to [openeo.org](https://openeo.org/documentation).
10+
11+
### Added
12+
13+
- `GET /`:
14+
- Field `production` added to response. [#184](https://github.com/Open-EO/openeo-api/issues/184)
15+
- Required fields `stac_version` and `id` added to response for STAC compatibility. [#247](https://github.com/Open-EO/openeo-api/issues/247)
16+
- Links with relation types `terms-of-service` and `privacy-policy` explicitly documented. Clients must handle them properly if present. [#212](https://github.com/Open-EO/openeo-api/issues/212)
17+
- `GET /collections` and `GET /collections/{collectionId}`:
18+
- New field `deprecated` can be used to indicate outdated collections. Links with relation type `latest-version` can point to the latest version. [#226]( https://github.com/Open-EO/openeo-api/issues/226)
19+
- Added a Data Cube Dimension of type `bands` to the `cube:dimensions` property. [#208](https://github.com/Open-EO/openeo-api/issues/208)
20+
- `GET /conformance` has been added for OCG API compliance. Back-ends may implement it for compatibility with OGC API clients.
21+
- `POST /result`: May add a link to a log file in the header. [#214](https://github.com/Open-EO/openeo-api/issues/214)
22+
- `GET /jobs/{job_id}/logs` and `GET /services/{service_id}/logs`: Endpoints that publish logging information. [#214](https://github.com/Open-EO/openeo-api/issues/214)
23+
- `GET /files`, `GET /jobs`, `GET /process_graphs`, `GET /services`: Added `limit` parameter for pagination and clarified how to use links for pagination. [#103](https://github.com/Open-EO/openeo-api/issues/103)
24+
- JSON Schema for the defined schema `subtypes`.
825

926
### Changed
10-
- Updated the process catalog, see the separate changelog.
27+
28+
- The concept of callbacks has simply been renamed to process graph. Schema format/subtype `callback` has been renamed to `process-graph`. [#216](https://github.com/Open-EO/openeo-api/issues/216)
29+
- Unsupported endpoints are not forced to return a `FeatureUnsupported` (501) error and can return a simple `NotFound` (404) instead.
30+
- If `currency` returned by `GET /` is `null`, `costs` and `budget` are unsupported. `costs` and `budget` fields in various endpoints can be set to `null` (default).
31+
- Official support for [CommonMark 0.29 instead of CommonMark 0.28](https://spec.commonmark.org/0.29/changes.html). [#203](https://github.com/Open-EO/openeo-api/issues/203)
32+
- The parameter `user_id ` has been removed from the endpoints to manage user files (`/files/{user_id}`). [#218](https://github.com/Open-EO/openeo-api/issues/218)
33+
- Schema subtype `band-name` allows common band names, too. [Processes#77](https://github.com/Open-EO/openeo-processes/issues/77)
34+
- Link property `rel` is required.
35+
- OpenAPI string format `url` has been replaced with `uri`.
36+
- Process graphs:
37+
- `from_argument` has been renamed to `from_parameter`.
38+
- `callback` has been renamed to `process_graph`.
39+
- `from_parameter` can access parameters defined in parent scopes.
40+
- `from_parameter` can be used in the top-level process graph.
41+
- Process graph variables (objects with `variable_id` etc.) have been removed.
42+
- `GET /jobs`, `GET /jobs/{job_id}`, `GET /services` and `GET /services/{service_id}`: Renamed field `submitted` to `created` for consistency with STAC job results.
43+
- `GET /`: Property `links` is required.
44+
- `GET /service_types`:
45+
- `parameter` has been renamed to `configuration` to not overlap with `process_parameters`.
46+
- `variables` has been renamed to `process_parameters` and has a different schema now. [#161](https://github.com/Open-EO/openeo-api/issues/161)
47+
- `GET /processes`:
48+
- Default values are now specified on the parameter-level, not in the JSON schemas.
49+
- Multiple data types in parameters or return values are supported as arrays. Using `anyOf` is discouraged.
50+
- Parameters are defined as array. `parameter_order` is therefore removed and the name is part of the parameter object. [#239](https://github.com/Open-EO/openeo-api/issues/239)
51+
- Process graph (callback) parameters have a new, more advanced schema, allowing to define more aspects of the process graph parameters. [#239](https://github.com/Open-EO/openeo-api/issues/239)
52+
- Return values don't require a description any longer.
53+
- `required` was replaced with `optional` with inverted behavior.
54+
- `GET /collections` and `GET /collections/{collectionId}`: Updated STAC to version 0.9.0. See the [STAC Changelog](https://github.com/radiantearth/stac-spec/blob/master/CHANGELOG.md) for more details. [#247](https://github.com/Open-EO/openeo-api/issues/247), [#204](https://github.com/Open-EO/openeo-api/issues/204).
55+
- `GET /credentials/oidc`: Changed response to support multiple OpenID Connect identity providers ([#201](https://github.com/Open-EO/openeo-api/issues/201)) and clarified workflow overall.
56+
- Bearer token are built from the authentication method, an optional provider id and the token itself. [#219](https://github.com/Open-EO/openeo-api/issues/219)
57+
- `GET /udf_runtimes`: `description` fields don't allow `null` values any longer.
58+
- `GET /output_formats` renamed to `GET /file_formats` to allow listing input file formats. [#215](https://github.com/Open-EO/openeo-api/issues/215)
59+
- The structure of the response has changed. The former response body for the output formats is now available in the property `output`.
60+
- The input file formats are now available in the property `input` with the same schema as for output formats.
61+
- Additionally, each format can have a `title`.
62+
- `GET /jobs/{job_id}/results`:
63+
- Response body for status code 200 has changed to be a valid STAC Item, allows content type `application/geo+json`.
64+
- Response body for status code 424 has been extended.
65+
66+
### Deprecated
67+
68+
- The processes should not use the JSON Schema keyword `format` any longer. Instead use the custom keyword `subtype`. [#233](https://github.com/Open-EO/openeo-processes/issues/233)
69+
- PROJ definitions are deprecated in favor of EPSG codes and WKT2. [#58](https://github.com/Open-EO/openeo-processes/issues/58)
70+
71+
### Removed
72+
73+
- Process graph variables. Use Parameter References instead.
74+
- `GET /processes`: `media_type` removed from parameters and return values. Use `contentMediaType` in the JSON Schema instead.
75+
- `GET /job/{job_id}`: Removed property `error`. Request information from `GET /job/{job_id}/logs` instead.
76+
- `GET /job/{job_id}/results`:
77+
- Metalink XML encoding has been removed. [#205](https://github.com/Open-EO/openeo-api/issues/205)
78+
- `Expires` header has been removed, use `expires` property in the response body instead.
79+
- `GET /credentials/basic` doesn't return a `user_id`. Instead request it from `GET /me`.
80+
- `GET /collections/{collectionId}`: Removed optional STAC extensions from the API specification. Inform yourself about useful [STAC extensions](https://github.com/radiantearth/stac-spec/tree/master/extensions#list-of-content-extensions) instead. [#176](https://github.com/Open-EO/openeo-api/issues/176)
81+
- `GET /service_types` doesn't support `attributes` any longer.
82+
83+
### Fixed
84+
85+
- Service parameters and attributes in `GET /service_types` and output format parameters in `GET /file_formats` (previously `GET /output_formats`) now have a `type`, which was previously only mentioned in examples.
86+
- `GET /processes`: Parameters `arguments` and `process_graph` can't be used together in process examples.
87+
- `GET /collections`, `GET /processes`: Clarified that pagination is not supported. [#103](https://github.com/Open-EO/openeo-api/issues/103)
88+
- `GET ./well-known/openeo`: Clarified how clients and back-ends should implement well-known discovery. [#202](https://github.com/Open-EO/openeo-api/issues/202)
89+
90+
## [0.4.2] - 2019-06-11
1191

1292
### Added
1393
- Basic JSON Schema for process graph validation.
1494

95+
### Changed
96+
- Updated the process catalog, see the separate changelog.
97+
1598
### Removed
1699
- Disallowed CommonMark in descriptions of process graph variables and process graph nodes.
17100

README.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,33 @@
22

33
openEO develops an open API to connect R, Python and JavaScript clients to big Earth observation cloud back-ends in a simple and unified way. This repository contains this API, the openEO (core) API.
44

5-
* **[Documentation / Specification](https://open-eo.github.io/openeo-api/v/0.4.2/index.html)**
5+
* **[Documentation / Specification](https://api.openeo.org)**
66

77
## Versions
88

9-
The openEO (core) API is currently released in version **0.4.2**.
9+
The openEO (core) API is currently released in version **1.0.0-rc.1**.
1010

1111
**Note:** The specification is currently still an early version, with the potential for some major things to change. The core is now fleshed out, so implementors are encouraged to try it out and give feedback. But the goal is to actually be able to act on that feedback, which will mean changes are quite possible. A solid basis is specified right now, but best practices, extensions and specification details will emerge with implementation.
1212

13-
| Version / Branch | Status | Description |
14-
| ------------------------------------------------------------ | ------- | ----------- |
15-
| [0.0.1](https://github.com/Open-EO/openeo-api/tree/0.0.1) ([Spec](https://open-eo.github.io/openeo-api/v/0.0.1/index.html)) | legacy | First draft with basic ideas, loosely implemented. |
16-
| [0.0.2](https://github.com/Open-EO/openeo-api/tree/0.0.2) ([Spec](https://open-eo.github.io/openeo-api/v/0.0.2/index.html)) | legacy | Proof of concept, implemented. |
17-
| [0.3.0](https://github.com/Open-EO/openeo-api/tree/0.3.0) ([Spec](https://open-eo.github.io/openeo-api/v/0.3.0/index.html)) | legacy | Major rework. |
18-
| [0.3.1](https://github.com/Open-EO/openeo-api/tree/0.3.1) ([Spec](https://open-eo.github.io/openeo-api/v/0.3.1/index.html)) | legacy | Fixing minor issues, see the [changelog](CHANGELOG.md#031---2018-11-06). |
19-
| [0.4.0](https://github.com/Open-EO/openeo-api/tree/0.4.0) ([Spec](https://open-eo.github.io/openeo-api/v/0.4.0/index.html)) | legacy | Improved discovery, added processes catalogue, new process graph structure and [more](CHANGELOG.md#040---2019-03-07). |
20-
| [0.4.1](https://github.com/Open-EO/openeo-api/tree/0.4.1) ([Spec](https://open-eo.github.io/openeo-api/v/0.4.1/index.html)) | legacy | Bugfix release, see the [changelog](CHANGELOG.md#041---2019-05-29). |
21-
| [**0.4.2**](https://github.com/Open-EO/openeo-api/tree/0.4.2) ([Spec](https://open-eo.github.io/openeo-api/v/0.4.2/index.html)) | **current** | Bugfix release, see the [changelog](CHANGELOG.md#042---2019-06-11). |
22-
| [draft](https://github.com/Open-EO/openeo-api/tree/draft) ([Spec](https://open-eo.github.io/openeo-api/draft/index.html)) | planned | Improvements based on implementer feedback, introduce extension concept. Potentially version 1.0.0. |
13+
| Version / Branch | Status | Description |
14+
| --------------------------------------------------------- | ----------- | ----------- |
15+
| [draft](https://api.openeo.org/draft) | planned | Bug fixes based on developer feedback, introduce extension concept. Potentially version 1.0.0-final. |
16+
| [**1.0.0-rc.1**](https://api.openeo.org) | **current** | Release candidate for first stable version of openEO, see the [changelog](CHANGELOG.md#100-rc1---2020-01-31). |
17+
| [0.4.2](https://api.openeo.org/v/0.4.2) | legacy | Bugfix release, see the [changelog](CHANGELOG.md#042---2019-06-11). |
18+
| [0.4.1](https://api.openeo.org/v/0.4.1) | legacy | Bugfix release, see the [changelog](CHANGELOG.md#041---2019-05-29). |
19+
| [0.4.0](https://api.openeo.org/v/0.4.0) | legacy | Improved discovery, added processes catalogue, new process graph structure and [more](CHANGELOG.md#040---2019-03-07). |
20+
| [0.3.1](https://api.openeo.org/v/0.3.1) | legacy | Fixing minor issues, see the [changelog](CHANGELOG.md#031---2018-11-06). |
21+
| [0.3.0](https://api.openeo.org/v/0.3.0) | legacy | Major rework. |
22+
| [0.0.2](https://github.com/Open-EO/openeo-api/tree/0.0.2) | legacy | Proof of concept, implemented. |
23+
| [0.0.1](https://github.com/Open-EO/openeo-api/tree/0.0.1) | legacy | First draft with basic ideas, loosely implemented. |
2324

2425
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.
2526

2627
## Repository
2728

28-
This repository contains a set of files formally and technically describing the openEO API, each with a human-readable and easily browseable version:
29+
This repository contains a set of files formally describing the openEO API, each with a human-readable and easily browseable version:
2930

30-
* [docs/](docs/) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.2/)) contains all additional written documentation, including 'getting started' guides, the architecture, feature descriptions, development guidelines and more.
31-
* [processes/](processes/) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.2/processreference/)) defines pre-defined core processes back-ends may implement for best interoperability.
32-
* [openapi.json](openapi.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.2/apireference/)) provides the [openAPI](https://www.openapis.org/) 3.0 definition of the openEO API.
33-
* [subscriptions.json](subscriptions.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.2/apireference-subscriptions/)) provides the [AsyncAPI](https://www.asyncapi.com/) 1.2 definitions for the WebSocket-based subscriptions and notifications API for openEO.
34-
* [errors.json](errors.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.2/errors/#openeo-error-codes)) is a list of potential global error codes and messages, excluding specific exceptions separately available for each process.
31+
* [openapi.yaml](openapi.yaml) ([browseable version](https://api.openeo.org/)) provides the [openAPI](https://www.openapis.org/) 3.0 definition of the openEO API.
32+
* [errors.json](errors.json) is a list of potential global error codes and messages, excluding specific exceptions separately available for each process.
33+
* [subtype-schema.json](subtype-schema.json) defines data types (subtypes) for JSON Schema used in openEO.
34+
* [assets/] 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.

0 commit comments

Comments
 (0)