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 headerX-Request-ID(generated, clients' values ignored unlessserver.request_id.trust_incoming), query parameters on operations without parameters get400, 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 capfoca<0.22no longer resolve against the image (see the upgrade steps) (#433, #434; #462, #463) - The image contains the release train
foca-plugins0.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.versionorcustom.tes.probe_with_tokenis set (#436, #448) - Tasks still
CANCELINGcustom.controllers.post_task.polling.max_cancel_timeseconds (default 3600) after their cancel are set toSYSTEM_ERRORand no longer tracked (#437, #450) - Responses of TES instances are read up to
custom.tes.max_response_sizebytes (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 inSYSTEM_ERROR(#439, #452) - Pages of the view
FULLalso end before their tasks exceedcustom.controllers.list_tasks.max_page_bytes_fullbytes (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_daysdays 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 withapi_path(#438, #451) - Discovery works with Cloud Registry 1.0.0rc2, whose
GET /verificationsnames services byserviceId(#462, #463) - Responses to requests that fail the validation of the API specification
keep the validator's reason as
detail(exceptions.validation_reasons), and gaintype,codeand 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: truesends them as before (#436, #448) - Requests to TES instances no longer take credentials from a
.netrcfile 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
FULLwith 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 coverexceptions.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)