Changelog

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

Unreleased

Python Version 6.0.0

  • [BREAKING] Removes backwards-compatibility shims for legacy implementation.

  • Removes unnecessary dependencies (falcon, requests, py-machine-id)

  • Adds support for Pythons 3.11-3.14, using Nox for multi-version testing.

  • Adds py.typed and complete type annotations for the library.

Javascript Version 3.0.0

  • [BREAKING] Removes mintRandIntSkuid backwards-compatibility shim.

Python Version 5.2.0

  • Adds get_scan_id() utility for generating non-SKUID 48-bit integers.

Python Version 5.1.1

  • Bugfix: Fixes entity prefix string formatting on Python >3.10.

Python Version 5.1.0

  • Adds optional Pydantic types to represent SKUIDs in models.

Javascript Version 2.0.0

  • Implementation of new Snowflake SKUID format, see ADR-129.

Python Version 5.0.0

  • Implementation of new Snowflake SKUID format, see ADR-129.

  • [BREAKING] Validation utilities enforce ADR-129 compliance.

  • Deprecates client() and mint_randint_skuid()

Javascript Version 1.1.1

  • [Javascript] Remove the use of a top level await

Javascript Version 1.1.0 + Python Version 4.1.0

  • Adds the ‘ob’ observing block prefix to both Python and JavaScript libraries.

Javascript Version 1.0.0

  • Initial release of Javascript library.

Python Version 4.0.0 ************* * Release as standalone Python library: no changes to the http service version, the CI pipeline will not publish updated OCI container. * Used ska-ser-sphinx-theme for documentation * Updated project dependencies (moved http client/server to optional sections)

Version 3.3.3

  • No functionality changes, minor lint and Dockerfile updates.

Version 3.3.2

  • No functionality changes, updated the chart version to match with the release version.

Version 3.3.1

  • No functionality changes, added acceptance tests.

Version 3.3.0

  • No functionality changes.

  • Upated repo structure and CI to be in line with SKA standards.

Version 3.2.1

Version 3.2.0

  • Resolved sphinx build issue

  • Added [eb]{.title-ref} endpoint to API for execution block

Version 3.1.0

  • Changed dependency from [ska_logging]{.title-ref} to [ska_ser_logging]{.title-ref}.

Version 3.0.0

Change packaging to use single namespace. Usage like [from from ska.skuid.client import SkuidClient]{.title-ref} changes to [from ska_ser_skuid.client import SkuidClient]{.title-ref}.

Version 2.0.0

  • Updated dependencies for client installs (default)

    • Remove [falcon]{.title-ref} dependency

    • Remove [fasteners]{.title-ref} dependency

  • Fixed SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data

  • Update docs to refer to scan ID as int

Version 1.2.0

Added support for transaction IDs.

  • SkuidClient now includes

    • [fetch_transaction_id]{.title-ref}, fetch a transaction ID from the SKUID service

      • Should the request fail, a locally generated ID will be returned

    • [get_local_transaction_id]{.title-ref}, generate a transaction ID locally

  • Added http://<server>/skuid/ska_transaction_id endpoint

Version 1.1.1

Remove src/ska/__init__.py file to comply with PEP 420 packaging.

Version 1.1.0

Modifying the SKUID format based on feedback from PI6 Demo 1. The format is now {entity_type}-{datestamp}-{generator_id}-{local_seq} (all fields delimited by -).

Additionally:

  • Standardise environment vars with SKUID_ prefix.

  • Expose the path of the backing types file as environment variable SKUID_TYPES_FILE.

  • Default its associated lockfile to be a sibling of the SKUID_CURSOR_FILE.

Version 1.0.0

The first release of the SKA Unique Identifier Service supports the following:

  • Provisioning of an SKA Unique Identifier via HTTP API:

` GET /skuid/ska_id/{entity_type}`

  • provisioning of a SKA Scan ID via HTTP API:

` GET /skuid/ska_scan_id`

- a client object to allow interaction with the above APIs by using SKUID package as a library:

`python from ska.skuid.client import SkuidClient client = SkuidClient("http://skuid-integration-test:9870") new_skuid = client.fetch_skuid('sbd') new_scan_id = client.fetch_scan_id()`

  • dynamic adding and updating of entity_types via HTTP API:

` POST /skuid/entity_types/add/{short_name}/{full_name}`

and

` GET /skuid/entity_types/get`

Added

  • Empty Python project directory structure