Skip to content

Commit fadbe5d

Browse files
authored
Merge pull request #170 from Open-EO/0.4.0
openEO API v0.4.0
2 parents 5457233 + 002f01e commit fadbe5d

32 files changed

+3988
-2917
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "processes"]
2+
path = processes
3+
url = https://github.com/Open-EO/openeo-processes

.travis.yml

+10-7
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,21 @@ before_install:
1313
- pip install mkdocs-macros-plugin
1414
- pip install pymdown-extensions
1515
- pip install pygments
16-
- npm install -g asyncapi-docgen
16+
- npm install -g asyncapi-generator
17+
- npm install -g concat-json-files
18+
- npm install -g speccy
19+
- speccy lint openapi.json -r "speccy.yml"
1720

1821
install:
22+
- concat-json-files "processes/*.json" -t "processes.json"
1923
- mv CHANGELOG.md docs/changelog.md
24+
- ag subscriptions.json markdown
25+
- \mv -f asyncapi.md docs/apireference-subscriptions.md
2026
- mkdocs build --clean
2127
- cp *.json site/
22-
- rm -f site/apireference/index.html
23-
- rm -f site/processreference/index.html
24-
- rm -f site/apireference-subscriptions/index.html
25-
- mv docs/apireference.html site/apireference/index.html
26-
- mv docs/processreference.html site/processreference/index.html
27-
- adg subscriptions.json -o site/apireference-subscriptions
28+
- \mv -f docs/apireference.html site/apireference/index.html
29+
- \mv -f docs/processreference.html site/processreference/index.html
30+
- cp processes/*.json site/processreference/
2831

2932
script:
3033
- git clone --branch gh-pages https://$GITHUB_TOKEN@github.com/Open-EO/openeo-api.git gh-pages

CHANGELOG.md

+62-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,75 @@ 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.0] - 2019-03-07
8+
### Added
9+
- `GET /jobs/{job_id}/estimate` can return the estimated required storage capacity. [#122](https://github.com/Open-EO/openeo-api/issues/122)
10+
- `GET /jobs/{job_id}` has two new properties:
11+
- `progress` indicates the batch job progress when running. [#82](https://github.com/Open-EO/openeo-api/issues/82)
12+
- `error` states the error message when a job errored out.
13+
`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)
14+
- `GET /.well-known/openeo` allows clients to choose between versions. [#148](https://github.com/Open-EO/openeo-api/issues/148)
15+
- `GET /` (Capabilities):
16+
- Requires to return a title (`title`), a description (`description`) and the back-end version (`backend_version`). [#154](https://github.com/Open-EO/openeo-api/issues/154)
17+
- Billing plans have an additional required property `paid`. [#157](https://github.com/Open-EO/openeo-api/issues/157)
18+
- Should provide a link to the Well-Known URI (`/.well-known/openeo`) in the new `links` property.
19+
- `GET /processes` (Process discovery):
20+
- Processes can be categorizes with the `category` property.
21+
- Parameters can be ordered with the `parameter_order` property instead of having a random order.
22+
- Support for references to other processes in descriptions.
23+
- Processes and parameters can be declared to be `experimental`.
24+
- `GET /output_formats` and `GET /service_types` can now provide links per entry.
25+
- `GET /udf_runtimes` provide a list of UDF runtime environments. [#87](https://github.com/Open-EO/openeo-api/issues/87)
26+
- `GET /service_types` allows to specify `variables` that can be used in process graphs. [#172](https://github.com/Open-EO/openeo-api/issues/172)
27+
28+
### Changed
29+
- Completely new version of the processes.
30+
- Changed process graph to a flexible graph-like structure, which also allows callbacks. [#160](https://github.com/Open-EO/openeo-api/issues/160)
31+
- Updated `GET /collections` and `GET /collections/{collection_id}` to follow STAC v0.6.2. [#158](https://github.com/Open-EO/openeo-api/issues/158), [#173](https://github.com/Open-EO/openeo-api/issues/173)
32+
- The `process_graph_id` of stored process graphs, the `service_id` of services and the `job_id` of jobs has changed to `id` in responses. [#130](https://github.com/Open-EO/openeo-api/issues/130)
33+
- The `status` property for jobs is now required.
34+
- `POST /preview` renamed to `POST /result`. [#162](https://github.com/Open-EO/openeo-api/issues/162)
35+
- `GET /` (Capabilities):
36+
- `version` in the response was renamed to `api_version`.
37+
- Endpoint paths must follow the openAPI specification. [#128](https://github.com/Open-EO/openeo-api/issues/128)
38+
- Billing plan descriptions allow CommonMark. [#164](https://github.com/Open-EO/openeo-api/issues/164)
39+
- `/files/{user_id}/{path}` File management:
40+
- Clarified handling of folders. [#146](https://github.com/Open-EO/openeo-api/issues/146)
41+
- `GET` method: The `name` property was renamed to `path`. [#133](https://github.com/Open-EO/openeo-api/issues/133)
42+
- `PUT` method: Returns file meta data with a different response code. [#163](https://github.com/Open-EO/openeo-api/issues/163)
43+
- `GET /processes` (Process discovery):
44+
- The `name` property of processes has changed to `id`. [#130](https://github.com/Open-EO/openeo-api/issues/130)
45+
- `mime_type` replaced with `media_type` in the input parameters and return values.
46+
- The schema for `exceptions` follows the general schema for openEO errors. [#139](https://github.com/Open-EO/openeo-api/issues/139)
47+
- Changed the structure of `examples`.
48+
- `POST /validation` (Process graph validation):
49+
- Returns HTTP status code 200 for valid and invalid process graphs and responds with a list of errors. [#144]
50+
- Allowed to call the endpoint without authentication. [#151](https://github.com/Open-EO/openeo-api/issues/151)
51+
- Behavior for `DELETE /jobs/{job_id}/results` and `POST /jobs/{job_id}/results` specified depending on the job status. Clarified status changes in general. [#142](https://github.com/Open-EO/openeo-api/issues/142)
52+
- Improved client development guidelines. [#124](https://github.com/Open-EO/openeo-api/issues/124), [#138](https://github.com/Open-EO/openeo-api/issues/138)
53+
54+
### Removed
55+
- Numeric openEO error codes. Replaced in responses with textual error codes. [#139](https://github.com/Open-EO/openeo-api/issues/139)
56+
- Query parameters to replace process graph variables in `GET /process_graphs/{process_graph_id}`. [#147](https://github.com/Open-EO/openeo-api/issues/147)
57+
- `min_parameters` and `dependencies` for parameters in process descriptions returned by `GET /processes`.
58+
- Replaced output format properties in favor of an export process, which has resulted in in the removal of:
59+
- The default output format in `GET /output_formats`. [#153](https://github.com/Open-EO/openeo-api/issues/153)
60+
- The output format properties in `POST /result` (fka `POST /preview`), `POST /jobs`, `PATCH /jobs` and `GET /jobs/{job_id}` requests. [#153](https://github.com/Open-EO/openeo-api/issues/153)
61+
- `gis_data_type` (not to be confused with `gis_data_types`) in the parameters of output formats in `GET /output_formats`
62+
63+
### Fixed
64+
- Added missing `Access-Control-Expose-Headers` header to required CORS headers.
65+
- Some endpoints didn't include authentication information.
66+
- `GET /jobs/{job_id}/estimate`: Property `downloads_included` had a wrong default value.
67+
768
## [0.3.1] - 2018-11-06
869

970
### Added
1071
- `createProcessGraph` method to client development guidelines.
1172
- JSON file with all specified errors.
1273
- Textual error codes for each specified error.
1374
- Allow setting a plan for `POST /preview`
14-
- Default billing plan in `GET /`.
75+
- Default billing plan in `GET /`. [#141](https://github.com/Open-EO/openeo-api/issues/141)
1576
- Job ID in JSON response for `GET /jobs/{job_id}/results`.
1677

1778
### Changed

README.md

+14-12
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,31 @@
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.3.1/index.html)**
5+
* **[Documentation / Specification](https://open-eo.github.io/openeo-api/v/0.4.0/index.html)**
66

77
## Versions
88

9-
The openEO (core) API is currently released in version **0.3.1**.
9+
The openEO (core) API is currently released in version **0.4.0**.
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. |
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. |
1717
| [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)) | **current** | Fixing minor issues, see the changelog. |
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)) | planned | Planned to improve data set descriptions, add process specifications and an extension concept. |
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, supported | 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)) | **current** | Improved discovery, added processes catalogue, new process graph structure and [more](CHANGELOG.md#031---2019-02-28). |
20+
| [0.5.0](https://github.com/Open-EO/openeo-api/tree/0.5.0) ([Spec](https://open-eo.github.io/openeo-api/v/0.5.0/index.html)) | planned | Improvements based on implementer feedback, introduce extension concept. |
2021

2122
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.
2223

2324
## Repository
2425

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

27-
* [openapi.json](openapi.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.3.1/apireference/)) provides the [openAPI](https://www.openapis.org/) 3.0 definition of the openEO API.
28-
* [processes.json](processes.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.3.1/processreference/)) defines pre-defined core processes back-ends may implement for best interoperability.
29-
* [subscriptions.json](subscriptions.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.3.1/apireference-subscriptions/)) provides the [AsyncAPI](https://www.asyncapi.com/) 1.2 definitions for the WebSocket-based subscriptions and notifications API for openEO.
30-
* [docs/](docs/) ([browseable version](https://open-eo.github.io/openeo-api/v/0.3.1/)) contains all additional written documentation, including 'getting started' guides, the architecture, feature descriptions, development guidelines and more.
28+
* [docs/](docs/) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.0/)) contains all additional written documentation, including 'getting started' guides, the architecture, feature descriptions, development guidelines and more.
29+
* [processes/](processes/) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.0/processreference/)) defines pre-defined core processes back-ends may implement for best interoperability.
30+
* [openapi.json](openapi.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.0/apireference/)) provides the [openAPI](https://www.openapis.org/) 3.0 definition of the openEO API.
31+
* [subscriptions.json](subscriptions.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.0/apireference-subscriptions/)) provides the [AsyncAPI](https://www.asyncapi.com/) 1.2 definitions for the WebSocket-based subscriptions and notifications API for openEO.
32+
* [errors.json](errors.json) ([browseable version](https://open-eo.github.io/openeo-api/v/0.4.0/errors/#openeo-error-codes)) is a list of potential global error codes and messages, excluding specific exceptions separately available for each process.

docs/apireference.html

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
<html lang="en" class="js json svg checked target dataset details fetch supports csstransforms3d no-ios" style="">
1+
<html lang="en">
22
<head>
33
<meta charset="utf-8">
44
<meta name="viewport" content="width=device-width,initial-scale=1">
55
<meta http-equiv="x-ua-compatible" content="ie=edge">
66
<link rel="shortcut icon" href="../assets/images/favicon.png">
77
<title>openEO API Reference</title>
8-
<link rel="stylesheet" href="../assets/stylesheets/application.451f80e5.css">
8+
<link rel="stylesheet" href="../img/header.css">
99
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
10-
<style>
11-
body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}
12-
code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}
13-
.md-header-nav__button.md-logo {display: inline-block}
14-
</style>
1510
<link rel="stylesheet" href="../assets/fonts/material-icons.css">
1611
</head>
1712
<body dir="ltr" data-md-state="">

docs/arch.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ The openEO API defines a language how clients communicate to back-ends in order
1111
7. The openEO API may define *profiles* in order to group specific functionality.
1212

1313
![Architecture - openEO API shown in dark blue](img/arch.png)
14-
*Figure: Architecture - openEO API shown in dark blue*
14+
*Figure: Architecture*
1515

1616
# Microservices
1717

1818
To simplify and structure the development, the API is divided into a few microservices.
1919

20-
| Microservice | Description |
21-
| ----------------------------- | ------------------------------------------------------------ |
20+
| Microservice | Description |
21+
| ----------------------------- | ----------- |
2222
| Capabilities | This microservice reports on the capabilities of the back-end, i.e. which API endpoints are implemented, which authentication methods are supported, and whether and how UDFs can be executed at the back-end. |
23-
| EO Data Discovery | Describes which datasets and image collections are available at the back-end. |
23+
| EO Data Discovery | Describes which collections are available at the back-end. |
2424
| Process Discovery | Provides services to find out which processes a back-end provides, i.e., what users can do with the available data. |
2525
| UDF | Discovery and execution of user-defined functions. |
26-
| Job Management | Organizes and manages jobs that run processes on back-ends. |
26+
| Batch Job Management | Organizes and manages batch jobs that run processes on back-ends. |
2727
| File Management | Organizes and manages user-uploaded files. |
28-
| Process Graph Management | Organizes and manages user-defined process graphs. |
28+
| Process Graph Management | Organizes and manages user-defined process graphs. |
2929
| Secondary Services Management | External web services to access data and job results such as a OGC WMTS service. |
3030
| Account Management | User management, accounting and authentication. |

0 commit comments

Comments
 (0)