Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
dd7428d
Update changelog date for 1.2.0
m-mohr May 25, 2023
2396ac1
Fix that file format parameters show datacube and process parameter s…
m-mohr Jul 7, 2023
814c386
Clarifications in extensions
m-mohr Jul 12, 2023
9555433
`PATCH /services/{service_id}` and `PATCH /jobs/{job_id}`: Explicitly…
m-mohr Jul 14, 2023
cecc3f4
Minor updates to wording and tooling
m-mohr Oct 11, 2023
e40ad4a
Enable tests for commercial data extension
m-mohr Oct 11, 2023
476b78a
First draft
m-mohr Oct 11, 2023
9eb872e
Add title and description to workspaces, removed updating the quota
m-mohr Dec 1, 2023
829bc79
Remove user collections
m-mohr Dec 8, 2023
82102c3
Add missing conformance class for STAC API Core to example
m-mohr Jan 17, 2024
6ea99c3
Clarified for log levels which default values apply
m-mohr Jan 17, 2024
7d40f9d
Editorial changes based on OGC review (#525)
m-mohr Feb 8, 2024
bd54688
Fix typo in ProcessGraphComplexity error message (#526)
soxofaan Feb 8, 2024
e669dbe
Minor "ProcessInvalid" error typo fix (#535)
soxofaan Jun 10, 2024
b70b43c
Fix CI
m-mohr Jun 13, 2024
13dc6bb
Document additional relation types for process metadata #531 (#536)
m-mohr Jun 14, 2024
caef6e4
Add Remote UDP extension #515 (#538)
m-mohr Jul 1, 2024
777fa7c
Rename Remote UDP extension #540
m-mohr Jul 8, 2024
23d47fb
More possibilities for federation extension
m-mohr Aug 28, 2024
5feccf7
Issue #527 Generalize ProcessGraphComplexity error message/descriptio…
soxofaan Sep 3, 2024
7eccf0b
Add workspace_providers endpoint, add intent/type to other endpoints
m-mohr Sep 9, 2024
038ef4c
Merge remote-tracking branch 'origin/draft' into workspaces
m-mohr Sep 9, 2024
68fa258
Merge pull request #518 from Open-EO/workspaces
m-mohr Oct 21, 2024
162952e
Fix field name in OpenAPI document for Workspace extension
m-mohr Oct 21, 2024
16f4c27
Add openEO processes version #517 (#549)
m-mohr Nov 20, 2024
8393536
backend -> back-end
m-mohr Dec 1, 2024
29318ff
Update CI
m-mohr Dec 1, 2024
c4da5e1
Consortium -> Project Steering Committee
m-mohr Dec 1, 2024
5a8ce51
Fix CORS link
m-mohr Dec 1, 2024
7833f93
Review comments by Scott Simmons
m-mohr Dec 11, 2024
0f81fd8
Clarified the behaviour of `federation:backends` for `POST /validatio…
m-mohr Dec 17, 2024
d5ba280
doc: use AWS vocabulary in AWS example (#554)
pvbouwel Dec 18, 2024
4250e31
Issue #508 Clarify updating expiration of signed URL (#516)
soxofaan Dec 18, 2024
b35c032
Add "OpenEO-Identifier" header to synchronous processing response (#533)
soxofaan Jan 13, 2025
642f4d6
Fixup changelog on `level` property in sync processing request/respon…
soxofaan Feb 3, 2025
e4f607a
Processing Parameters Extension #276 #545 (#471)
m-mohr Feb 6, 2025
5d356f7
Add additional batch job timestamps (#556)
m-mohr Feb 14, 2025
f7afd49
Issue #507: clarify that "canonical" job result link should include q…
soxofaan Feb 14, 2025
556d9cb
Federation extension: nullable last_successful_check (#560)
soxofaan Mar 19, 2025
da9bf27
Update README.md
m-mohr Apr 10, 2025
18d8882
Clarify federation extension fields (#564)
m-mohr Jul 1, 2025
85a0e9a
Federation extension: What means "successfully validated"? #563
m-mohr Jul 1, 2025
056e31c
Add openapi.yaml to versioned folders in gh-pages #551
m-mohr Aug 22, 2025
96609f0
`GET /udf_runtimes`: Requires at least one UDF runtime to be provided…
m-mohr Aug 29, 2025
2f931b9
Update STAC references and deprecate v0.9.0 #543 (#569)
m-mohr Aug 29, 2025
7a375e1
Update redocly, simplify building process, deploy all extensions
m-mohr Sep 8, 2025
5c8e12b
`GET /credentials/oidc`: Added `authorization_parameters` property to…
m-mohr Sep 11, 2025
8b63b58
Added a status diagram that explains the status changes of batch jobs…
m-mohr Sep 18, 2025
a2a80cb
Added `stacktrace` to log entries, e.g. for `GET /jobs/{job_id}/logs`…
m-mohr Oct 3, 2025
6a62ff8
Clarifies the terms "end"/"result" nodes and "root"/"child" process g…
m-mohr Oct 6, 2025
7483918
Add web-editor relation type #577 (#578)
m-mohr Oct 21, 2025
5f6aab6
Migrate from openEO-specific tokens to JWT #558 (#567)
m-mohr Oct 28, 2025
388231c
v1.3.0 release + extensions
m-mohr Jan 7, 2026
a2efa34
Improve wording #582
m-mohr Jan 8, 2026
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
18 changes: 9 additions & 9 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Inject env variables
uses: rlespinasse/github-slug-action@v3.x
- uses: actions/setup-node@v3
uses: rlespinasse/github-slug-action@v5
- uses: actions/setup-node@v5
with:
node-version: 'lts/*'
- uses: actions/checkout@v3
- run: |
npm install
npm run build
- uses: actions/checkout@v5
- run: npm install
- run: npm run build
- name: clone gh-pages and clean-up
if: ${{ env.GITHUB_REF_SLUG == 'master' }}
run: |
Expand All @@ -29,11 +28,12 @@ jobs:
if: ${{ env.GITHUB_REF_SLUG != 'master' }}
run: mkdir gh-pages
- run: |
cp redoc.html gh-pages/index.html
cp *.html gh-pages/
cp errors.json gh-pages/errors.json
cp openapi.yaml gh-pages/openapi.yaml
cp -rv assets/. gh-pages/assets/
- name: deploy to root (master)
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
if: ${{ env.GITHUB_REF_SLUG == 'master' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -42,7 +42,7 @@ jobs:
user_name: 'openEO CI'
user_email: [email protected]
- name: deploy to ${{ env.GITHUB_REF_SLUG }}
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
if: ${{ env.GITHUB_REF_SLUG != 'master' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
- uses: actions/setup-node@v5
with:
node-version: 'lts/*'
- uses: actions/checkout@v3
- name: Run tests
run: |
npm install
npm test
- uses: actions/checkout@v5
- run: npm install
- run: npm test
11 changes: 5 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
__pycache__/
package-lock.json
node_modules/
/redoc.html
.vscode
.idea
package-lock.json
/node_modules/
/*.html
.vscode
.idea
8 changes: 8 additions & 0 deletions .redocly.lint-ignore.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
openapi.yaml:
no-required-schema-properties-undefined:
- '#/components/schemas/dimension_spatial_horizontal/allOf/1/required/0'
- '#/components/schemas/dimension_spatial_vertical/allOf/1/anyOf/0/required/0'
- '#/components/schemas/dimension_spatial_vertical/allOf/1/anyOf/1/required/0'
- '#/paths/~1jobs~1{job_id}~1estimate/get/responses/200/content/application~1json/schema/anyOf/0/required/0'
- '#/paths/~1jobs~1{job_id}~1estimate/get/responses/200/content/application~1json/schema/anyOf/1/required/0'
- '#/paths/~1jobs~1{job_id}~1estimate/get/responses/200/content/application~1json/schema/anyOf/2/required/0'
16 changes: 16 additions & 0 deletions .redocly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
extends:
- recommended

openapi:
expandResponses: "200,201,202,203,204"
pathInMiddlePanel: true

apis:
core:
root: ./openapi.yaml
commercial-data:
root: ./extensions/commercial-data/openapi.yaml
processing-parameters:
root: ./extensions/processing-parameters/openapi.yaml
workspaces:
root: ./extensions/workspaces/openapi.yaml
1 change: 1 addition & 0 deletions .spectral.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ rules:
tag-description: true
oas3-parameter-description: true
oas3-unused-component: false # Broken: https://github.com/stoplightio/spectral/issues/1271
array-items: false
operation-summary-formatted:
description: Operation `summary` should start with upper case and not end with a dot.
given: '$.paths.*[?( @property === ''get'' || @property === ''put'' || @property === ''post'' || @property === ''delete'' || @property === ''options'' || @property === ''head'' || @property === ''patch'' || @property === ''trace'' )]'
Expand Down
67 changes: 61 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,69 @@ 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 / Draft
## [Unreleased] / Draft

## [1.2.0] - 2021-05-31
### Added

### Deprecated

### Changed

### Fixed

## [1.3.0] - 2026-02-02

### Added

- **New extensions:**
- [Remote Process Definition Extension](./extensions/remote-process-definition/README.md)
- [Processing Parameters Extension](./extensions/processing-parameters/README.md)
- [Workspaces Extension](./extensions/workspaces/README.md)
- `GET /`: New relation type `web-editor` [#577](https://github.com/Open-EO/openeo-api/issues/577)
- `GET /credentials/oidc`: Added `authorization_parameters` property to enforce specific parameters for the authorization endpoint [#534](https://github.com/Open-EO/openeo-api/issues/534)
- `POST /result`: Added response header "OpenEO-Identifier" to expose an identifier associated with a synchronous processing request.
- Added `stacktrace` to log entries (e.g. for `GET /jobs/{job_id}/logs`) [#512](https://github.com/Open-EO/openeo-api/issues/512)
- Added `version` property to `GET /processes` [#517](https://github.com/Open-EO/openeo-api/issues/517)
- Added `queued`, `started` and `unpublished` to the batch job metadata and the corresponding STAC results [#542](https://github.com/Open-EO/openeo-api/issues/542)
- Added a status diagram that explains the status changes of batch jobs [#436](https://github.com/Open-EO/openeo-api/issues/436)
- Added all the batch job timestamps (including the new timestamps above) to the Collection type of batch job results
- Support for standard JSON Web Tokens (JWT) being used as Bearer tokens [#558](https://github.com/Open-EO/openeo-api/issues/558)

### Deprecated

- Deprecated the openEO-specific Bearer token format (authentication mechanism/provider id/access token) [#558](https://github.com/Open-EO/openeo-api/issues/558)
- STAC 0.9.x

### Changed

- Updated Federation Extension to v0.2.0
- Migrate from openEO-specific tokens to JWT, i.e. deprecating the openEO-specific format in favor of JWT [#558](https://github.com/Open-EO/openeo-api/issues/558)
- `GET /`: Requires the fields `type` and `conformsTo`
- `GET /udf_runtimes`: Requires at least one UDF runtime to be provided. [#511](https://github.com/Open-EO/openeo-api/issues/511)

### Fixed

- `GET /conformance`: Added missing security definitions
- `GET /file_formats`: Base parameter on top of normal JSON Schema, not Process JSON Schema
- `PATCH /services/{service_id}` and `PATCH /jobs/{job_id}`: Explicitly allow updating back-end specific properties (as in `POST`)
- `GET /services/{service_id}` and `GET /jobs/{job_id}`: Explicitly allow listing back-end specific properties (as provided in `POST`)
- `GET /jobs/{job_id}/results`: Clarify that signed URLs (used as "canonical" link) should be regenerated each time.
- `GET /jobs/{job_id}/results`: Clarify that "canonical" job result link should include/encode the original query parameters
- Clarified for log levels which default values apply
- Clarified how the relation types `license`, `version-history` and `author` can be used to enrich the process metadata. [#531](https://github.com/Open-EO/openeo-api/issues/531)
- Clarified the behaviour of `federation:backends` for `POST /validation`
- Clarified the meaning of `expires` in batch job results
- Clarified that `last_successful_check` (from Federation Extension) can be null.
- Clarified the relation between result and end nodes, the usage of the result flag, and the relation between the outermost ("root") and child process graphs [#547](https://github.com/Open-EO/openeo-api/issues/547)
- Fixed various OpenAPI issues reported by redocly lint

## [1.2.0] - 2021-05-25

### Added

- **New extensions:**
- [Commercial Data Extension](./extensions/commercial-data/README.md)
- [Federation Extension](./extensions/federation/README.md)
- [Commercial Data Extension](./extensions/commercial-data/README.md)
- [Federation Extension](./extensions/federation/README.md)
- `GET /`: New Relation types: [#404](https://github.com/Open-EO/openeo-api/issues/404)
- `create-form` to link to the registration page
- `recovery-form` to link to the credentials recovery page.
Expand All @@ -24,9 +78,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 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)
- Added metadata field `openeo:status` to indicate the job status (and whether the result is complete or not).
- 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)
- `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)
- `GET /jobs/{job_id}/logs`, `GET /services/{service_id}/logs` and `POST /result`: 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)
- 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)
- `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)
- `GET /jobs/{job_id}/logs`, `GET /services/{service_id}/logs`: 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)
- Recommendation to add media types and titles to links for a better user experience.
- 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)
- Recommendation for UDF runtime names. [#409](https://github.com/Open-EO/openeo-api/issues/409)
Expand Down Expand Up @@ -431,6 +485,7 @@ Initial version.


[Unreleased]: <https://github.com/Open-EO/openeo-api/compare/master...dev>
[1.3.0]: <https://github.com/Open-EO/openeo-api/compare/1.2.0...1.3.0>
[1.2.0]: <https://github.com/Open-EO/openeo-api/compare/1.1.0...1.2.0>
[1.1.0]: <https://github.com/Open-EO/openeo-api/compare/1.0.1...1.1.0>
[1.0.1]: <https://github.com/Open-EO/openeo-api/compare/1.0.0...1.0.1>
Expand Down
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ openEO develops an open API to connect R, Python and JavaScript clients to big E

## Versions / Branches

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.
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.3.0** of the specification. The [draft branch](https://github.com/Open-EO/openeo-api/tree/draft) is where active development takes place.

| Version / Branch | Status | Description |
| --------------------------------------------------------- | ----------- | ----------- |
| [draft](https://api.openeo.org/draft) | planned | *Unstable* - Next version. |
| [**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). |
| [**1.3.0**](https://api.openeo.org) | **current** | Clarifications, Remote Process Definition and Processing Parameters extensions, new token format, batch job improvements, etc. [Changelog](CHANGELOG.md#130---2026-02-02). |
| [1.2.0](https://api.openeo.org/1.2.0) | legacy | Clarifications, Commercial Data and Federation extensions, vector data cubes, STAC (API) updates, more link relation types, improved batch job results and logs. [Changelog](CHANGELOG.md#120---2023-05-31). |
| [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). |
| [1.0.1](https://api.openeo.org/1.0.1) | legacy | Clarifications, bugfixes and CORS improvements. [Changelog](CHANGELOG.md#101---2020-12-07). |
| [1.0.0](https://api.openeo.org/1.0.0) | legacy | First stable version of openEO. [Changelog](CHANGELOG.md#100---2020-07-17). |
Expand All @@ -29,10 +30,13 @@ See also the [changelog](CHANGELOG.md) and the [milestones](https://github.com/O

## Extensions

| Name | Version | Stability | Description |
| ---------------------------------------------- | ------- | ------------ | ----------- |
| [Commercial Data](extensions/commercial-data/) | 0.1.0 | experimental | Provides an interface for discovering, ordering and using commercial data. |
| [Federation](extensions/federation/) | 0.1.0 | experimental | Covers federation aspects, i.e. where multiple back-ends are exposed as a single API. |
| Name | Version | Stability | Description |
| ------------------------------------------------------------------ | ------- | ------------ | ----------- |
| [Commercial Data](extensions/commercial-data/) | 0.1.0 | experimental | Provides an interface for discovering, ordering and using commercial data. |
| [Federation](extensions/federation/) | 0.2.0 | experimental | Covers federation aspects, i.e. where multiple back-ends are exposed as a single API. |
| [Processing Parameters](extensions/processing-parameters/) | 0.1.0 | experimental | Explore and handle additional processing parameters that a back-end can offer for the processing modes (sync. processing, batch jobs, web services). |
| [Remote Process Definition](extensions/remote-process-definition/) | 0.1.0 | experimental | Load user-defined processes that are hosted externally through the process namespace into process graphs. |
| [Workspaces](extensions/workspaces/) | 0.1.0 | experimental | Connect external file storage systems (e.g. cloud buckets) to openEO back-end implementations. |

## Repository

Expand All @@ -43,14 +47,14 @@ This repository contains a set of files formally describing the openEO API, each
* 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.
* The [extensions](extensions/) folder contains extensions to the openEO API.

# Development
## Development

The `draft` branch is the latest version and is the one to create Pull Requests against.

For development some tools can be used:

1. Install [node and npm](https://nodejs.org) - should run with any recent version
2. Run `npm install` in this folder to install the dependencies
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.
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` and `redocly` in the background.
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.
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.
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 `index.html` in this folder and additional files for the extensions.
Binary file added assets/status-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions errors.json
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@
]
},
"ProcessInvalid": {
"description": "The process given is invalid, which ususlly means that the process metadata is invalid.",
"description": "The given process definition is invalid, which usually means that the process metadata is invalid.",
"message": "Invalid process specified.",
"http": 400,
"tags": [
Expand Down Expand Up @@ -241,8 +241,8 @@
]
},
"ProcessGraphComplexity": {
"description": "The process graph is too complex for synchronous processing and will likely time out. Please use a batch job instead.",
"message": "The process is too complex for for synchronous processing. Please use a batch job instead.",
"description": "The process graph is computationally too demanding for synchronous processing and will likely time out. Please use a batch job instead.",
"message": "The process graph is too demanding for synchronous processing. Please use a batch job instead.",
"http": 400,
"tags": [
"Data Processing"
Expand Down
Loading