Skip to content

Commit

Permalink
Merge branch 'draft' into processing-parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
m-mohr committed Dec 18, 2024
2 parents e3265f7 + 7833f93 commit da3ca56
Show file tree
Hide file tree
Showing 18 changed files with 1,433 additions and 493 deletions.
13 changes: 7 additions & 6 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Inject env variables
uses: rlespinasse/github-slug-action@v3.x
- uses: actions/setup-node@v1
uses: rlespinasse/github-slug-action@v5
- uses: actions/setup-node@v4
with:
node-version: '16'
- uses: actions/checkout@v2
node-version: 'lts/*'
- uses: actions/checkout@v4
- run: |
npm install
npm run build
Expand All @@ -33,15 +33,16 @@ jobs:
cp errors.json gh-pages/errors.json
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 }}
keep_files: true
publish_dir: gh-pages
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
18 changes: 14 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,21 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v1
- uses: actions/setup-node@v4
with:
node-version: '16'
- uses: actions/checkout@v2
- name: Run tests
node-version: 'lts/*'
- uses: actions/checkout@v4
- name: Run core tests
run: |
npm install
npm test
- name: Run commercial-data tests
run: |
cd extensions/commercial-data
npm install
npm test
- name: Run workspaces tests
run: |
cd extensions/workspaces
npm install
npm test
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
35 changes: 31 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- **New extensions:**
- [Commercial Data Extension](./extensions/commercial-data/README.md)
- [Federation Extension](./extensions/federation/README.md)
- [Remote Process Definition Extension](./extensions/remote-process-definition/README.md)
- Added `version` property to `GET /processes` [#517](https://github.com/Open-EO/openeo-api/issues/517)

### Fixed

- `GET /file_formats`: Base paramater 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`)
- 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)

## [1.2.0] - 2021-05-25

### Added

- **New extensions:**
- [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.
- `GET /file_formats`: Add `pointcloud` to the `gis_data_types`. [#475](https://github.com/Open-EO/openeo-api/issues/475)
- `GET /me`: New Relation types `alternate` and `related` for user-specific external pages. [#404](https://github.com/Open-EO/openeo-api/issues/404)
- `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)
- Added `GET /processing_options` to define the parameters that can be submitted when creating jobs or services. [#276](https://github.com/Open-EO/openeo-api/issues/276)
Expand All @@ -22,19 +39,24 @@ 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` and `POST /result`: Added `log_level` property in responses to reflect the minimum log level that has been chosen by the user. [#329](https://github.com/Open-EO/openeo-api/issues/329)
- `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)
- 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)
- 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)
- Processes: Added `dimensions` schema for subtype `datacube`
- Collections: Added `geometry` dimension type to `cube:dimensions`
- 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)

### Changed

- Updated STAC specification examples and references to v1.0.0.
- 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.
- `cube:dimensions`: `reference_system` is allowed to be PROJJSON, too.
- 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)
- Minimum value for `costs` and `budget` is 0.
- `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)
- 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)

### Fixed

Expand All @@ -47,15 +69,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Clarify that the relation type `version-history` should include `/.well-known/openeo` in the URL.
- 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)
- 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)
- Clarified ambiguous batch job status changes.
- Reflect that the `debug` process has been renamed to `inspect`.
- 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)
- Clarified schematically the applicability of JSON Schema extensions (`parameters`, `returns`, `dimensions`) and their relation to the subtypes
- `GET /`: Removed the superfluous default value for `currency`. [#423](https://github.com/Open-EO/openeo-api/issues/423)
- `GET /credentials/oidc`: Clarify that clients may add additional scopes
- `GET /me`: Clarify the behavior of the field `budget`.
- `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)
- `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.
- `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)
- Several appearances of `nullable` were clarified according to the lint report by Spectral
- Clarify how the well-known document works [#460](https://github.com/Open-EO/openeo-api/issues/460)
- Clarify handling of JSON Schema versions

## [1.1.0] - 2021-05-17

Expand Down Expand Up @@ -420,6 +446,7 @@ Initial version.


[Unreleased]: <https://github.com/Open-EO/openeo-api/compare/master...dev>
[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>
[1.0.0]: <https://github.com/Open-EO/openeo-api/compare/0.4.2...1.0.0>
Expand Down
16 changes: 9 additions & 7 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.1.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.2.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.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). |
| [**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.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). |
| [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). |
Expand All @@ -28,10 +29,11 @@ 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.1.0 | experimental | Covers federation aspects, i.e. where multiple back-ends are exposed as a single API. |
| [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. |

## Repository

Expand All @@ -42,7 +44,7 @@ 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.

Expand Down
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 heavy for synchronous processing and will likely time out. Please use a batch job instead.",
"message": "The process graph is too heavy for synchronous processing. Please use a batch job instead.",
"http": 400,
"tags": [
"Data Processing"
Expand Down
12 changes: 12 additions & 0 deletions extensions/commercial-data/.spectral.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
extends: "spectral:oas"
rules:
contact-properties: true
tag-description: true
oas3-parameter-description: true
oas3-unused-component: true
operation-id-kebab-case:
given: "$..operationId"
then:
function: pattern
functionOptions:
match: ^[a-z][a-z0-9\-]*$
Loading

0 comments on commit da3ca56

Please sign in to comment.