Skip to content

Releases: opsmill/infrahub-sdk-python

Version 1.3.0

30 Dec 14:51
712079b
Compare
Choose a tag to compare

1.3.0 - 2024-12-30

Added

Testing library (Alpha)

A new collection of tools and utilities to help with testing is available under infrahub_sdk.testing.

The first component available is a TestInfrahubDockerClient, a pytest Class designed to help creating integration tests based on Infrahub. See a simple example below to help you get started.

the installation of infrahub-testcontainers is required

import pytest

from infrahub_sdk import InfrahubClient
from infrahub_sdk.testing.docker import TestInfrahubDockerClient

class TestInfrahubNode(TestInfrahubDockerClient):

    @pytest.fixture(scope="class")
    def infrahub_version(self) -> str:
        """Required (for now) to define the version of infrahub to use."""
        return "1.0.10"

    @pytest.fixture(scope="class")
    async def test_create_tag(self, default_branch: str, client: InfrahubClient) -> None:
        obj = await client.create(kind="BuiltinTag", name="Blue")
        await obj.save()
        assert obj.id

Changed

  • The Pydantic models for the schema have been split into multiple versions to align better with the different phase of the lifecycle of the schema.
    • User input: includes only the options available for a user to define (NodeSchema, AttributeSchema, RelationshipSchema, GenericSchema)
    • API: Format of the schema as exposed by the API in infrahub with some read only settings (NodeSchemaAPI, AttributeSchemaAPI, RelationshipSchemaAPI, GenericSchemaAPI)

Fixed

  • Fix behaviour of attribute value coming from resource pools for async client (#66)
  • Convert import_root to a string if it was submitted as a Path object to ensure that anything added to sys.path is a string
  • Fix relative imports for the pytest plugin, note that the relative imports can't be at the top level of the repository alongside .infrahub.yml. They have to be located within a subfolder. (#166)

Version 1.2.0

19 Dec 17:50
Compare
Choose a tag to compare

1.2.0 - 2024-12-19

Added

  • Add batch feature, that uses threading, to sync client (#168)
  • Added InfrahubClient.schema.in_sync method to indicate if a specific branch is in sync across all worker types
  • Added Python 3.13 to the list of supported versions

Fixed

  • Fix an issue with with infrahubctl menu load that would fail while loading the menu

Version 1.1.0

28 Nov 15:27
079ab59
Compare
Choose a tag to compare

1.1.0 - 2024-11-28

Added

  • Added InfrahubClient.schema.wait_until_converged() which allows you to wait until the schema has converged across all Infrahub workers before proceeding with an operation. The InfrahubClient.schema.load() method has also been updated with a new parameter "wait_until_converged".

Fixed

  • CTL: schema load return a proper error message when authentication is missing or when the user doesn't have the permission to update the schema. (#127)
  • CTL: List available transforms and generators if no name is provided (#140)

Version 1.1.0rc0

26 Nov 19:59
beda19e
Compare
Choose a tag to compare
Version 1.1.0rc0 Pre-release
Pre-release

1.1.0rc0 - 2024-11-26

This is a Release Candidate/Preview release for Version 1.1.0.

Fixed

  • CTL: schema load return a proper error message when authentication is missing or when the user doesn't have the permission to update the schema. (#127)
  • CTL: List available transforms and generators if no name is provided (#140)

Version 1.0.1

12 Nov 10:19
d601580
Compare
Choose a tag to compare

1.0.1 - 2024-11-12

Removed

  • Removed previously deprecated InfrahubTransform.init() method

Deprecated

  • Marked InfrahubCheck.init() as deprecated and scheduled to be removed in Infrahub SDK 2.0.0

Added

  • Adds groups.group_add_subscriber function to add a subscriber to a group.
  • Adds order_weight property to AttributeSchema and RelationSchema classes.

Fixed

  • Fix generated GraphQL query when having a relationship to a pool node (#27)
  • CTL: Fix support for relative imports for transforms and generators (#81)
  • Fixes issues where InfrahubClient was not properly configured for a branch when running the infrahubctl transform, infrahubctl check and infrhubctl generator commands. (#133)
  • Fixes an issue where a generator would not return any output if there are no members in the generator's target group.

Detailed Changelog

Full Changelog: v1.0.0...v1.0.1

Version 1.0.0

31 Oct 14:59
b5acff9
Compare
Choose a tag to compare

1.0.0 - 2024-10-31

Removed

  • Breaking change: Removed all exports from infrahub_sdk/init.py except InfrahubClient, InfrahubClientSync and Config. If you previously imported other classes such as InfrahubNode from the root level these need to change to instead be an absolute path.

Added

  • Add support for specific timeout per request on InfrahubClient and InfrahubNode function calls. (#25)
  • Added infrahubctl menu command to load menu definitions into Infrahub

Fixed

  • Fix SDK playback hash generation to read the correct filename (#64)
  • CTL: Return friendly error on encoding violations when reading files. (#102)
  • Changed the default connection timeout in the SDK to 60s.
  • Fixes an issue where InfrahubClient was not properly URL encoding URL parameters.

Detailed Changelog

Full Changelog: v0.14.1...v1.0.0

Version 0.14.1

22 Oct 11:46
ceb4d73
Compare
Choose a tag to compare

0.14.1 - 2024-10-22

Fixed

  • Make infrahubctl transform command set up the InfrahubTransform class with an InfrahubClient instance (#8)
  • Command infrahubctl protocols now supports every kind of schema attribute. (#57)

Version 0.14.0

04 Oct 16:38
656b382
Compare
Choose a tag to compare

0.14.0 - 2024-10-04

Removed

  • Removed depreceted methods InfrahubClient.init and InfrahubClientSync.init (#33)

Changed

  • Query filters are not validated locally anymore, the validation will be done on the server side instead. (#9)

  • Method client.get() can now return None instead of raising an exception when raise_when_missing is set to False

    response = await clients.get(
        kind="CoreRepository", name__value="infrahub-demo", raise_when_missing=False
    )
    ``` ([#11](https://github.com/opsmill/infrahub-sdk-python/issues/11))

Fixed

  • prefix and address attribute filters are now available in the Python SDK (#10)
  • Queries using isnull as a filter are now supported by the Python SDK (#30)
  • execute_graphql method for InfrahubClient(Sync) now properly considers the default_branch setting (#46)

Version 0.13.1

24 Sep 19:15
f2a19e0
Compare
Choose a tag to compare

0.13.1 - 2024-09-24

Added

  • Allow id filters to be combined when executing a query (#3)

Fixed

  • Add ability to construct HFIDs from payload for upsert mutations (#45)
  • Fix pytest plugin integration tests unable to run because we were not properly setting the api_token configuration setting for the SDK.