Skip to content

0.6.0

proTES now runs on FOCA 0.22 and foca-plugins 0.3.0, and discovers TES instances in Cloud Registry 1.0.0rc2 again, also those that serve the TES API at another path. Admins can limit the tasks of each user and delete finished tasks after a number of days, both opt-in. Responses of TES instances and pages of the view FULL are bounded in size, tasks stuck in CANCELING end after a time, and service infos of TES instances are read without credentials. Several changes are breaking: read the upgrade steps first. See the documentation for details.

Breaking changes

  • proTES runs on FOCA 0.22.0 and its image: ${...} in config files references an environment variable, responses have the header X-Request-ID (generated, clients' values ignored unless server.request_id.trust_incoming), query parameters on operations without parameters get 400, the Celery worker stops on invalid access control settings, MongoDB clients time out after 5 seconds, and refusals of the plugin gateway and log entries of requests have other messages; plugins that cap foca<0.22 no longer resolve against the image (see the upgrade steps) (#433, #434; #462, #463)
  • The image contains the release train foca-plugins 0.3.0 (plugins 0.1.3) instead of 0.2.0 (#467, #471)
  • Service infos of TES instances are read without credentials; TES instances that refuse anonymous reads count as TES 1.0 unless they have the label tes.version or custom.tes.probe_with_token is set (#436, #448)
  • Tasks still CANCELING custom.controllers.post_task.polling.max_cancel_time seconds (default 3600) after their cancel are set to SYSTEM_ERROR and no longer tracked (#437, #450)
  • Responses of TES instances are read up to custom.tes.max_response_size bytes (default 10 MiB, was 64 MiB for some): larger task logs are left out, and a larger response to a task creation leaves the task in SYSTEM_ERROR (#439, #452)
  • Pages of the view FULL also end before their tasks exceed custom.controllers.list_tasks.max_page_bytes_full bytes (10 MiB, 4 MiB in the Helm chart), so they may hold fewer tasks (#455, #458)
  • Docker Compose runs the images of the Helm chart, pinned to RabbitMQ 4.3.7 and MongoDB 7.0.45; RabbitMQ may need a new volume (#435, #440)

Features

  • Opt-in limits of the unfinished and stored tasks per user (custom.controllers.post_task.limits) (#285, #456)
  • Opt-in retention: the Celery workers delete finished tasks custom.retention.finished_days days after they finished, leaving tombstones (#286, #457)
  • Discovered TES instances whose registry URL serves the TES API (e.g., TESP-API at /v1) are used at that URL, without an entry of their own with api_path (#438, #451)
  • Discovery works with Cloud Registry 1.0.0rc2, whose GET /verifications names services by serviceId (#462, #463)
  • Responses to requests that fail the validation of the API specification keep the validator's reason as detail (exceptions.validation_reasons), and gain type, code and the invalid fields (errors) where these are known (#462, #463)

Security

  • By default, proTES' access token and Basic credentials are no longer sent with reads of service infos, so TES instances that tasks don't go to don't get them; custom.tes.probe_with_token: true sends them as before (#436, #448)
  • Requests to TES instances no longer take credentials from a .netrc file of the environment (#449, #454)
  • The size limit of responses of TES instances bounds the memory that reading them takes, also for compressed responses (#439, #452)

Fixes

  • Tasks whose TES instance never confirms a cancel are no longer tracked forever (#437, #450)
  • One page of the view FULL with large tasks could exceed the memory limit of the app (#455, #458)

Documentation

  • The upgrade path from 0.5.0 (#468, #472)

Maintenance

  • Moved to FOCA 0.21 (#433, #434) and 0.22 (#462, #463)
  • CI runs tasks on TESK in a k3s cluster, in the job Integration (TESK) (#423, #432)
  • Tests read the config with get_config() and cover exceptions.validation_reasons: false (#441, #443; #469, #470)
  • The release workflow verifies the release tag before running its scripts (#446, #447)
  • Removed unused models and ignore entries (#444, #445); Dependabot PRs get the label type: dependencies (#460, #461)