Releases: opsmill/infrahub
Python SDK - v0.12.1
🚀 Features
New command to add a repository with infrahubctl
by @fatih-acar in #3883
infrahubctl repository add demo-edge https://github.com/opsmill/infrahub-demo-edge --read-only
Full Changelog: python-sdk-v0.12.0...python-sdk-v0.12.1
Infrahub - v0.15.1
🚀 Features
Multi profiles
We can now select multiple profiles when creating and editing an object.
The profile_priority
value from the profile schema is used to understand which value is used for the fields (the lower the number is, the higher the priority is).
Generic relationship select
The select for a generic relationship has been fixed to properly reset the value when changing the kind or the parent.
The parent is also not showing "Unknown" after choosing an object.
The parent select is also now hidden if it's not available.
It's displayed and available only of the kind selected can point to an object which we can filter depending on its parent.
🐛 Bug Fixes
- Fix disabling fields when it is protected and owned by another user by @bilalabbad in #3838
- Generic selector fixes to correctly reset values when changing kind or object by @pa-lem in #3837
🧰 Maintenance
- Hides parent field if not available in generic relationship select by @pa-lem in #3861
- Add missing overview docs pages by @petercrocker in #3856
- Add option to fetch peers nodes in query_peers by @dgarros in #3870
Full Changelog: infrahub-v0.15.0...infrahub-v0.15.1
Python SDK - Version 0.12.0
Changelog
Warning
This release drops the support for Pydantic version 1.
🚀 Features
- Add infrahubctl command to export Python protocols @gmazoyer (#3705)
- Add methods to fetch allocated details of pools @gmazoyer (#3673)
🐛 Bug Fixes
🧰 Maintenance
- Add Core to restricted namespaces @ogenstad (#3306)
- Remove unneeded
url
parameter fromdecode_json
@gmazoyer (#3723) - Fix Ruff UP006: Use X instead of Y for type annotation @gmazoyer (#3707)
- Properly set default value for mode in Config @ogenstad (#3704)
- Fix security issues in
urllib3
@ogenstad (#3685) - Fix Ruff command to produce correct exit code @ogenstad (#3668)
- Drop Pydantic v1 support in Python SDK @gmazoyer (#3622)
infrahub-v0.15.0
Release 0.15.0
We are thrilled to announce the latest release of Infrahub (0.15).
This release focuses on enhancing the user experience and laying the groundwork for future features.
Main changes
Unified storage
Profiles enhancements
- You can now create profiles on a Generic, in addition to Nodes.
- A node inheriting from multiple Generics can utilize any profiles associated with these Generics.
- Introduced a new attribute
generate_profile
in the schema for more precise control over which nodes should have profiles generated or supported. - Profiles have been disabled on most core models.
Schema
Schema Validation
Added a new validation to ensure schemas do not require relationships to one another. This will prevent incompatible schemas from being loaded in the future.
Frontend
Tree view for hierarchical model
All hierarchical models will now display a tree view in the frontend to simplify navigation across the tree.
Hierarchical dropdowns for relationships to parent/component models
When a relationship references a peer model with a parent (identified by a parent relationship), the form will automatically display multiple dropdown fields—one for the parent and one for the object itself, filtered by parent.
Refactor form components
The form component in the frontend has been refactored to provide a better foundation for future features that could not be supported by the previous version.
Helm Chart
Upstream charts
The official helm chart to deploy Infrahub now leverages the upstream charts for Neo4j, Redis, and RabbitMQ instead of defining these components directly. This approach provides more flexibility and allows us to use pod settings such as pod affinity.
Infrahub Sync
Integration with IP Fabric
Added the initial version of the Infrahub Sync adapter for IP Fabric.
Other
Support for isnull
filter for attributes and relationships
In most GraphQL queries, it’s now possible to search for objects based on the absence of an attribute or a relationship using the new isnull filter. For example, the following query returns all groups that have a parent group defined:
As an example the following query will return all groups that have a parent group defined.
query {
CoreGroup(parent__isnull: false){
edges {
node {
display_label
}
}
}
}
Dedicated search anywhere query in GraphQL
The search anywhere bar in the frontend now leverages a dedicated GraphQL query.
This new query can search for objects by their UUID, improving search results.
Generate Protocol for Core models
Protocol for the internal models have been introduced to improve typing and type checking across the backend.
Drop support for Pydantic V1 & Python 3.9
Internally, Infrahub no longer support Python 3.9 and Pydantic v1.
Demo Environment
Cleanup and performance improvement
The script infrastructure_edge.py used to load data in the demo environment has been cleaned up to improve readability and performance. Demo in codespace should start faster now.
New Services models
A new service model has been added to the demo schema
Migration Guide
To migrate your instance of Infrahub to the latest version, please run the following commands and restart all instances of Infrahub.
infrahub db migrate
infrahub db update-core-schema
if you are running in docker these commands need to run from the container where Infrahub is installed
Migration of the demo instance
If you are using the demo environment, you can migrate to the latest version with the following commands
invoke demo.stop
invoke demo.build
invoke demo.migrate
invoke demo.start
If you don't want to keep your data, you can start a clean instance with the following command
invoke demo.destroy demo.build demo.start demo.load-infra-schema demo.load-infra-data
All data will be lost, please make sure to backup everything you need before running this command.
The repository https://github.com/opsmill/infrahub-demo-edge has also been updated, it's recommended to pull the latest changes into your fork.
🚀 Features
isnull
filter for relationships and attributes on backend @ajtmccarty (#3717)- Add tree navigation on hierarchical model @bilalabbad (#3732)
- Added Layout for object details page + hooks useObjectDetails @bilalabbad (#3727)
- Hierarchical dropdowns update to hide parent and node fields + use clear labels @pa-lem (#3712)
- Added Layout for /objects routes + hooks useObjectItems @bilalabbad (#3725)
- Add model for number pool @ogenstad (#3667)
🐛 Bug Fixes
- Validate if an attribute
default_value
matches its kind @gmazoyer (#3735) - set branch for Nodes returned by NodeListGetInfoQuery @ajtmccarty (#3720)
- Filters update removes pagination offset @pa-lem (#3739)
🧰 Maintenance
- add label for ProfileSchemas @ajtmccarty (#3724)
- Add kind filter in generic view @pa-lem (#3708)
- Add Core to restricted namespaces @ogenstad (#3306)
- Migrate core models to pydantic v2 @ogenstad (#3542)
- Fix typehints in graphql.types.node @ogenstad (#3715)
- Fix Ruff UP006: Use X instead of Y for type annotation @gmazoyer (#3707)
- Remove quotes from type annotation (fix UP037) @ogenstad (#3714)
Python SDK - Version 0.12.0 - Beta 1
Note
This is a pre-release of Infrahub Python SDK 0.12.0.
Changelog
Warning
This release drops the support for Pydantic version 1.
🚀 Features
- Add infrahubctl command to export Python protocols @gmazoyer (#3705)
- Add methods to fetch allocated details of pools @gmazoyer (#3673)
🐛 Bug Fixes
🧰 Maintenance
- Add Core to restricted namespaces @ogenstad (#3306)
- Remove unneeded
url
parameter fromdecode_json
@gmazoyer (#3723) - Fix Ruff UP006: Use X instead of Y for type annotation @gmazoyer (#3707)
- Properly set default value for mode in Config @ogenstad (#3704)
- Fix security issues in
urllib3
@ogenstad (#3685) - Fix Ruff command to produce correct exit code @ogenstad (#3668)
- Drop Pydantic v1 support in Python SDK @gmazoyer (#3622)
Infrahub v0.15.0-beta1
🚀 Features
isnull
filter for relationships and attributes on backend @ajtmccarty (#3717)- Add tree navigation on hierarchical model @bilalabbad (#3732)
- Added Layout for object details page + hooks useObjectDetails @bilalabbad (#3727)
- Hierarchical dropdowns update to hide parent and node fields + use clear labels @pa-lem (#3712)
- Added Layout for /objects routes + hooks useObjectItems @bilalabbad (#3725)
- Add model for number pool @ogenstad (#3667)
🐛 Bug Fixes
- Validate if an attribute
default_value
matches its kind @gmazoyer (#3735) - set branch for Nodes returned by NodeListGetInfoQuery @ajtmccarty (#3720)
- Filters update removes pagination offset @pa-lem (#3739)
🧰 Maintenance
- add label for ProfileSchemas @ajtmccarty (#3724)
- Add kind filter in generic view @pa-lem (#3708)
- Add Core to restricted namespaces @ogenstad (#3306)
- Migrate core models to pydantic v2 @ogenstad (#3542)
- Fix typehints in graphql.types.node @ogenstad (#3715)
- Fix Ruff UP006: Use X instead of Y for type annotation @gmazoyer (#3707)
- Remove quotes from type annotation (fix UP037) @ogenstad (#3714)
Version 0.14.2 - Open Beta Maintenance
Changelog
🚀 Features
🐛 Bug Fixes
- Fix querying resource pool with resources not in active branch @gmazoyer (#3660)
- Validate
member_type
forIPPrefixPoolGetResource
@gmazoyer (#3671) - Behaviour update for boolean attributes @pa-lem (#3656)
- Make node manager
find_object
behaviour consistent @gmazoyer (#3651) - Branch details updates @pa-lem (#3644)
- Empty option in select correctly sends null in the mutation @pa-lem (#3639)
- Allow use of
from_pool
for Relationship create mutation @gmazoyer (#3602) - Resolve relationship when computing HFID @gmazoyer (#3610)
Python SDK - Version 0.11.1
Version 0.14.1 - Open Beta Maintenance
Changelog
Version 0.14.1 is maintenance release with minor fixes.
🧰 Maintenance
- Add db-retry decorator for IPAM mutations @ogenstad (#3569)
- Update oneliner docker-compose @BeArchiTek (#3570)
- Add description to resource pool default_prefix_length attribute @ogenstad (#3533)
- Remove outdated development docs index page @ogenstad (#3544)
- Add prefix length to IP prefix sorting properties @gmazoyer (#3526)
- Fields description in question mark @pa-lem (#3528)
- Fix select 2 steps options when the schema is not found @pa-lem (#3509)
- Update demo-container url @BeArchiTek (#3513)
- Update screenshots in getting started tutorial @wvandeun (#3514)
- Add resource manager documentation @wvandeun (#3464)
- Add inheritance topic docs @BeArchiTek (#3493)
Python SDK - Version 0.11.0
Changelog
🚀 Features
- Add HFID support @gmazoyer (#3327)
- Add client store by HFID @gmazoyer (#3369)
- Add resource pools support @gmazoyer (#3402)
- Remove support for non-isolated branch @dgarros (#3365)
- Add TLS config options @fatih-acar (#3321)
- Do not generate node ID locally @gmazoyer (#3303)
- Handle token refresh on expired signature @gmazoyer (#3200)
🐛 Bug Fixes
🧰 Maintenance
- Update schema for IP Prefix Pool and IP Address Pool @dgarros (#3468)
- Add a
decode_json
function that can fail instead of assuming success @ogenstad (#3427) - Update vulnerable version of requests @ogenstad (#3389)
- Add license Information @dgarros (#3336)
- Enable ruff PTH linter @gmazoyer (#3204)
- Update SDK README and links @petercrocker (#3273)
- Update Ruff @ogenstad (#3268)