All notable changes to this project will be documented in this file.
The format is roughly based on Keep a Changelog.
- More advanced process-graph splitting for cross-backend execution: not limited to splitting off
load_collection
nodes, but cut deeper into the graph. (#150)
- Add request timeout configs for listing user jobs (eu-cdse/openeo-cdse-infra#188)
- Better error message when requested collections are spread across separate backends (#153)
- move example configs inside package source tree (#117)
- openeo.cloud configs: only consider "vito" for SENTINEL2_L2A collection (#139)
- Add
aggregator.dummy.py
to wheel (#117)
- Start with
openeo-aggregator
docs, hosted with GitHub Pages at https://open-eo.github.io/openeo-aggregator/ (#142)
- Also support
job_options_update
to inject job options in synchronous processing requests (#135, eu-cdse/openeo-cdse-infra#114)
- Pass through original API errors on synchronous or batch processing (#121)
- Add config option
process_allowed
to include/exclude processes (#137)
- Remove deprecated
collection_whitelist
config (#139)
- Add backend-aware collection allow-list option (#139)
- Add config option
job_options_update
to inject job options before sending a job to upstream back-end (#135)
- Remove (now unused)
AggregatorConfig
class definition (#112)
- Remove deprecated
AggregatorConfig
fields:aggregator_backends
,partitioned_job_tracking
,zookeeper_prefix
,memoizer
(#112) - Remove
AggregatorConfig
usage (both insrc
andtests
). Remove support forOPENEO_AGGREGATOR_CONFIG
based configuration (#112)
- Add
AggregatorBackendConfig.memoizer
and deprecateAggregatorConfig.memoizer
(#112)
- Add
AggregatorBackendConfig.partitioned_job_tracking
and deprecateAggregatorConfig.partitioned_job_tracking
(#112)
- Add
AggregatorBackendConfig.aggregator_backends
and deprecateAggregatorConfig.aggregator_backends
(#112)
- Eliminate unused
AggregatorConfig.configured_oidc_providers
(#112)
- Add
AggregatorBackendConfig
toconf/aggregator.*.py
files (#112)
- move
connections_cache_ttl
config to AggregatorBackendConfig (#112) - replace
kazoo_client_factory
config withzk_memoizer_tracking
(#112) - Add
AggregatorBackendConfig.zookeeper_prefix
and deprecateAggregatorConfig.zookeeper_prefix
(#112)
- Support regexes in
collection_whitelist
config (eu-cdse/openeo-cdse-infra#54)
- Move
collection_whitelist
config toAggregatorBackendConfig
(#112)
- Move
auth_entitlement_check
config toAggregatorBackendConfig
(#112)
- Add support for standard
OpenEoBackendConfig.oidc_providers
and deprecateAggregatorConfig.configured_oidc_providers
(#112)
- Include gunicorn configs in wheel (related to #117)
- Start porting
AggregatorConfig
fields toAggregatorBackendConfig
(#112)
- Support
aggregator_config
asAggregatorConfig
variable name to simplify config system migration (defineAggregatorConfig
andAggregatorBackendConfig
in same config file) (#112)
- Disable
auth_entitlement_check
(check on EGI VO entitlements) in all configs (#133)
- Basic support for
POST /validation
: pass through validation of best upstream backend for given process graph (#42)
- Disassociate billing plans from user roles and don't list any for now (openEOPlatform/architecture-docs#381)
- Fix compatibility with
openeo_driver>=0.75.0
(newenable_basic_auth
config, which is going to be disabled by default)
- Add (optional) config for collection id whitelisting. Keep union of all "upstream" collections as default. (#129)
- Disable
auto_validation
feature of latestopeneo
python client library release (#130) - Fix compatibility with
openeo>=0.25.0
(introduction ofOpenEoApiPlainError
)
- Dockerfile: switch to
python:3.9-slim-bullseye
base image - Parallelize
/jobs
requests to upstream back-ends (#28) - Increase timeout on getting batch job logs to 120s (#128)
- Added simple UDP support by directly proxying to "first" upstream backend (e.g. VITO) (#90)
- Background task to prime caches (#74)
- Removed
ENV
based config loading for clarity,OPENEO_AGGREGATOR_CONFIG
must be full explicit path to config (#117)
- Initial aggregator-level implementation of cross-backend processing (#115)
- Initial, experimental (client-side) proof of concept for cross-backend processing (#95)
- Consider process availability in backend selection (#100)
- Relax openEO API version constraints for upstream back-ends (#103)
- Support log level for retrieving BatchJob logs (#106)
- User job listing: skip upstream jobs that trigger parse issues instead of failing the whole listing (#109)
- User job listing: support dates with fractional dates (#109)
- Add support for more user roles (#64)
- Experimental: allow back-end selection through job option
- Add support for
load_result
with a URL (instead of job_id). (#95) - Batch job result metadata: preserve upstream's canonical link (#98)
- Change billing currency from EUR to credits (#96)
- Merging of collection metadata produced duplicate entries in
links
: openEOPlatform/architecture-docs#266
- Add SentinelHub openEO backend to production config
- Implement support for federation of secondary services (#78). Including: caching (#84) and skipping of that do not support secondary services (#85)
- Start using pre-commit and black/darker for code style consistency
- Change to openEO API 1.1.0 version of terrascope/vito backend
- Make sure user id (prefix) is logged in JSON logs
- Updated (generous fallback) "FreeTier" user role to 30DayTrial (more strict)
- Use EODC dev instance in aggregator dev config
- Update EGI issuer URL to new Keycloak one (keep old provider under "egi-legacy")
- Improve collection metadata merging (#5)
- Replace local memory cache with centralized ZooKeeper based cache for metadata documents (#2)
- Fix issue https://discuss.eodc.eu/t/invalid-band-name-index-vv/472
- Properly rewrite model id in
load_ml_model
(#70)
- Initial implementation of "partitioned" job management, e.g. for large area processing (EP-3475, openEOPlatform/architecture-docs#12)
- Update to the latest version of openeo-driver API
- Fixed stripping back-end id prefix in
load_result
calls in batch jobs (#19) - Fixed missing "cube:dimension" property on merged collections (openEOPlatform/SRR1_notebooks#9)
- Use default connection timeout on openEO version discovery request too
- Expose openEO Platform billing plans (#6)
- Set
default_plan
on/me
for early adopters (#6) - Allow access to "free tier" users (users enrolled in openEO Platform virtual org, but without the "early adopter" role) (openEOPlatform/architecture-docs#169 / EP-4092)
- Add (experimental) "federation:missing" on partial user job listings (#27)
- Add CREODIAS back-end on dev instance
- Automatically do warning logs on "slow" backend responses
- Add request correlation id to (JSON) logging
- Refresh back-end connection objects regularly instead of holding on the same ones. Improves resilience of aggregator when a back-end is down. (#18 / EP-4049)
- Fine-tune EGI Early Adopter related "entitlement" error messages (openEOPlatform/architecture-docs#105)
- Do logging in JSON format, targeting ElasticSearch based monitoring (EP-4057)
- More aggressive and harmonized exception handling/logging (#18 / EP-4049)
- Enable
DEBUG
logging foropeneo_aggregator
logs (EP-4057)
- Preserve "job_options" field in batch job submit
- Preserve "usage" batch job metadata (#31)
- Added support for
/collections/{cid}/items
(EP-4022, openEOPlatform/architecture-docs#104) - Implement
/health
endpoint for monitoring (EP-3906) - Initial implementation to list federation backends in capabilities doc (#22)
- Access to authenticated endpoints requires the "early adopter" role now (through EGI Check-in
eduPersonEntitlement
) (EP-3969) - Work with aggregator-specific OIDC provider settings (e.g. dedicated default clients) (EP-4046, #7)
- Disable
egi-dev
OIDC provider (EP-4046, #7) - Improve "early adopter check" error messages (openEOPlatform/architecture-docs#105)
- Only allow OIDC authentication in production (no basic auth)
- User email address as user name in
/me
- Config loading: replace JSON based configs with Python based config files
- Move aggregator configs to dedicated dev/prod config files
- Use only one thread per gunicorn worker to avoid race conditions and thread safety issues (#13)
- Increase gunicorn worker timeout to handle long (sync) requests better (#15)
- support aggregator job id mapping in
load_result
(#19)
- Initial support for user selected backend through
load_collection
properties filtering (EP-4011, openEOPlatform/architecture-docs#85)
- Add
/file_formats
support (#1) - Add initial support for multi-backend collection metadata merging (EP-4011, openEOPlatform/architecture-docs#85)
- Increase default cache TTL to 6 hours (#2)
- Disable CREODIAS based backend (too unstable at the moment)
- Take union of processes instead of intersection (#4)
- Increase timeout for job create/start to 5 minutes (EP-4021)
- Switch to production EODC instance
- Increase default connection timeout from 20s to 30s
- Skip failing back-ends when merging
/jobs
listings (EP-4014)