Changelog

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Unreleased

10.12.0

  • Update to ska-oso-scripting v18.0.0 with ODA v18.0.0

10.11.1

  • Ignore positional arguments from SBD to script. (Warning raised if supplied)

  • Updated default scripting environment to ska-oso-scripting v17.4.2

10.11.0

  • Updated default scripting environment to ska-oso-scripting v17.3.0

10.10.2

  • Improve test synchronisation to make tests more robust to slow CI/CD runners.

  • Disable ‘wait for QA ready’ by default. See documentation for details on how to enable QA, or use the OET UI.

10.10.1

  • [BUGFIX] Defer RUN(main) until procedure reaches READY state, fixing a race condition where main() was dispatched before init() completed (BTN-3188).

10.10.0

  • [BUGFIX] Script functions run on separate thread to unblock event loop, allowing incoming messages to be processed concurrently with the script.

  • [BUGFIX] Fixes an issue where SBD script args were being overwritten by empty command args

  • Add ‘operator-actions’ endpoint for QA override control: one-shot scan-level overrides, persistent enable/disable toggles via POST, and state query via GET.

10.9.0

  • Updates default scripting environment to ska-oso-scripting v17.2.0, ODA to v17.3.0

10.8.2

  • [BUGFIX] Fixes an issue where a commit hash given in an SBD activity was not used to prepare the procedure

10.8.1

  • [BUGFIX] Fixes an issue where custom environments cannot run with pytango >= 10.1. NOTE THAT ALL CUSTOM ENVIRONMENTS NOW USE THE SAME VERSION OF PYTANGO AS USED IN THE DEFAULT ENVIRONMENT!

10.8.0

  • Updates default scripting environment to ska-oso-scripting v17.0.1, ODA to v17.0.1 and SKUID to 5.0.0 (with ADR-129 SKUIDs).

10.7.0

  • Update default execution environment to use ska-oso-scripting v16.0.0.

10.6.0

  • Events on the ‘activity.lifecycle.statechange’ topic are published whenever activity state changes.

  • Modified API endpoint to support app2app communication between OST and OET.

10.5.1

  • [BUGFIX] Updates to ska-oso-scripting 15.2.1 with associated ska-db-oda v14.0.3 bugfix.

10.5.0

  • Update to ODA v14.0.0

  • Remove initial creation of SBI status as ODA now does this

10.4.0

  • Activity state now tracks procedure state, moving through PREPARING->READY->RUNNING->COMPLETE for standard happy path. Alternate end states are TERMINATED for aborted or curtailed scripts, and FAILED for execution failures.

  • History size for activities and procedures can now be bound via the OET_HISTORY_SIZE environment variable.

  • Allowed duration for API request/response before a timeout occurs can now be set via the OET_REQUEST_TIMEOUT environment variable.

10.3.1

  • Set SDP_SCRIPT_TMDATA within an OET pod (from global.oso.sdp_tmdata Helm value) used by oso-scripting when retrieving latest SDP script version.

10.3.0

  • [BUGFIX] Fixed an issue where race conditions could cause process cleanup before parent state had been initialised.

  • [BUGFIX] Fixed an issue where race conditions could cause the message handling thread could silently die due to invalid state.

  • Uses pip rather than poetry to install custom environment dependencies.

  • Virtual environment location is determined by convention and not by running another subprocess.

  • Fixed many sporadic test failures by increasing timeouts when coverage is being measured and using retry with exponential backoff.

  • Fixed several issues with the test’s usage of multiprocessing and resource cleanup.

  • [BUGFIX] Fixed an issue where application logs were missing from the OET REST pods.

  • [BUGFIX] Fixed an issue where custom environments incorrectly inherited modules from the base OET. installation, specifically for modules whose name overlapped with a stdlib module.

  • Update to oso-scripting 15.1.0 for the default environment, pulling in the ODA 13.1.1 bugfix.

10.2.0

  • [BUGFIX] Fix messages from scripts not being republished to the SSE stream.

  • [BUGFIX] Fix OET_URL set inside the application to include the subarray id.

  • Update to ODA v12.1.1, with new PG_ environment variables in the Helm charts and use of global helm values to configure the ODA.

  • Update to oso-scripting 14.1.2 for the default environment.

10.1.0

  • Add heartbeat to stream to fix client issues.

  • Create initial SBI status when creating SBI.

  • Update ODA to v11.1.0, including PDM v19.1.0.

10.0.0

  • Support for multiple subarrays. Now an instance of the OET is deployed per subarray, and can only execute observations against that subarray (configured through the SUBARRAY_ID environment variable, which the OET now requires). The Helm chart will deploy an Ingress, Service and Stateful set for each subarray, configured through the global.subarray_count Helm value. The SUBARRAY_ID environment variable is set within the Statefulset.

  • The scripting interface has been formalised: subarray_id is a mandatory argument for the script init function and will be supplied at runtime by the OET from the SUBARRAY_ID environment variable, rather than letting users set it via script args.

  • Helm value changes: use global ODA values for postgres connection. Change central_node and subarray Helm values to central_node_trl and subarray_trl_prefix.

  • Deploy secret from ska-oso-oet chart for the ODA password, so it can be deployed in its own namespace.

9.0.0

  • [BREAKING] Added AAA to the API using ska-aaa-authhelpers. All requests now need to include a valid token with the correct roles and scopes for the API resource.

  • [BREAKING] Remove trailing slash from API resources.

8.0.1

  • Remove default for CENTRALNODE_TRL and SUBARRAYNODE_TRL_PREFIX environment variables in the Helm chart as OSO Scripting defines defaults that just depend on the telescope.

  • Update ska-oso-scripting dependency to 11.3.0.

8.0.0

  • Fixed an issue where child processes always saw libraries used by the parent (BTN-2667).

  • [BREAKING] Update ska-oso-scripting library version to 11.1.0 for the default script execution environment.

  • Set SUBARRAYNODE_TRL_PREFIX and CENTRALNODE_TRL in the OET ConfigMap to support running oso-scripting with new TRLs.

  • Update to ODA to v7.4.0 (python dependency and helm chart) and fastapi to v0.115.8.

7.0.0

  • Updating to use Pydantic BaseModels throughout the OET.

  • Update the REST server to use FastAPI rather than Flask, including the SSE /stream endpoint - see the Swagger UI for the use of the types.

  • [BREAKING] The GET responses previously returned an object like {”activity”: }, and similar for the Procedure endpoints. Now they return the ActivitySummary without the nested object.

  • [BREAKING] API validation errors against the Pydantic models now return the FastAPI default 422 UNPROCESSABLE ENTITY code rather than 400 BAD REQUEST.

  • [BREAKING] The error responses now just contain a single “detail” field rather than a “Message” and “type”.

  • Update the default OET client installed in the image to v1.2.1.

  • Remove Flask, Connexion and prance dependencies and all usage in the code. FlaskWorker is now completely replaced by the FastAPIWorker.

6.6.0

  • Update the Helm charts so that they have better defaults and require minimal changes in the makefile. See the docs Deployment > Configuration page.

  • Pull the ODA password from a k8s secret.

  • Update to ODA v7.3.0.

6.5.0

  • Updated Dockerfile to use poetry<2.0.0.

  • Removed tango module and pytango dependency.

  • Removed scan ID generators and scan ID management from OET’s procedure module.

  • Removed cloned oso-scripting repo from OET Dockerfile.

  • Updated ska-oso-scripting to version 11.0.0 for OET default environment.

  • Added ska-oso-scripting dependency to pyproject.toml instead of installing it in Dockerfile.

  • Changed the abort.py script to be pulled from ska-oso-scripting instead of containing a local copy.

  • Added SCRIPTS_LOCATION environment variable for configuring location where static scripts are located.

  • Updated to ODA v7.2.0, which updated the PDM dependency to 17.1.2.

  • Removed user, scan and subarray topics as they are now part of oso-scripting.

  • Updated ska-oso-oet-client to patch v.1.1.2.

6.4.1

  • Updated OET values.yaml and ConfigMap to include VALIDATION_STRICTNESS to manage OSD validation strictness.

6.4.0

  • Update to use ODA v7.1.0.

6.3.3

  • Bump ODA minor version and scripting version in the dockerfile. Fixes the simpleeval dependency issue and is a temp fix for the issue where the PDM version from the site packages is used. It is a temp fix as it just brings the PDM versions in line, rather than fixing the underlying issue.

6.3.2

  • Properly fix issue where default image tag was not set to the chart version in the Helm chart.

6.3.1

  • Fix issue where default image tag was not set to the chart version in the Helm chart.

6.3.0

  • Updates OET to use RESTless ODA (v6.0.0).

6.2.0

  • Updates OET to use PyTango 9.5, ODA v5.0.1 and, indirectly, PDM v14.3.0.

6.1.0

  • Updates OET to use ODA v3.0.0 and PDM v12.0.1.

  • Exposes SKUID URL via ska-oso-oet.rest.skuid.url Helm variable.