This is the changelog for Infrahub. All notable changes to this project will be documented in this file.
Issue tracking is located in GitHub.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This project uses towncrier and the changes for the upcoming release can be found in https://github.com/opsmill/infrahub/tree/develop/infrahub/changelog/.
Infrahub - v1.0.10 - 2024-12-20
- Make URL fields clickable in the details view (#5005)
- Support directionality in the query to get all peer IDs for a given group of nodes (#3065)
- Fix errors when executing
infrahub db update-core-schema
command that were impacting migrations from prior versions (#5186, #5254)
Infrahub - v1.0.9 - 2024-12-13
- Adding
invoke
tasks to assist with release process. (#4519) - Add pagination and backend search in new combobox for relationships.
- Added custom Towncrier template to remove extra space after new Changelog entries.
- In schema viewer, we now display
Hierarchical
value for generics.
- Update delete constraints to correctly account for relationships on generics and relationships for which the peer kind is a generic. (#4332)
- Fix error when
pool
was used a relationship name. (#4807) - Ensure that deleted schema nodes are removed from all workers and that the schema is in sync without having to restart. (#4836)
- Consistently use "Save" on all object forms submit buttons. (#4850)
- Search shortcuts show
Cmd
on macOS andCtrl
on other systems. (#4861) - Update the parent relationship query to populate the dropdown options when editing an object, ensuring the current parent is correctly selected for the current node. (#5035)
- Correctly refresh menu after access token has expired. (#5099)
- On the object permission form, fix the name option selection when changing the namespace to get the latest options and to be able to choose a name option. (#5100)
- Prevent adding a new mandatory attribute or relationship to the schema if some nodes are already present in the database. (#5106)
- Refresh branch hash on local worker during branch create. (#5130)
- Fix uniqueness constraint check with enum based attributes. (#5132)
- Editing old
CHANGELOG.md
entries to use uniform formatting from new Towncrier template. - Store CoreProfile in database to ensure consistent initial schema hash. Prior to this the schema was reported as being out of sync when starting the application for the first time. This error wouldn't have hade any impact but was confusing. The workaround would be to load a schema or restart the application at least once after first time initialization.
- Use the branch uuid instead of the internal database id to track the hash of the schema in the cache.
Infrahub - v1.0.8 - 2024-12-03
- Add
sso_user_default_group
security setting to provide the name of a group to which SSO users will be assigned if the identity provider does not gives a list of groups to use (#4924) - Added a 'append_git_suffix' configuration setting for Git repositories that allows you to define domains for auto appending '.git' to repositories defined with an HTTP URL (#5077)
-
Loosened up logic to determine when an artifact needs to be regenerated during a proposed change. This is to ensure that we always generate a new artifact if required. Until some other parts are refactored this will also need that we will generate artifacts in a few situations where it's not strictly required. This last part is a temporary solution. (#4198)
-
Migrates from headless UI combobox to
cmdk
to resolve focus behavior issues when there is no result in the search anywhere (#4715) -
Fix GraphQL mutations to make user permissions updates work correctly
- Update the alert message to better reflect the changes (between creation and update)
- Fix the objects delete modal on the global permission view
- Fix the global permission update mutation
-
Validate that a deleted schema node is not used in any relationship when loading a new schema (#4912)
-
Set content type of artifact when rendered to fix artifact content type if artifact definition has changed (#4969)
-
Raise error if pool allocation misses data to create node (#5006)
-
Process new schema before replacing branch in registry to avoid causing the GraphQL schema to be generated while the new schema is still loading (#5008)
-
Added a check on repository import and sync to wait until the schema has converged before importing additional objects when the repository contains an updated schema (#5051)
-
Fix artifact definition targets when changed in repository so that it's reflected in the database (#5060)
-
GraphQL query with filters on attribute of type List return the expected result (#5091)
-
Prevent adding a new mandatory attribute or relationship to the schema if some nodes are already present in the database (#5106)
-
Ensure that permission queries are run in non isolated mode so that updates from the default branch are automatically reflected in other branches (#5110)
-
Add retry for transient database errors during IP reconciliation tasks
-
Corrected configuration for prefect worker to never prompt for Git credentials on the console
-
Fix artifact object relationship by enforcing it to be an artifact target
-
Fix bug in IP reconciliation query around deleted nodes and relationships
-
Fix issue that could cause diff generation to crash if a schema was renamed
-
Fixes a bug that prevented running a generator from a read-only repository
-
Generator groups are correctly created after merging a proposed change
Infrahub - v1.0.7 - 2024-11-20
- Fix permission issue with Repository management (#4976)
- Fix bug that prevented setting an attribute to NULL as part of a merge (#4996)
- Fix a bug in the query to delete a relationship that could create unnecessary "deleted" edges on the database
- Fix bug in incremental diff addition for nodes within a hierarchy
Infrahub - v1.0.6 - 2024-11-18
- Forbid changing the "optional" property of an inherited attribute to not break GraphQL schema generation (#4936)
- Permission edit_default_branch is now enforced properly when loading a schema (#4958)
- Session is now correctly cleared when logging out from the web UI (#4962)
- Anonymous user will get a 401 response when trying to load a schema
Infrahub - v1.0.5 - 2024-11-15
- Node attribute name can now be
type
(#4381)
Infrahub - v1.0.4 - 2024-11-13
- Profiles now have a Human-Friendly Identifier (HFID) defined based on
profile_name
(#4758) - Workers out of sync after deleting node from schema (#4836)
- Infrahub returns a proper error message when trying to load a schema with generic with the same Kind as an existing node (#4837)
- Default to using HTTP GET for UserInfo endpoints (OAuth2/OIDC) (#4898)
- Remove Profile in registry for renamed schema nodes (#4909)
Infrahub - v1.0.3 - 2024-11-08
- Fix hierarchical schema update logic to correctly update peer on parent relationship of new node (#4838)
- Fix hierarchical schema update logic to correctly update peer on parent of new child node (#4839)
- Define the version of numpy to install in pyproject.toml
Infrahub - v1.0.2 - 2024-11-06
- Update branch merge logic to use smaller queries outside of a transaction to allow merging a branch with many changes (#4448)
- Ensure the GraphQL query InfrahubResourcePoolUtilization works properly when the schema is different in the branch (#4761)
Infrahub - v1.0.1 - 2024-10-31
- When a user is not logged in and the branch name is not found, hide the quick-create action and display the message: 'No branch found' (#4801)
- Fix automation to trigger generation of artifacts after merging a branch (#4804)
- Avoid sending an empty list to the load schema API on repository import if it's not required
- Update demo environment to work with Infrahub 1.0
Infrahub - v1.0.0 - 2024-10-30
- Remove previously deprecated GET API endpoint "/api/schema/" (#3884)
- Marked CoreAccount.role as deprecated Due to the new permissions framework the account roles "admin" / "read-only" / "read-write" are deprecated and will be removed in Infrahub 1.1
-
Reworked branch selector:
- Redesigned the UI
- Added filter for branch
- Improved accessibility & keyboard navigation
- Improved UX on new branch form
- Added quick link to view all branches
-
Add support to sign in with OAuth2 and Open ID Connect (OIDC) (#1568)
-
Add internal HTTP adapter to allow for generic access from Infrahub (#3302)
-
Add support to search a node by human friendly ID within a GraphQL query (#3908)
-
Added link to our Discord server in the account menu
-
Added permissions framework for global and object kind level permissions
In this first iteration the object permissions are applied to nodes as a whole, in upcoming versions it will be possible to define attribute level permissions as well.
-
New permissions system in UI:
- Implemented CRUD views for managing accounts, groups, roles, and permissions
- Updated all components to support new permission system
- Added dynamic message display according to user access levels
- The
infrahub-git
agent service has been renamed totask-worker
in docker compose and the command to start it has been updated as well (#1075) - Add ability to import repositories with default branch other than 'main' (#3435)
- Disable approve/merge/close buttons for merged Proposed Changes (#3495)
- Fixed regex validation for List type attributes (#3929)
- Allow users to run artifacts and generators on nodes without name attribute (#4062)
- In the schema, properly delete inherited attribute and relationship on Node when the original attribute or relationship are being deleted on the Generic (#4301)
- "Retry All" button for checks is bigger (#4315)
- Add a size restriction on common attribute kinds. Only TextArea and JSON support large values (#4432)
- The HFID of a related node is properly returned via GraphQL in all scenarios (#4482)
- Add full validation to BranchMerge and BranchRebase mutations (#4595)
- Report user-friendly error for invalid uniqueness_constraints when loading schemas (#4677)
- Fixed pagination query for nodes with order_by clause using non unique attributes (#4700)
- Fixed schema migration when an attribute previously present on a node is added back (#4727)
- Add order_weight property to multiple attributes and relationships in the demo schema to improve how some models are displayed in the list views
- Changed the Python SDK connection timeout to 60s
- Fix metric missing the query name in Prometheus data
- Fixes an issue where docker compose would output ANSI control characters that don't support it
- Prevent temporary directories generated by Docusaurus to be imported by Docker
Infrahub - v0.16.4 - 2024-10-17
- Fixed an issue on the UI where a new relationship was being added to the main branch instead of the current branch. (#4598)
Infrahub - v0.16.3 - 2024-10-10
- Removed
infrahub.toml
configuration file from Docker builds.
- Save a diff in smaller pieces instead of all at once to prevent out-of-memory error. (#4511)
- Fixes exception handling section in the Python SDK batch guide.
Infrahub - v0.16.2 - 2024-10-01
-
Loading a schema with an invalid order_by field raise a proper error. (#4323)
-
Updates internal logic to improve performance when generating a diff.
BREAKING CHANGE: Diff data, including conflict selections, will be deleted. We recommend merging any outstanding proposed changes before upgrading to this version. (#4438)
-
Fix performance issue for GraphQL queries that only count nodes. (#4454)
-
Fix ability to construct HFID for upsert mutations where a number attribute is used. (#4460)
Infrahub - v0.16.1 - 2024-09-24
The largest change in this version is the movement of the Infrahub SDK into a separate repository and package.
Documentation for the SDK remains in the main Infrahub documentation at this time.
Developers may need to take the following steps to ensure their development environment has the proper SDK in place:
git checkout develop
git pull
rm -rf python_sdk
git submodule update --init
- Removed Python SDK from Infrahub repository and migrated to dedicated repository at https://github.com/opsmill/infrahub-sdk-python. (#4232)
-
- In list views, always show relationships of type "Parent."
- In the details view of an object, hide the "Parent" relationship if the parent is the current object itself.
(#3891)
-
Add ability to construct HFIDs from payload for upsert mutations (#4167)
-
Add HFID to schema view in the frontend (#4172)
-
Update action buttons in details view and relationships views
- in the details view, we can edit / delete the object and manage its groups
- in the relationships views, we can add new relationships (it replaces the "+" button at the bottom)
(#4362)
-
Prevent the form from being closed if there are unsaved changes. (#4419)
-
GraphQL results when querying nodes with
updated_at
named attributes will now return correct values instead of null/None (#3730) -
Loading a schema with a SchemaNode referencing an incorrect menu placement now returns a proper HTTP 422 error (#4089)
-
GraphQL mutations to update a many relationship that is required on the peer will succeed or fail with the correct error (#4124)
-
Infer human-friendly ID for a schema if it includes a uniqueness constraint of a single attribute (#4174)
-
Account for uniqueness constraints of a single attribute when validating human-friendly ID (#4181)
-
Synchronize uniqueness_constraints and unique attributes during schema processing (#4182)
-
Ensure schema uniqueness_constraints are created if they are missing and human_friendly_id has been specified for the node (#4186)
-
Deleting a node that is linked to a mandatory relationship on a generic schema will now fail with an error message (#4207)
-
Fixed incorrect consumer timeout for RabbitMQ queue infrahub.rpcs
If you are upgrading from a previous version of Infrahub and using the provided Docker Compose files you don't have to take any additional action. However if you are using your own setup for RabbitMQ you will need to manually delete the queue yourself.
Swap the container name and credentials to RabbitMQ if they are different in your setup:
docker exec -it infrahub-message-queue-1 rabbitmqadmin --username infrahub --password infrahub delete queue name=infrahub.rpcs
After this step Infrahub and the Git agents need to be restarted, when doing so the correct queue will be recreated. (#4308)
-
Add documentation links for Generator Definition and Generator Instance pages to Generator topic (#4316)
-
Hierarchical node that don't have a parent or a children defined in the schema will properly enforce that constraint (#4325)
-
Properly raise errors instead of just logging them during repository import failures so that the "sync status" gets updated even if we've caught the errors. (#4334)
-
Display label composed of an attribute of type Enum will now render correctly (#4382)
-
Removed database index in Attribute Value to attribute larger than 8167 bytes (#4399)
-
Added cancel button in repository form (#4402)
-
Fixes the tasks pagination in the proposed changes tab (#4434)
Infrahub - v0.16.0 - 2024-09-11
- Removed isolated branch information from schema topic in the documentation. (#3968)
- Allow adding multiple profiles to an object in the UI. (#3061)
- Added "disabled" attribute to accounts to allow more granular user management. (#3505)
- Added capabilities to manage API tokens in the Infrahub UI. (#3527)
- Added filtering and search to IPAM view. (#3740)
- Add number of prefixes to IPAM tree view. (#3741)
- Allow navigation to related node in list view. (#3889)
- Add support to search a node by human friendly ID within a GraphQL query. (#3908)
- Added DB migrations for objects changed to Generic type in 0.16. (#3915)
- Add clickable items in the Proposed Change list view. (#3990)
- Added the ability to filter out Infrahub internal groups. (#4027)
- Add action button to Repository objects. (#4066)
- Added documentation for creating custom Infrahub Docker images. (#4077)
- Add support for numbers bigger or smaller than signed integers. (#4179)
- Move GraphQL queries to .infrahub.yml for Repository imports. (#1938)
- Improve UI of Git repository form. (#3893)
- Consistency improvements in Repository interactions. (#4068)
- Enhancements to Repository status reporting. (#4069)
- Simplified the Repository view to only show crucial information. (#4071)
- Increased visibility during Git sync. (#4072)
- Add ability to import repositories with default branch other than 'main'. (#3435)
- SchemasLoadAPI should not inherited from SchemaRoot but from BaseModel. (#3821)
- Resolve inconsistencies when loading same schema twice. (#3892)
- HFID of a node is not properly set by
prefetch_relationship
in Python SDK. (#3900) - Comment input is not cleared upon submission of Proposed Change form. (#3942)
- Can not assign Profile when editing Node in the web UI. (#3999)
- Allow users to add a new generic to an existing node. (#4051)
- Allow users to run artifacts and generators on nodes without name attribute (#4062)
- Allow bare Git URL and automatically add
.git
. (#4070) - Schema diff view not functioning in branch detail page. (#4093)
- Removed erroneous approval button on Diff view. (#4094)
- Edit node form displays empty input field for mandatory relationship of cardinality many. (#4102)
- GraphQL query does not appear on Detail page. (#4105)
- Do not allow '/' character in repository name to avoid sync failure. (#4120)
- Can't close a comment thread on an Artifact. (#4189)
Infrahub - v0.15.3 - 2024-08-13
- Add usage of Towncrier to generate Changelog as part of the release process. For detailed information, see the Documentation. (#4023)
- Serve Swagger & Redoc files locally so that the REST-API docs work offline or when isolated from the internet. (#4063)
- Fix attribute uniqueness check that was incorrectly running against schema nodes, (#3986)
- Provide better information when available during schema conflicts in the pipeline. (#3987)
- Fix schema sync issue between worker nodes. (#3994)
- Updates the profile type select when creating a profile, to display more relevant information about the related nodes. (#4001)
- Fix logic that prevented existing inherited attribute / relationships from being updated. (#4004)
- Fix attribute uniqueness validator to not run in isolated mode. (#4025)
- Update getting-started/branches referencing the wrong org from previous step. Update getting-started/resource-manager referencing the wrong button. Regenerate the screenshots for the tutorial. (#4035)
- Fix object creation for schema node using enum attribute in uniqueness constraint groups. (#4054)