# Changelog All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## 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.