Version 1.4.1
Changed
- removed parameter portfrom OIDCAuthCodeFlow and
OIDCAuthCodeFlowPKCE, because the counterparts in packagehttr2were removed
Version 1.4.0
Added
- Support for the OpenID Connect Client Credentials flow
- compute_result, create_job, update_job, create_service and
update_service have an additional parameter to inject custom properties
into the request (e.g., to set memory or CPU limits)
- Implement the datacube subtype through the new DataCube class (which
RasterCube and VectorCube inherit from now)
Changed
- OpenID Connect scopes can be provided as lists
- changed authentication setup for OIDC to instantiate a workflow
object with a preconfigured Providerclass
Fixed
- describe_collectionand- collection_vieweraccept string IDs again
- fixed issues when creating an Argumentwithout
schema
- replaced is.na()withrlang::is_na()in
several occurrences in the$typeCheck()functions of
argument classes, because is.na on lists and objects returns more than
one result
- fixed Numbervalidation with ArgumentProcessNode
Version 1.3.1
Added
- internal functions to serialize and load the session information
like connection, process collection, etc.
Changed
- changed OIDC provider and default client selection
- automatically selects first OIDC provider withe
default_clientsdefined #142,
- automatically selects a default client by the its id containing
“openeo” at first, otherwise the first default client in the list is
selected #146
 
- argument bounding box tries to extract the EPSG code it EPSGCode was
provided as WKT2
- compute_result now looks for a format in “save_result” if it was not
stated in the call
Fixes
- CollectionId argument now checks if a string pattern is
available
- OutputFormat argument checks the “FileFormat” class separately to
avoid warnings
- fixed an issue where it was not possible to connect to an openEO
back-end with a dedicated link (also for reconnect in the connection
contract)
- fixed warning messages shown on describe_collection()using an object of classCollectionfromlist_collection()#145
- .create_sample_bbox interpretes now correctly a serialized extent
object
- .find_process_by_name is no longer giving a false message when a
process is passed to it
Version 1.3.0
Added
- new vignettes:
- Package Software Architecture
- Process Graph Building Concepts
- Process Graph Building Application
- Developer Implementation Details
 
- added the default openEO processes v1.2.0 as test data to the
package in the RDS file format
(system.file("openeo_processes/openeo_process_1.2.0.rds"))
and added a test case for process parsing
- active_process_list()and- active_process_collection()which refer to the currently
connected back-ends process list as well as the package interpretation
of those process descriptions. See environment variables- process_listand- process_collection
- active_data_collection()to fetch the data collection
of the currently active back-end, which refers to the package variable- data_collection
- vignette about the software and package architecture and design
choices based on API requirements
Changed
- added line breaks if there are multiple validation messages of
ProcessNodes
- describe_process()also works now with- Processand- ProcessNodeobjects
- use the active process list when looking up the description of an
openEO process
- package now depends on R > 3.5.0, because of RDS object
de-/serialization (openEO test processes)
- added a warning and a note for compute_result()if
neither parameter ‘format’ of the function was set nor process
‘save_result’ was used in the process graph
- refresh data collections after separate login as part of #83
- improved disconnection behavior by adding a
disconnect()function and a logout and disconnect on
package unload
- decoupled processes and data collection from the OpenEO
connection
- moved the setup of the RStudio connection observer into a separate
helper function
- naming of the vignettes to achieve an order in the vignette index
entries
Fixes
- variables()function now returns the extracted
variables correctly
- coercion problems from checking with is.na on values with length
> 1 have been fixed by using rlang::is_na #130,
#123
- an issue when calling the JSON serialization of class Process
Removed
- removed utility functions .getProcessCollection()and.find_var_in_stack()which are replaced by theactive_process_collection()function
- functions to call data collection
($getCollectionNames(),$getDataCollection())
from connection as well as the fields
(private$data_collection)
- functions ($getProcessCollection()) and fields
(private$process_collection,$processes) to
store the process list and process collection
Version 1.2.2
Changed
- allowed objects as values for argument BoundingBox where
st_bbox()can be applied
- very minor refinement in argument UdfCode and added test case #132
- now throws a more readable error when the authentication provider is
missing in the wellknown document
Fixes
- OIDC authentication on remote machines prints now correctly URL and
device code after fixes in httr2 package, now version 0.2.2 or higher is
required (@m-mohr,
@flahn, #131, #119)
- remote environments now login with
rlang::is_interactive() == FALSEso that for example
Jupyter environments print the device code URL and the code instead of
trying to open the systems internet browser #128
- capabilities request no longer appends an additional “/” to the
host, which caused problems with some back-ends (@m-mohr #133, #134)
- download_resultscould not interprete a Job object due
to the- length(job) != 1restriction
- added a Job to Process coercion to match the messages instruction,
when printing a Job #115
- during JSON serialization numbers were truncated to a certain amount
of digits. Setting digits=NAduring serialization removes
the default value for the digits #64
- fixed parameter in logout query (req -> .req)
version 1.2.1
Added
- allowed a Process object to be passed to
validate_process
Changed
- not serializing basic Argumentif not required, which
affects mostly the “context” parameter of reducer functions
- skip local validation of Arraytype if there is more
than one sub type allowed
- adapted GeoJSON coordinate order, now urn:ogc:def:crs:OGC::CRS84 is
used as CRS, which means longitude / latitude order
Fixes
- compute_result now correctly swaps the file format from save_result,
if it was already used in the process graph #124
- fixed messages thrown when validating arrays with multiple different
allowed element types
- fixed missing NA / NULL setting in GeoJSON argument
- fixed missing brackets in coercion from Process to Graph
version 1.2.0
Added
- implemented a method for sample data retrieval
(get_sample()), which will modify a process graph by
replacing the original spatial extent of the request with a smaller
subset of 0.0003 degrees extent #94
- added a vignette explaining sample data retrieval
- rendering of classes as HTML widgets using the openEO Vue
components, which can be used in Jupyter Notebook, Rmarkdown, RStudio
and knitr
- implemented the argument type metadata-filterin order
to filter collections based on a list of functions mostly applied inload_collection#102
- implemented an abstract OIDC authentication
- implemented OIDC authentications for the following grant types:
- authorization_code
- authorization_code+pkce
- urn:ietf:params:oauth:grant-type:device_code+pkce
- urn:ietf:params:oauth:grant-type:device_code #116
 
- temporarily added changed code to realize device_code+pkce from the
httr2package until thehttr2package changes
are made available on CRAN
- overloaded function toJSONforProcessandGraph
- processToJSONto easily convert a process to JSON
- processToJSONand- graphToJSONare marked
as deprecated
 
Fixes
- process_viewerfor user defined processes #110
Changed
- compute_result()will set or override existing- save_resultnode entries when parameter- formatis provided #62
- compute_result()will return a- starsobject if the parameter- as_starsis set TRUE #39
- download_results()uses httr2 functions instead of- download.file()#108,
also parameter- jobis allowed to be a ResultList or
AssetList
- timeoutparameter in- logs()is now
optional. If omitted 60s timeout is used for active batch processes and
enabled services #109
- replaced package httrbyhttr2to include
the device_code and PKCE authentication methods
- connectno longer carries the login parameters
separately, but uses- ...to pass on those information
- added ‘kableExtra’ as suggest to render the tables prettier in
knitr
Removed
- login parameter login_typeremoved. type will be
deduced based on the other parameters.
version 1.1.1
Added
- in addition to integer it is now allowed to state text as input for
argument EPSGCodelike EPSG:4326 #99 and
wrote a test case for that
- Started test case for OpenEOClient
- Test case for Booleanargument validation
Fixes
- fixed an issue with token refreshment, where the expiry time was not
set correctly #101
- fixed an issue where the host URL was not recognized and treated
missing #100
- fixed a validation problem of the Boolean argument when a
ProcessNodewas passed as a value
- fixed a problem with the overloaded R operators for |,&andxorwhere an old signature of the
corresponding openEO process was used
version 1.1.0
Bugfixes and preparation for CRAN release, ‘openEO API’ version
1.1.0
Added
- added a vignette for getting started #81
Changes
- clarified the currently used OIDC code flow and adapted
documentation #71
- usability improvements when selecting and configuring the OIDC
Authentication provider #74
- cleaning empty fields when serializing user defined process results
#68
- changes related to UDP visualization: prior the process graph was
visualized as JSON, which caused trouble, when exchanging JSON code
between different clients. Now you can use as(x,"Process")to get a valid process from the result node #54
- changed the printing output of User defined processes and services
to not show the pure process graph anymore, use as(x,“Process”) in that
case
- documentation changes to discourage the use of
as(x,"Graph")#68
- allowed to modify service and UDP by passing a modified process
object
- fixed NA checks when updating a process graph in an UDP, which threw
irritating warnings
- modified documentation (Readme, function documentation)
Fixes
- modified a descriptive text for “production-readiness” of
back-ends
- modified the documentation and examples of connect()in
terms of the parameterversion
- modified the implemented openEO API version of the client (removed
the release candidate suffix)
- fixed interpretation of an one entry discovery object #59
- fixed an issue when querying the versions of a back-end #72
- Updated to latest version of Vue Components and Processes ‘DocGen’
(which importantly fixes the collection viewer) #75
- fixed missing enum validation #65
- fixed process parsing of processes with completely nullable arrays
#79
- fixed a problem with NULL values set as value for AnyOf, the
traversing of the graph did not work properly, because of a NULL-pointer
issue
- fixed a parsing problem, where the “optional” field was not
correctly interpreted in every case
- fixed stale URLs in documentation #84
Removed
- deleted some out-dated example scripts
- removed links to Github Wiki, because this will be discontinued soon
and moved to package vignettes
version 1.0.0
In general this release will cover the changes between API versions
0.4.2 and 1.0.0 without backward compatibility. Changes in the data
models due to the new API are not listed here.
Note: similarly named functions that work on different objects are
abbreviated by a *, e.g. describe_*() for
describe_job(), describe_service(), …
Added
- added a serialization of object Parameterinto a
descriptive form
- added a function to parse and coerce an R function into a
Graph(e.g.as(x,"Graph"), where x is a R
function returning aProcessNode)
- new functions privacy_policy()andterms_of_service()to view the privacy policy and the terms
of service
- function conformance()operated on the new
corresponding API endpoint
- added class ProcessCollectionin order to divide the
Graph object and the graph building. It is created upon connection and
obtainable viaprocesses().
- added a function logs(),log_job()andlog_service()to request the back-end logs of a job or a
service. The logging blocks the console and requests every second an
update of the log at the back-end. Also when queuing a job viastart_job()an immediate logging can be triggered.
- added S3 class labels, coerce and print functions for some exchange
object:
- FileFormatList(- as.data.frame.FileFormaList)
- FileFormat(- print.FileFormat)
- ServiceType(- print.ServiceType)
- ServiceList(- as.data.frame.ServiceList,- print.ServiceList)
- Service(- print.Service)
- CollectionList
- Collection(- print.Collection)
- Log(- print.Log)
- Job(- print.Job)
- JobList(- print.JobList)
- ResultList(- print.ResultList)
- AssetList(- as.data.frame.AssetList)
- ProcessInfo(- as.Graph.ProcessInfo)
- UdfRuntime(- as.character.UdfRuntime)
- UdfRuntimeList
- CubeDimension(- as.character.CubeDimension)
- CubeDimensions(- print.CubeDimensions)
- ProcessInfo(- as.Process.ProcessInfo)
 
- implemented the RStudio connection interface which shows the active
connection and the available data sets with their dimensional
description
- added classes for arguments: UdfRuntimeArgument,UdfRuntimeVersionArgument,UdfCodeArgument
- implemented and added a class ArgumentListtoProcessin order to allow an easier value assignment,
e.g.node1$parameter$x = ..., which comes in handy, when
the node is assigned to a variable and a parameter has to changed
later
- added a builder for user-defined processes
(UserProcessCollectionanduser_processes())
likeProcessCollectionfor predefined processes, which
offers a users stored process graph as a usable function that creates aProcessNode
- added function statusfor the connection, jobs and
services to immediate get the status information. It also always queries
the back-end for an update on call
- added … parameter to the request, PUT and POST function to control
the JSON serialization in toJSON(e.g. especially when
stating the number of digits to use during this serialization)
- also enabled the … parameter for functions where a process (graph)
is sent to the back-end
Fixed
- improved reading of files [#50]
- switching the connection in RStudio connection panel now correctly
updates the panel
- fixed a problem with trailing slashes when setting the host URL in
the connection or reading it from the well-known document
- fixed a problem with environments (mostly R6 classes) in the
validate function of some arguments
Changed
- added more setter functions to Parameterparent class
in order to manipulate parameter representations later, when defining
Parameters in user defined processes
- ProcessGraphas a parameter requires a function
wrapping - meaning you should not pass an openEO process like- p$mindirectly, because with the elaborated- ProcessGraphParameterwe cannot do a reliable automatic
variable matching, e.g. often the- ProcessGraphParameter“context” is misinterpreted
- updated and externalized the scripts in the *_viewer()functions to visualize collection and processes following the new api
definition
- ‘anyOf’ was dropped as a top-level parameter definition schema in
the API. The parameter anyOfis still be used in the
client.
- classes were renamed:
- Callbackwas renamed into- ProcessGraphArgument(Graph is still a different Concept),
which is used in reducer or aggregation functions
- callback-valuewas renamed into- ProcessGraphParameter
 
- unset ProcessGraphParameterare derived automatically
from R functions that are passed asProcessGraphArgument(formerCallback) and they become parameters that shall be
set by a user upon use of this user defined graph
- updated the endpoint file for version 1.0.0
- adapted the exchange models (JSON models) and their parsing /
serialization to the new API accordingly, especially in the
printfunctions
- harmonized various function behavior:
- update_*and- create_*functions return
their respective object (e.g.- update_job–>- Job) instead of their ID (previous behavior)
- list_*functions return a named list of those
particular exchange objects (e.g.- list_jobs–> named
list of- Job)
- parameters, where before only the ID of particular object was passed
on, were changed to allow the overview or detailed object description
also
 
- the Graphobject does not hold a reference about the
available data sets any longer
- the user defined processes management exchanges now Process objects
instead of former Graph objects with the back-end
- when creating and storing user defined processes on a back-end, they
now require a distinct id selected by the user
- updating an user defined process is done via replacement, so the old
representation is queried in the update_process_graphand
merged with the new information given by the function parameter
- renamed functions
- list_file_formats()to- list_file_formats()
- list_process_graphs()to- list_user_processes()
- describe_process_graph()to- describe_user_process()
- delete_process_graph()to- delete_user_process()
- create_process_graph()to- create_user_process()
- update_process_graph()to- update_user_process()
- validate_process_graph()to- validate_process()
 
- FileFormatobject can passed to- OutputFormatparameter
- in addition to ID also the objects of respective list_*anddescribe_*can be passed as parameter
- old *Infoclass names are reduced to the respective
shorter class name without “Info”, except forProcessInfo
- print functions of exchange objects obtained by list_*anddescribe_*are labeled with the same class and printed
with the information available (either overview or detailed view)
- made the OIDC connection configurable by the user, since the user
needs a client id and secret by the back-end provider
- enabled and reimplemented the GeoJsonargument
- when starting the computation of a job you can trigger the immediate
request to the job log with parameter logatstart_job()
- Kernel argument does not inherit from Array and allows matrix, array
and data.frame as kernel value
Removed
- removed function follow_job()(replaced bylog_job())
- removed the field connectionwhich linked to the used
openEO client from the process graph object
- removed function process_graph_builder()
- removed function callback(), because those Process
Graphs are either created from an R function or an resultingProcessNode
- removed URL encoding procedure when managing files on the
back-end
- removed user_idas a parameter from the files request,
because the user information is send with the bearer token
version 0.6.2
Fixed
- interpretation of send_udf response into correct json
- tibble version 3.0.0 issue, when searching for endpoints in the
endpoint mapping [#49]
Changed
- send_udfcan now handle user_context
- send_udfhas now a parameter for legacy support (which
calls the legacy endpoint of a UDF service with API version 0.1.0)
- String parameter can now handle file paths and calls (in context
with run_udfopenEO process) [#48]
Added
version 0.6.1
Fixed
- fixed #46 were the process link of arguments was not set
correctly
Removed
- package dependency commonmark
version 0.6.0
Added
- added a collection visualization in a HTML viewer based on “openEO
JS commons”
- bridging towards the “openEO JS commons” by reusing the process
viewer, a new function process_viewerspawns now a viewer
in RStudio and renders a beautiful website containing the process
information
- function processesthat will create an object that has
the processes that are available on the connected openEO service. It is
quite similar to the return value ofprocess_graph_builderwhich will create aGraphobject with basically the same
functionality plus the graph related functions
- transferred a function to directly interact with UDF services from
an example script of R UDF service repository send_udfand
added documentation to the function
- added an example script for the new callback functions
- added a Rmd for the new callback behavior
Changed
- variables are decoupled from the graph object which means more
flexibility when dealing with variables, they will be parsed from the
Graph / end node
- it is no longer needed to create a Graphobject
explicitly, passing the end node of the defined workflow is now
possible.
- connection is not required to be passed into the functions that
directly interact with the openEO service,
active_connectionnow gets and sets the latest connected
service into a package variable
- the mathematical constants piande(in Rpiandexp(1)) are parsed from the data and
translated into the corresponding openEO processes in order to avoid
errors due to rounded values
- overloaded mathematical operators for ProcessNodeandcallback-valueclasses
- allowed functions as “callbacks” for reducer function, e.g. in
reduce or apply (not only for band arithmetic)
- processes can now be created from any graph in callbacks provided as
functions
- slight change for indirect parameter order in processes (backward
compatible)
Fixed
- fixed the server sided validation response handling (HTTP 200 were
always OK, despite having errors)
- fixed bad ordering of bounding box parameter
Removed
- removed the markdownViewerfunction in favor ofprocess_viewerandcollection_viewer
- removed the function band_arithmetic, because callbacks
can now be functions
version 0.5.0
Added
- example process graph building for minimum EVI with EURAC, EODC and
VITO
- added a Google OIDC authentication option
- band_arithmetic function that parses a mathematical function into a
process graph if the back-end supports some of the core processes
- example script shown in the open Geo Hub Summer School
- notebooks for comparing the NDVI calculation on EURAC back-end and
GEE
Changed
- modified connectwith new parametersexchange_tokenandexternal. With the latter
we can specify ‘google’ as an external identity provider and withexchange_tokenwe can specify if we send the defaultaccess_tokenor theid_tokenas Bearer token
in the authentication header
- some endpoints allowed optional sending of a bearer token in the
header, which was not yet considered. Added a function to check if a
user has logged in (OpenEOClient$isLoggedIn()) and made it
optional at the following endpoints to sent a Bearer token as
Authorization-header depending on whether the user is logged in:
GET /output_formats
GET /udf_runtimes
GET /service_types
GET /collections
GET /collections/{collection_id}
GET /processes
POST /validation
- modified gee-evi-examplenow that the GEE driver
supports all relevant openEO processes, it now creates the graph with
apply, linear_scale and saves it as PNG; added also an example for the
band_arithmetic use case
- client public function client_versionwas renamed intoapi_versionand returns the openEO API version which the
client uses
- graphs are initialized with a connection instead of the parsed
processes list
- connection is now available via a private field in the Graph
object
- callback now reuses the obtained process in JSON format of the
connection
Fixed
- fixed callback function which not replaced the AnyOf parameter with
the newly created Graph
- create_jobnow refers to the HTTP response header
“openEO-Identifier” rather than parsing the “Location” header
- fixed a problem in band_arithmeticwhere the parameter
in array_element were falsely assigned
- fixed callback function to recognize nested callback arguments in
anyOf (#35)
- fixed the attempt to parse the response body when evaluating HTTP
202
- typo in the README
version 0.4.2
Changed
- modified the Use case 1 R client -> EURAC example (mostly
working) based on API version 0.4.2
- return a list of file paths on download_results
Fixed
- fixed error on list_file_types
- fixed bad JSON graph formatting when sending a graph for immediate
computation (compute_result)