All notable changes to this project will be documented in this file.
This project does not have a real release cycle (yet).
Upstream projects usually depend on development snapshots of this project.
Still, to have some kind of indicator of small versus big change,
we try to bump the version number (in openeo_driver/_version.py
)
roughly according to Semantic Versioning.
When adding a feature/bugfix without bumping the version number:
just describe it under the "In progress" section.
When bumping the version number in openeo_driver/_version.py
(possibly accompanying a feature/bugfix):
"close" the "In Progress" section by changing its title to the new version number
(and describe accompanying changes, if any, under it too)
and start a new "In Progress" section above it.
- Add
openeo_driver.config.load.exec_py_file
(related to Open-EO/openeo-geopyspark-driver#936))
- Propagate alternate
href
s of job result assets (Open-EO/openeo-geopyspark-driver#883) - Ensure that a top level UDF can return a DriverVectorCube. Previously it only returned a JSONResult (#323)
- Support pointing
href
of job result asset to workspace URI (Open-EO/openeo-geopyspark-driver#883) - Fix saving DriverVectorCube to GeoParquet (#300)
- Support removing original assets exported to workspace: (Open-EO/openeo-geopyspark-driver#883)
- Add
max_updated_ago
toJobRegistryInterface.list_active_jobs
API (Open-EO/openeo-geopyspark-driver#902)
- Support exporting objects to object storage workspace (eu-cdse/openeo-cdse-infra#278)
- Move ObjectStorageWorkspace implementation to openeo-geopyspark-driver (eu-cdse/openeo-cdse-infra#278)
- Remove
JobRegistryInterface.list_trackable_jobs
API (Open-EO/openeo-geopyspark-driver#902)
- Add
has_application_id
argument toJobRegistryInterface.list_active_jobs
in preparation to eliminatelist_trackable_jobs
(Open-EO/openeo-geopyspark-driver#902)
- Add
max_age
support toElasticJobRegistry.list_trackable_jobs
(Open-EO/openeo-geopyspark-driver#902)
- Support multiple
export_workspace
processes (eu-cdse/openeo-cdse-infra#264) - Fix
export_workspace
process not executed in process graph with multiplesave_result
processes (eu-cdse/openeo-cdse-infra#264) - Restore deterministic evaluation of process graph with multiple end nodes
- Added support for
apply_vectorcube
UDF signature inrun_udf_code
([Open-EO/openeo-geopyspark-driver#881]Open-EO/openeo-geopyspark-driver#881)
- add
check_config_definition
helper to check definition ofOpenEoBackendConfig
based configs
- return STAC Items with valid date/time for time series job results (Open-EO/openeo-geopyspark-driver#852)
- support passing the output of
raster_to_vector
toaggregate_spatial
during dry run (EU-GRASSLAND-WATCH/EUGW#7) - support
vector_to_raster
of geometries not in EPSG:4326 (EU-GRASSLAND-WATCH/EUGW#7)
- Return compliant GeoJSON from
DriverVectorCube#get_bounding_box_geojson
(Open-EO/openeo-geopyspark-driver#854)
- Don't require a
final_result
entry in theEvalEnv
inconvert_node
(openeo-aggregator#151)
- Support
save_result
processes in arbitrary subtrees in the process graph i.e. those not necessarily contributing to the final result (Open-EO/openeo-geopyspark-driver#424)
- Fix default level of
inspect
process (defaults toinfo
) (Open-EO/openeo-geopyspark-driver#424) apply_polygon
: add support forgeometries
argument (in addition to legacy, but still supportedpolygons
) (Open-EO/openeo-processes#511)
- Update to "remote-process-definition" extension (originally called "remote-udp") (#297, Open-EO/openeo-api#540)
evaluate_process_from_url
: drop support for URL guessing from folder-like URL (#297))evaluate_process_from_url
: align with new (and experimental) "remote-udp" extension (#297))
- Add API to define conformance classes to
OpenEoBackendImplementation
- Require at least
werkzeug>=3.0.3
(#281)
- Expose CSV/GeoParquet output assets as STAC items (Open-EO/openeo-geopyspark-driver#787)
- Start warning about deprecated
evaluate_process_from_url
usage (eu-cdse/openeo-cdse-infra#167)
- Add helper for finding changelog path
- Support
DriverVectorCube
inapply_polygon
(#287)
- Emit "in" operator (Open-EO/openeo-opensearch-client#32, Open-EO/openeo-geopyspark-driver/#776)
- Add simple enum
AUTHENTICATION_METHOD
forUser.internal_auth_data.get("authentication_method")
values
- Rename
BatchJobLoggingFilter
to more general applicableGlobalExtraLoggingFilter
- Support
job_options
in synchronous processing (experimental) (related to Open-EO/openeo-geopyspark-driver#531, eu-cdse/openeo-cdse-infra#114)
- Add
job_options
argument toOpenEoBackendImplementation.request_costs()
API. It's optional and unused for now, but allows openeo-geopyspark-driver to adapt already. (related to Open-EO/openeo-geopyspark-driver#531, eu-cdse/openeo-cdse-infra#114)
- Remove deprecated and now unused
user_id
argument fromOpenEoBackendImplementation.request_costs()
(cleanup related to Open-EO/openeo-geopyspark-driver#531)
- Decreased default ttl in
ClientCredentialsAccessTokenHelper
to 5 minutes
- Fix delete in EJR CLI app
- Add rudimentary multi-project changelog support
- Automatically add job_id and user_id to all logs during job start handling (#214, eu-cdse/openeo-cdse-infra#56)
- Enable
ExtraLoggingFilter
by default fromget_logging_config
(#214)
- Fix dry run flow for aggregate_spatial, run_udf, and vector_to_raster (#276).
- Improve resilience by retrying EJR search requests (Open-EO/openeo-geopyspark-driver#720).
- For client credentials: use OIDC "sub" identifier as user_id instead of config based mapping to be compatible with ETL API reporting requirements (Open-EO/openeo-geopyspark-driver#708)
- Reinstate the
werkzeug<3
constraint. Apparently too many deployments are stuck with a very low Flask version, which is not compatible with Werkzeug 3 (#243). Pinning this down in openeo-python-driver is unfortunately the most feasible solution for now.
- Support
export_workspace
process andDiskWorkspace
implementation (Open-EO/openeo-geopyspark-driver#676)
- Fix picking up
flask_settings
from OpenEoBackendConfig. This introduces/enables a default maximum request size (MAX_CONTENT_LENGTH
) of 2MB (#254)
- Drop werkzeug<3 constraint (#243)
- Bump Werkzeug dependency to at least 2.3.8 (but below 3.0.0) for security issue (#243)
- job metadata: remove un-official "file:nodata" field (Open-EO/openeo-geopyspark-driver#588)
- Eliminate need to subclass
ConfigGetter
- Expose mapping of job status to partial job status (Open-EO/openeo-geopyspark-driver#644)
- Support GeoParquet output format for
aggregate_spatial
(Open-EO/openeo-geopyspark-driver#623)
- Add
Processing.verify_for_synchronous_processing
API (#248)
- Support EJR replacing ZkJobRegistry
Block sync request with too large extent. Use batch-job instead for those. (Open-EO/openeo-geopyspark-driver#616)
- Add
User
argument toGpsBatchJobs.create_job()
- Disable basic auth support by default (#90)
OpenEoBackendConfig
: make showing stack trace on_load
configurable
- Flag
/openeo/1.2
API version as production ready (#195)
- fixup "polygons" argument of "apply_polygon" (#229)
- Attempt to workaround issue with in-place process graph modification and process registry process spec JSON (re)encoding (Open-EO/openeo-geopyspark-driver#567)
- Add
OpenEoBackendConfig.deploy_env
- Move
enable_basic_auth
/enable_oidc_auth
toOpenEoBackendConfig
- add
ClientCredentials.from_credentials_string()
- Improve request id logging when log collection failed (Open-EO/openeo-geopyspark-driver#546)
- use
yymmdd
prefix in job/req ids for now
- Add access_token introspection result (when enabled) to
User.internal_auth_data
- Start returning "OpenEO-Costs-experimental" header on synchronous processing responses
- Extract client credentials access token fetch logic from ElasticJobRegistry
into
ClientCredentialsAccessTokenHelper
to make it reusable (e.g. for ETL API as well) (Open-EO/openeo-geopyspark-driver#531)
OpenEoBackendImplementation.request_costs()
: add support for passing User object (related to Open-EO/openeo-geopyspark-driver#531)
- Initial support for openeo-processes v2.0, when requesting version 1.2 of the openEO API (#195)
- Drop support for 0.4 version of openeo-processes (#47)
- Add backoff to ensure EJR deletion (#163)
- Support job deletion in EJR (#163)