Changelog ========= All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). Unreleased ************ 18.0.0 ************ * [BREAKING] Removes the REST API service. The ODA is now only a Python library + Postgres database. * Improved test coverage. * [BUG-FIX]: Fixed bugs with status aggregation after failed execution as part of SKB-1257 17.5.0 ********** * Updates to PDM version ^27.3.0 17.4.1 ********** * Remove deprecated root level scan_definitions and scan_sequences from SBDs. * Added relationship support for entities. 17.4.0 ********** * Added support for filtering entities Projects, SBD, SBI and EB's with status filter in PTT 17.3.0 ********** * Updates to PDM version ~27.2.1 * No-op forward data migration + rollback that deletes data incompatible with PDM <27.2 17.2.0 ********** * Split the creation of schemas and extensions in the DDL files into a separate changeset, that can be ran conditionally with the `create-schemas` and `create-extensions` liquibase contexts, configurable by Helm charts. This means the charts can be deployed in environments where the liquibase Job does not have admin access. * Allow the liquibase job to be passed an existing secret for the postgres connection variables 17.1.0 ********** * CICD job to block modifications to released database migrations * Add script_helper module that creates and updates EBs directly to the database rather than using the deprecated API * SonarQube for static analysis of code quality * Add v17 to ingress URL to allow two versions of ODA to be deployed in same namespace * Make ltree extension creation idempotent in case ODA schemas deployed to existing database 17.0.1 ********** * Fix missing update to major version in URL 17.0.0 ********** * [BREAKING] Rename the changeset names and IDs to use incremental versions * Added demo tests for database migrations 16.0.0 ********** * [BREAKING] updates database tables to use bigint primary keys rather than text, given ADR-129 for SKUID format changes 15.3.0-rc.4 *********** * Removed hardcoded SBIStatus dependencies from SLT schema. * Dropped references to shift_log.sbi_statuses and shift_log.eb_statuses tables from the shift_log.logs table. 15.3.0-rc.3 *********** * 15.3.0-rc.1, rc.2, and rc.3 include the first three items of 15.2.1, which were inadvertently included in the 15.2.1 release itself. 15.2.1 ********** * Fix `ProjectRepository.query` method so that it returns the OBs in the Project * Add application_name tag to PostgreSQL connections to help identify connection sources. See documentation on ODA configuration for information on the ODA_APPLICATION_NAME and POD_UID environment variables that configure this behaviour. * Updates to PDM v27.1.1 * Updated the comments table schema by removing the UNIQUE key constraint in SLT * Allowed NULL values for observation_start_time in the observing_queue_items table * Updated the trigger notify_eb_insert_update in SLT 15.2.0 ********** * Modified dashboard queries to support purpose filter. * Adds mark_project_ready() and mark_project_draft() methods to StatusRepository. 15.1.0 ********** * Add database trigger that stops children being moved to different parents, along with component tests for this * Add functionality for deletion of OBs and SBDs, with checks for that SBIs don't exist. This, along with the ProjectRepository.add(), means that the UI can build up Prjs + OBs and send them for saving in one operation, but to delete an OB/SBD they need to use these new methods. * Remove psycopg connection pool and use a new connection in each UoW 15.0.2 ********** * Make EB initial DB status as IN_PROGRESS and remove/rename some status labels 15.0.1 ********** * Fix hardcoded url to v15 15.0.0 ********** * [BREAKING] Complete refactor of the database schema and table structure, including renaming all table names. Old tables will now be ignored by the library. Where SKUIDs are appropiate, these are now the primary keys in the tables. * The psql init job is removed and liquibase is now used to control the DDL and future migrations. When installing the chart, the liquibase job will run and apply the files in the changelog directory * [BREAKING] Observing Blocks are now first-class objects that exist as a separate table between Projects and SBDs. * [BREAKING] Foreign key relationships between EB -> SBI -> SBD -> OB -> Project -> Proposal are now enforced. If a ref is given in the child object, the key must be available in the parent table. If a ref if not given for the non-nullable FKs then an error will be raised. In particular this means an SBDefinition can no longer be created without being attached to a Project * [BREAKING] Refactor of the ODA library package structure and Repository implementation. Now the UnitOfWork should be imported from `ska_db_oda.unitofwork` and if needed, the Repositories from `ska_db_oda.repository` * Add history table for SBDefinitions and a corresponding `get_version` method to the `SBDefinitionReposiotry` * Update to PDM v27.0.0 14.3.0 ********** * Update PDM to v26.3.0 14.2.1 ********** * Updated PDM version to 26.2.1 (bug fix) 14.2.0 ********** * Updated PDM version to 26.2.0 (adds Project purpose, scan duration with units and TLE coordinates, X and Y polarisations for SDP DP) 14.1.0 ********** * Added new triggers for SLT Annotation Update * Added new triggers for SLT EB Log * Added new `annotation_id` column in SLT annotation table. * New columns added in observing queue and queue items tables 14.0.4 ********** * Update PDM to v26.0.3 14.0.3 ****** * [BUGFIX] Exception signatures were not pickleable, causing issues when used in a multiprocessing context. 14.0.2 ****** * Update PDM to v26.0.2 14.0.1 ****** * Fixed PTT Dashboard Query. * Added Entity status APIs for OET UI. 14.0.0 ****** * [BREAKING] Implemented Automatic Status Entity flow using SQL Triggers. * [BREAKING] Removed old status history related tables. * Created new API and wrote SQL query for PTT Dashboard. * [BUGFIX] Fixed SLT comment reply table. * [BREAKING] PDM version to 26.0.0. * Fetch SKUIDs from the library rather than the SKUID service. This is non-breaking for any users of the ODA library and means the ODA no longer requires a deployment of SKUID to be configured. 13.1.1 ****** * [BUGFIX] Improve Postgres connection pool handling so that failed connections are closed and reopened, rather than remaining unavailable in the pool. * Inject the ODA UnitOfWork as a FastAPI Dependency into the API functions. * [BUGFIX] Default to {{ .Values.global.oda.postgres.database }}_admin for the username if {{ .Values.global.oda.postgres.user }} is not set for the client, to match the postgres deployment. 13.1.0 ****** * Updates PDM version to 25.0.0 13.0.0 ****** * [BREAKING] Schema Updates: Removed, modified, and added tables related to the Shift Log Tool. * [BREAKING] Database Triggers: Added new triggers for the Shift Log Tool tables. 12.1.1 ****** * Set ttlSecondsAfterFinished for postgres init job. * Allow postgres deployment to be disabled in umbrella chart. 12.1.0 ****** * Updates PDM version to V24.0.0 * Fixes left over CODEC issues 12.0.1 ****** * Fixed missed hardcoded major version 12.0.0 ****** * [BREAKING] Deploy postgres via the Stackgres Operator rather than the bitnami chart. The ``ska-db-oda`` chart now contains a ``ConfigMap`` with the DDL scripts and an optional ``Job`` that will run these scripts against a Postgres instance (set the ``runJob`` value to false if this is not needed). See docs for the updated Helm values. * [BREAKING] Update the ODA environment variables to use the standard `PG_` environment variables to connect to Postgres. Applications that use the ODA library will need to change their environment variables from ``ADMIN_POSTGRES_PASSWORD`` to ``PGPASSWORD``, etc. 11.8.0 ****** * Updating to PDM v23.0.0 11.7.1 ****** * Updating to PDM v22.1.1 11.7.0 ****** * Updating to PDM v22.1.0 11.6.0 ****** * Updating to PDM v22.0.0 11.5.3 ****** * NOTE: this patch has been applied to an old release, so the following changes are not present in versions >11.5.2, <13.1.1. * [BUGFIX] Improve Postgres connection pool handling so that failed connections are closed and reopened, rather than remaining unavailable in the pool. * Inject the ODA UnitOfWork as a FastAPI Dependency into the API functions. 11.5.2 ****** * Fixed SKB-1088 (removed public. from SLT tables) 11.5.1 ****** * Temp DB fix: Updated postgresql chart and image to temporarily pull from CAR 11.5.0 ****** * Added sbd_observing_queue and observing_queue_items tables for OST persistent queue. * Updated make submodule and Makefile for k8s-test. 11.4.0 ****** * Updates PDM version to v21.0.0 * Updates Panel table schema and mapping 11.3.0 ****** * Updated to PDM v20.0.1 11.2.0 ****** * Updates the constraint on proposal reviews to be on only `prsl_id`, `reviewer_id`, `version` and `kind` 11.1.0 ****** * Adds a proposal access table that controls access on a proposal level * Adds UOW for the proposal access 11.0.0 ****** * Updated to PDM v19.0.0 10.0.1 ****** * Removed unused `is_status_history` flag from rest layer to fix the bug. * Updated hardcoded ODA version in python files. 10.0.0 ****** * Added custom field query * [BREAKING] Updated PDM version to 18.5.0 * [BREAKING] Updated panel reviews based on the PDMv18.5.0 to accept both technical and science reviews 9.2.0 ***** * Updated image base images and poetry v2 * Update ska-oso-pdm to v18.4.0 9.1.0 ***** * Added Panel review and panel decision UOW for proposal management * Update ska-oso-pdm to v18.3.0 9.0.1 ***** * Changed to ska-ser-xray v0.7.0. * Updated X-ray configuration. * Updated major version values which were missed last release 9.0.0 ***** * [BREAKING] Removed the filesystem implementation of the Repository/UoW interfaces * Added PM Panel * Upgraded version of PDM to 18.2.0 * [BREAKING] Use global Helm values for the Postgres connection details 8.0.2 ***** * Modified Table structure for SLT. * [BREAKING] Added `user_id` field in SLT Tables. * [BREAKING] Modified `shift_operator` field to `operator_name`. * Added Indexes for SLT Tables 8.0.1 ***** * Fix the issue where status entity were created in PUT API in EB and SBI. 8.0.0 ***** * [BREAKING] Updated to PDM v18.0.0 * Update base images (to ska-build-python v0.2.0 and ska-python v0.2.0) 7.4.0 ***** * Update pyproject to fastapi v0.155.8 and PDM to v17.2.0 7.3.4 ***** * Fix bug where created_on timestamp for non-versioned entities was reset on update. 7.3.3 ***** * Fix the issue where Fuzzy search with entity ID was not functioning properly. 7.3.2 ***** * Fix bug where metadata wrongly needed to be included when updating an entity * Fix bug when author does not exist on a project 7.3.1 ***** * Allow user to specify their own password secret in the values.yaml instead of only using the default one deployed by the umbrella 7.3.0 ***** * Secret management changes: Use a VaultStaticSecret resource rather than the SecretProviderClass and define the Secret resource in the umbrella chart with the postgres deployment * Raise custom errors from the persistence layer rather than Python built ins. See ska_db_oda.persistence.errors for new types. * Update the Helm charts so that they have better defaults and require minimal changes in the makefile. See the docs Deployment > Configuration page. 7.2.0 ***** * Bump PDM version to 17.1.0 (from 17.0.0) 7.1.1 ***** * [BREAKING] Renamed column operator_name to user_name in annotation table for SLT (Shift Log Tool) 7.1.0 ***** * Added annotation table for SLT (Shift Log Tool) 7.0.0 ***** * Added XRAY configuration 7.0.0 RC ******** * Updated to PDM v17.0.0 * Used PDM builders for SBDefintions in tests rather than json files in this repo 6.3.1 ***** * Changed PDM to v16.1.0 6.3.0 ***** * Added Tables for SLT(Shift Log Tool) 6.2.3 ***** * Remove definition of oauth secret in ska-db-oda helm chart that pulls the oauth secret from Vault. 6.2.2 ***** * Reinstate FlaskODA object but converted to FastAPI, to fix issue where connection pool was starting before postgres was ready 6.2.1 ***** * Changed PDM to v16.0.1 6.2.0 ***** * Changed PDM to v16.0.0 * Added oauth secret in ska-db-oda helm chart that pulls the oauth secret from Vault. 6.1.0 ***** * Define secret in ska-db-oda helm chart that pulls the postgres password from Vault. Use this k8s secret for the postgres and pgadmin passwords, rather than have their charts create their own. * Convert from Flask application into FastAPI. Involved splitting the resources.py with into separate modules for each resource. * Added version ref for status entities, which links to the entity version * Update to PDM v15.4.0 6.0.0 ***** * [BREAKING] Removed `rest` and `memory` implementation of Repository * [BREAKING] Moved the `unitofwork`, `repository` and `domain` top level packages into a `persistence` package * ODA CLI client now works with either the local filesystem (i.e. the filesystem where the client is installed) or a remote ODA API depending on whether `ODA_CLIENT_USE_FILESYSTEM` env variable is True or False/unset. 5.3.3 ***** * [BUGFIX] Added workaround for PUT api url for status entity. 5.3.2 ***** * [BUGFIX] Fixed PUT api for status entity. 5.3.1 ***** * [BUGFIX] Fixed rest layer support for status entity PUT api. * Updated Enum values in capitalize for status entity. 5.3.0 ***** * Updates ska-oso-pdm dependency to v15. 5.2.0 ***** * Added REST API support to update status for project entity and to get status history for the entity. * Update 'cycle' field for proposal in table and 'elevation' in testfile. 5.1.0 ***** * Add Helm value `pgadmin4.env.listenAddress` which will set the environment variable PGADMIN_LISTEN_ADDRESS in the pgadmin pod. If this value is left to null then the default pgadmin value will be used. 5.0.1 ***** * Unpins PDM from exact match on v14.0.1 to allow use of ODA as a library in other applications. 5.0.0 ***** * [BREAKING] Updates to ska-oso-pdm v14.0.1 from 13.0.1. This is a breaking change for the ODA as the PDM objects are the request bodies of the ODA API. See PDM change log for details on model changes. * Uncommented test cases for Proposal in component test and integration test * Added test cases for Proposal in unit test 4.1.0 ***** * Added REST API for easy retrieval of related ODA entities with only an Execution Block ID 4.0.0 ***** * [BREAKING] Updates to ska-oso-pdm v13.0.0 from 12.0.1. This is a breaking change for the ODA as the PDM objects are the request bodies of the ODA API. See PDM change log for details on model changes. * [BREAKING] Added REST API support to update status for entity like SBD,SBI and EB and to get status history for the entity. 3.0.2 ***** * [BUGFIX] Updated to latest make submodule. Previous 3.0.1 patch was not published correctly due to bug in makefiles. 3.0.1 ***** * [BUGFIX] Fixed bug where error handling tried to access error.args even if there were none, resulting in a useless error message. 3.0.0 ***** * [BREAKING] Updates to ska-oso-pdm v12.0.1 from 11.4.0. This is a breaking change for the ODA as the PDM objects are the request bodies of the ODA API. See PDM change log for details on model changes. * [BREAKING] The Postgres implementation of Repository.query now returns a list of the PDM entity, rather than a dict which has the PDM entity in the 'info' entry. * [BREAKING] Updated the Postgres tables to use ``timestamp with time zone`` rather than ``timestamp``.