All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.2.0 - 2021-05-31
- New extensions:
GET /
: New Relation types: #404create-form
to link to the registration pagerecovery-form
to link to the credentials recovery page.
GET /file_formats
: Addpointcloud
to thegis_data_types
. #475GET /me
: New Relation typesalternate
andrelated
for user-specific external pages. #404GET /credentials/oidc
: Allowauthorization_code
andurn:ietf:params:oauth:grant-type:device_code
(both without PKCE) as grants fordefault_clients
. #410GET /jobs
andGET /jobs/{job_id}
: Added a links property that can for example link to results and logs. #453GET /jobs/{job_id}/results
:- Recommendation to add a link with relation type
canonical
which points to a signed URL with the same content as the response. #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 propertyopeneo:status
to the metadata. #430
- Recommendation to add a link with relation type
GET /jobs/{job_id}/logs
,GET /services/{service_id}/logs
: Addedlevel
parameter to requests to set the minimum log level returned by the response. #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 GET /jobs/{job_id}/logs
,GET /services/{service_id}/logs
andPOST /result
: Addedlevel
property in responses to reflect the minimum log level that may appear in the response. #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 - Recommendation for UDF runtime names. #409
- Processes: Added
dimensions
schema for subtypedatacube
- Collections: Added
geometry
dimension type tocube:dimensions
- New endpoint for metadata filters (queryables):
/collections/{collection_id}/queryables
. Also adds a new rel type to the collection links. #396
- Updated STAC specification examples and references to v1.0.0, please see the STAC changelog 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
- Minimum value for
costs
andbudget
is 0. GET /jobs/{job_id}/estimate
: If a batch job can't be estimated reliably, aEstimateComplexity
error should be returned. #443- The
/conformance
endpoint is now generally used for OGC APIs, STAC API and openEO.conformsTo
is also exposed inGET /
for STAC APIs. The openEO API and all extensions got individual conformance classes. #186
- Explicitly mention the use of HTTP content negotiation
- Clarify that the default charset is UTF-8 #462
- Fixed inconsistencies in errors.json: removed
ProcessGraphIdDoesntMatch
, clarifiedProcessGraphMissing
, addedProcessInvalid
andProcessGraphInvalid
. #394, #395, #401 - Fixed the default value for the version number in the API url (
v1.0
->v1
) and improved the description for API versioning. #393 - Fixed the Collection example to use
gsd
instead ofeo:gsd
. #399 - Clarify use of
user_id
. #404 - 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
- Clarify the fields
plan
(for processing requests) andbilling_plan
(inGET /
andGET /me
). #425 #426 - Clarified ambiguous batch job status changes.
- Reflect that the
debug
process has been renamed toinspect
. - Clarified uniqueness constraints for identifiers. #449 #454
- Clarified schematically the applicability of JSON Schema extensions (
parameters
,returns
,dimensions
) and their relation to the subtypes GET /
: Removed the superfluous default value forcurrency
. #423GET /credentials/oidc
: Clarify that clients may add additional scopesGET /me
: Clarify the behavior of the fieldbudget
.GET /jobs/{job_id}/logs
,GET /services/{service_id}/logs
andPOST /result
: Clarified the formatting of themessage
property. #455GET /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
andGET /services/{service_id}
: Clarify thatenabled
is required by removing the default value. #473- Several appearances of
nullable
were clarified according to the lint report by Spectral - Clarify how the well-known document works #460
- Clarify handling of JSON Schema versions
1.1.0 - 2021-05-17
GET /processes
andGET
/PUT
for/process_graphs/{process_graph_id}
: Allow specifying the return values processes receive from child processes. #350- Recommendation that
POST /result
returns atar
file if the result consists of multiple files. #349 GET /credentials/oidc
can provide a set of default client ids for OpenID Connect. #366experimental
anddeprecated
flags added for file formats, service types, udf runtimes, udf runtime versions, udf runtime libraries and all related parameters and schemas. #354GET /jobs/{job_id}
andGET /services/{service_id}
:usage
property added for usage metrics. #370GET /jobs/{job_id}/logs
andGET /services/{service_id}/logs
:- Added error
ResultLinkExpired
. #379 GET /me
: A default plan per user can be specified. #375
- API doesn't discourage usage of
multipleOf
in JSON Schemas any longer. GET /jobs/{job_id}/results
supports to return a STAC Collection. #343- Updated STAC schemas to better support versions 1.x.x.
- The first extent in a Collection is always the overall extent, followed by more specific extents. #369
- Clarified how process exceptions should be used. #352
- Clarified that job results schould be stored as valid STAC catalogs. #363
- Clarified that job results require the property
datetime
and allow for additional properties. #362 - Clarified that billing plans, service names and file formats must be accepted case-insensitive. #371
- Clarified that the first provider listed at
GET /credentials/oidc
is the default provider for OpenID Connect. - 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 - Fixed casing of potential endpoints
GET /collections/{collection_id}/items
andGET /collections/{collection_id}/items/{feature_id}
. - Clarified allowed characters in the
path
for uploaded user files.
1.0.1 - 2020-12-07
GET /collections
andGET /collections/{collection_id}
: Units for STAC dimensions incube:dimensions
should be compliant to UDUNITS-2 units (singular) whenever available.GET /file_formats
: It is recommended to at least specify one of the data types ingis_data_types
. #325
- Cross-Origin Resource Sharing (CORS):
GET /
: Missing optionOPTIONS
added to allowedmethods
for theendpoints
. #324- For
PATCH
requests: Clarified that no default values apply (forbudget
,enabled
andplan
). Data is only changed on the back-end if new data is explicitly specified by the client. - For
POST
requests with aplan
property: Clarify that the default value isnull
. GET /jobs/{job_id}/results
: Clarified the use of thetype
Feature
in the GeoJSON result response. #327- Add missing
{namespace}
placeholder toProcessUnsupported
error message. #328 - Fixed JSON Schema links to point to draft-07 instead of draft/2019-09.
GET /jobs/{job_id}/estimate
: Enforce in the response schema that "at least one ofcosts
,duration
orsize
MUST be provided."
1.0.0 - 2020-07-17
GET /me
: Added optionalname
property to better separate an internal user id from a displayable user name. Adopted description ofuser_id
accordingly.GET /udf_runtimes
:- Added optional
title
property for UDF runtimes. #266 - Added required
type
property for UDF runtimes to support better code generation.
- Added optional
GET /service_types
: Added optionaltitle
anddescription
properties for service types. #266GET /file_formats
: Added optionaldescription
property for file formats. #266GET /collections/{collection_id}
andGET /processes
: Mention of linkrel
typeexample
to refer to examples. #285GET /collections/{collection_id}
: Added optionalassets
property for collection-level assets. This may link to visualizations for example. #211GET /collections
,GET /jobs
,GET /process_graphs
,GET /services
: Allow all non-scalar properties to be part of the response although strongly discouraged.
GET /credentials/oidc
: fieldscopes
is not required anymore, but when specified, it should contain theopenid
scope. #288GET /.well-known/openeo
andGET /
:production
fields default tofalse
instead oftrue
.GET /jobs/{job_id}/logs
andGET /services/{service_id}/logs
:path
property is not required any longer. #320GET /file_formats
:parameters
is now required for each file format. #318GET /service_types
:configuration
andprocess_parameters
are now required for each service. #318GET /service_types
andGET /file_formats
:- Allow full JSON Schema for parameters, instead of a very limited subset.
- Instead of the proprietary property
example
useexamples
from JSON Schema instead.
GET /collections
andGET /collections/{collection_id}
:- Additional dimensions in
cube:dimensions
can only be of typeother
. - The extents
interval
andbbox
can have multiple entries.
- Additional dimensions in
- Allow all STAC versions that are compatible to STAC 0.9.0.
- Process graph nodes have an additional field
namespace
to distinguish predefined and user-defined processes. The default behavior has not changed. #305 - Added
format: commonmark
to all properties supporting CommonMark formatting. errors.json
: The predefined error messages have been reworked. #272, #273- Added
FolderOperationUnsupported
,UnsupportedApiVersion
,PermissionsInsufficient
,ProcessGraphIdDoesntMatch
andPredefinedProcessExists
. - Added variable
reason
to errorFilePathInvalid
andtype
toFileTypeInvalid
andServiceUnsupported
. - Replaced the following error messages. The variables in the messages may have changed, too.
ProcessArgumentUnsupported
->ProcessParameterUnsupported
ProcessArgumentInvalid
->ProcessParameterInvalid
ProcessParameterMissing
andProcessArgumentRequired
->ProcessParameterRequired
ServiceArgumentUnsupported
->ServiceConfigUnsupported
ServiceArgumentInvalid
->ServiceConfigInvalid
ServiceArgumentRequired
->ServiceConfigRequired
- Removed all error messages with tag
Processes
(CRSInvalid
,CoordinateOutOfBounds
) or related to storing file formats (FormatUnsupported
,FormatArgumentUnsupported
,FormatArgumentInvalid
,FormatUnsuitable
) as they are usually defined directly in the process specification asexceptions
.
- Added
GET /processes
: Examples containing process graphs. Use links withrel
typeexample
andtype
set toapplication/json
instead. #285subtype-schemas.json
. It's now published as part of openeo-processes.
/.well-known/openeo
:GET /jobs/{job_id}/results
: Clarified that unlocated results setgeometry
tonull
and omit thebbox
property.GET /jobs/{job_id}/logs
: Clarified that back-ends can log at any stage of the job. #315POST /jobs
andPOST /services
: Clarified definition ofLocation
header inHTTP 201
responses. #269GET /service/{service_id}
: Propertyconfiguration
is required instead of a non-existing property namedparameters
.POST /validation
: Clarify that unresolvable process parameters must not throw. #314- Formally forbid 5 elements in bounding boxes.
- Re-use corresponding schema for header
OpenEO-Identifier
(addspattern
). - Parameters passed to child process graphs are not defined recursively any longer. #268
- Parameters for child process graphs are not specified for return values and service type parameters any longer. #268
- Clarified the expected behavior for process parameters, if a default value is given and the parameter is implicitly set to be required. #303
- Several clarifications and improvements for the documentation.
PUT /process_graphs/{process_graph_id}
to store and replace custom process-graphs. #260GET .../logs
: Reintroduced the missingoffset
parameter.
- For batch jobs (
/jobs
), services (/services
) and sync. processing (/result
) the propertyprocess_graph
got replaced byprocess
. It contains a process graph and optionally all process metadata. #260 GET /process_graphs
: Fieldid
is required for each process.- Several properties in user-defined processes can now be
null
(see also #264):GET /process_graphs
andGET /process_graphs/{process_graph_id}
: Process propertiessummary
,description
,parameters
andreturns
.POST /validation
: Process propertyid
.- Child processes in process graphs (fka callbacks):
id
,summary
,description
,parameters
andreturns
.
POST /process_graphs
andPATCH /process_graphs/{process_graph_id}
. UsePUT /process_graphs/{process_graph_id}
instead. #260
- Added
$id
to JSON Schema file for subtypes. - Fixed invalid EPSG code example.
- Fixed collection example (
sat:cloud_cover
changed toeo:cloud_cover
). - Fixed invalid JSON Schema for process graph validation (used
from_argument
instead offrom_parameter
). - Clarified how version numbers in well-known discovery are compared. #259
- Clarified that back-ends not supporting pagination will return all resources.
- Clarified how
from_parameter
is resolved in case no value is given. - Clarified
GET .../logs
endpoint behaviour. - Clarify difference between STAC specification and STAC API.
- Clarify that a copy of the STAC Item is recommended to be part of the assets in a batch job download.
- Removed outdated error codes from
errors.json
.
Note: The user and developer documentation has been moved to openeo.org.
GET /
:GET /collections
andGET /collections/{collectionId}
:GET /conformance
has been added for OCG API compliance. Back-ends may implement it for compatibility with OGC API clients.POST /result
: May add a link to a log file in the header. #214GET /jobs/{job_id}/logs
andGET /services/{service_id}/logs
: Endpoints that publish logging information. #214GET /files
,GET /jobs
,GET /process_graphs
,GET /services
,GET /collections
,GET /processes
: Addedlimit
parameter for pagination and clarified how to use links for pagination. #103- JSON Schema for the defined schema
subtypes
.
- The concept of callbacks has simply been renamed to process graph. Schema format/subtype
callback
has been renamed toprocess-graph
. #216 - Unsupported endpoints are not forced to return a
FeatureUnsupported
(501) error and can return a simpleNotFound
(404) instead. - If
currency
returned byGET /
isnull
,costs
andbudget
are unsupported.costs
andbudget
fields in various endpoints can be set tonull
(default). - Official support for CommonMark 0.29 instead of CommonMark 0.28. #203
- The parameter
user_id
has been removed from the endpoints to manage user files (/files/{user_id}
). #218 - Schema subtype
band-name
allows common band names, too. Processes#77 - Link property
rel
is required. - OpenAPI string format
url
has been replaced withuri
. - Process graphs:
from_argument
has been renamed tofrom_parameter
.callback
has been renamed toprocess_graph
.from_parameter
can access parameters defined in parent scopes.from_parameter
can be used in the top-level process graph.- Process graph variables (objects with
variable_id
etc.) have been removed.
GET /jobs
,GET /jobs/{job_id}
,GET /services
andGET /services/{service_id}
: Renamed fieldsubmitted
tocreated
for consistency with STAC job results. Also renamed the corresponding value in the fieldstatus
for batch jobs.GET /
: Propertylinks
is required.GET /service_types
:variables
has been renamed toprocess_parameters
and has a different schema now. #161GET /service_types
,POST /services
,GET /services/{service_id}
,PATCH /services/{service_id}
:parameter
has been renamed toconfiguration
to not overlap withprocess_parameters
.GET /processes
:- Default values are now specified on the parameter-level, not in the JSON schemas.
- Multiple data types in parameters or return values are supported as arrays. Using
anyOf
is discouraged. - Parameters are defined as array.
parameter_order
is therefore removed and the name is part of the parameter object. #239 - Process graph (callback) parameters have a new, more advanced schema, allowing to define more aspects of the process graph parameters. #239
- Return values don't require a description any longer.
required
was replaced withoptional
with inverted behavior.
POST /process_graphs
,GET /process_graphs/{process_graph_id}
,PATCH /process_graphs/{process_graph_id}
,POST /validation
: Request and response bodies have been completely reworked to follow the same schema asGET /processes
. Each process graph is now basically a process a user can use in other process graphs.GET /collections
andGET /collections/{collectionId}
: Updated STAC to version 0.9.0. See the STAC Changelog for more details. #247, #204.GET /credentials/oidc
: Changed response to support multiple OpenID Connect identity providers (#201) and clarified workflow overall.- Bearer token are built from the authentication method, an optional provider id and the token itself. #219
GET /udf_runtimes
:description
fields don't allownull
values any longer.GET /output_formats
renamed toGET /file_formats
to allow listing input file formats. #215- The structure of the response has changed. The former response body for the output formats is now available in the property
output
. - The input file formats are now available in the property
input
with the same schema as for output formats. - Additionally, each format can have a
title
.
- The structure of the response has changed. The former response body for the output formats is now available in the property
GET /jobs/{job_id}/results
:- Response body for status code 200 has changed to be a valid STAC Item, allows content type
application/geo+json
. - Response body for status code 424 has been extended.
- Response body for status code 200 has changed to be a valid STAC Item, allows content type
- The processes should not use the JSON Schema keyword
format
any longer. Instead use the custom keywordsubtype
. #233 - PROJ definitions are deprecated in favor of EPSG codes and WKT2. #58
- Process graph variables. Use Parameter References instead.
GET /processes
:media_type
removed from parameters and return values. UsecontentMediaType
in the JSON Schema instead.GET /job/{job_id}
: Removed propertyerror
. Request information fromGET /job/{job_id}/logs
instead.GET /job/{job_id}/results
:- Metalink XML encoding has been removed. #205
Expires
header has been removed, useexpires
property in the response body instead.
GET /credentials/basic
doesn't return auser_id
. Instead request it fromGET /me
.GET /collections/{collectionId}
: Removed optional STAC extensions from the API specification. Inform yourself about useful STAC extensions instead. #176GET /service_types
doesn't supportattributes
any longer.
- Service parameters and attributes in
GET /service_types
and output format parameters inGET /file_formats
(previouslyGET /output_formats
) now have atype
, which was previously only mentioned in examples. GET /processes
: Parametersarguments
andprocess_graph
can't be used together in process examples.GET ./well-known/openeo
: Clarified how clients and back-ends should implement well-known discovery. #202
0.4.2 - 2019-06-11
- Basic JSON Schema for process graph validation.
- Updated the process catalog, see the separate changelog.
- Disallowed CommonMark in descriptions of process graph variables and process graph nodes.
- Improved documentation with several clarifications, better examples and more.
- SAR Bands had a required but undefined property. #187
- Clarified how file paths in the URL must be encoded for file handling.
- OpenAPI
nullable
issues:- Removed
null
from SAR Bandsenum
for OpenAPI code generator, is handled bynullable
. OpenAPI-Specification#1900 nullable
doesn't combine well withanyOf
,allOf
andoneOf
, therefore placednullable
also in one of the sub-schemas. OpenAPI-Specification#1368
- Removed
0.4.1 - 2019-05-29
- Updated the process catalog, see the separate changelog.
- The property
sar:absolute_orbit
inGET /collections/{collection_id}
has been removed. - Sending a Bearer token to
GET /credentials/oidc
is not allowed any longer.
- Improved and clarified the documentation and descriptions.
GET /collections/{collection_id}
:properties
inGET /collections/{collection_id}
doesn't require any of the integrated STAC extensions any longer.- The property
sci:publications
inGET /collections/{collection_id}
was ported over incorrectly from STAC. The data type has been changed from object to array.
GET /jobs/{job_id}/results
was expected to return HTTP status code 424 with an error message, but it was specified in/jobs/{job_id}/estimate
instead. The definition was moved. #177path
inGET
andPUT
/files/{user_id}
is required again.- Fixed several issues in the client development guidelines.
0.4.0 - 2019-03-07
GET /jobs/{job_id}/estimate
can return the estimated required storage capacity. #122GET /jobs/{job_id}
has two new properties:GET /.well-known/openeo
allows clients to choose between versions. #148GET /
(Capabilities):GET /processes
(Process discovery):- Processes can be categorizes with the
category
property. - Parameters can be ordered with the
parameter_order
property instead of having a random order. - Support for references to other processes in descriptions.
- Processes and parameters can be declared to be
experimental
.
- Processes can be categorizes with the
GET /output_formats
andGET /service_types
can now provide links per entry.GET /udf_runtimes
provide a list of UDF runtime environments. #87GET /service_types
allows to specifyvariables
that can be used in process graphs. #172
- Completely new version of the processes.
- Changed process graph to a flexible graph-like structure, which also allows callbacks. #160
- Updated
GET /collections
andGET /collections/{collection_id}
to follow STAC v0.6.2. #158, #173 - The
process_graph_id
of stored process graphs, theservice_id
of services and thejob_id
of jobs has changed toid
in responses. #130 - The
status
property for jobs is now required. POST /preview
renamed toPOST /result
. #162GET /
(Capabilities):/files/{user_id}/{path}
File management:GET /processes
(Process discovery):POST /validation
(Process graph validation):- Behavior for
DELETE /jobs/{job_id}/results
andPOST /jobs/{job_id}/results
specified depending on the job status. Clarified status changes in general. #142 - Improved client development guidelines. #124, #138
- Numeric openEO error codes. Replaced in responses with textual error codes. #139
- Query parameters to replace process graph variables in
GET /process_graphs/{process_graph_id}
. #147 min_parameters
anddependencies
for parameters in process descriptions returned byGET /processes
.- Replaced output format properties in favor of a
save_result
process, which has resulted in in the removal of:
- Added missing
Access-Control-Expose-Headers
header to required CORS headers. - Some endpoints didn't include authentication information.
GET /jobs/{job_id}/estimate
: Propertydownloads_included
had a wrong default value.
createProcessGraph
method to client development guidelines.- JSON file with all specified errors.
- Textual error codes for each specified error.
- Allow setting a plan for
POST /preview
- Default billing plan in
GET /
. #141 - Job ID in JSON response for
GET /jobs/{job_id}/results
.
- Several optional fields such as
output
,title
anddescription
are now nullable instead of requiring to omit them. - The output format is not required in
POST /preview
any more and thus allows falling back to the default. - The
output_format
parameter increateJob
andexecute
in client development guidelines. - The
extent
parameters infilter_bbox
andfilter_daterange
are formally required now.
- Numeric openEO error codes are soon to be replaced with textual error codes.
eo:resolution
in collection bands is a duplicate ofeo:gsd
. Useeo:gsd
instead.
- Fixed a wrong definition of the header
OpenEO-Costs
inPOST /preview
. - Fixed typo in method
authenticateOIDC
in client development guidelines. - Fixed the definition of spatial extents by swapping north and south.
- Replaced the outdated occurrences of
srs
withcrs
in spatial extents. - Added missing required descriptions to process definitions.
- Added missing error messages.
- Fixed unclear specification for arrays used as process graph arguments.
- Fixed inconsist schema of openEO error responses: Field is now consistently named
message
instead ofdescription
.
0.3.0 - 2018-09-21
First version after proof of concept tackling many major issues. No changelog available.
0.0.2 - 2018-03-22
Version for proof of concept. No changelog available.
0.0.1 - 2018-02-07
Initial version.