Main Changes
Conflict resolution for proposed changes
When working with a proposed change and there are data conflicts between the source and target branch,
the system now lets you specify how you want to resolve the conflict when merging. I.e. if you want to
keep the data from the source branch of use what's already in the target branch.
Python SDK
The Python SDK code now lives its own package and has been renamed from infrahub_client -> infrahub_sdk.
Friendlier error messages within the frontend
The frontend how displays error messages from GraphQL that are easier to understand.
Change URL schema in the frontend
The namespace of an object is now included in the URL to avoid conflicting URLs between namespaces.
Added support for loading multiple schema files and the ability to load from a git repository.
Previously you had to use the API or infrahubctl to load schema definitions into Infrahub. A third option
is now to specify these files in an external git repository. Multiple files can be specified to avoid working
with very large files for complex schemas.
Add ability to query nodes based on lineage information
Now you are able to query nodes using lineage information such as owner. So it's possible to query for
all nodes that are owned by a specific account.
Add support for specifying a UUID of nodes that are being created
Previously the ID of a node was always determined by the system, now it's possible to specify a custom uuid
when creating objects. For example when syncing from another system, it would now be possible to keep uuids
used in that other system.
Add checks for Artifact on a proposed change
When opening a proposed change the system will run checks for any artifact definitions that are defined
so that it's possible to see how a proposed change might change an artifact and also if the artifact can
be created successfully or if there is an error that should be resolved before merging.
Add ability to run checks for merge conflicts in Git
When there are repositories tied to a proposed change using non data-only branches the internal CI
system will now check if there are any merge conflicts within the git repositories that needs to be
resolved before merging the proposed change.
Add the ability to run user defined checks for a proposed change
It's possible to specify user defined checks within an external repository, these can then be executed
as part of a proposed change within the internal CI system.
Migration Guide
Rebuild the demo environment
It's mandatory to completely rebuild your demo environment with the following commands.
invoke demo.destroy demo.build demo.init demo.start
invoke demo.load-infra-schema
invoke 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 been updated to with a change to the Checks
for the internal CI system it's recommend to pull the latest changes into your fork.
Changelog
🚀 Features
- Sort branches @pa-lem (#1334)
- Move Python SDK to dedicated python package and rename module to python_sdk @dgarros (#1332)
- Add support for loading schema from a Git repository @dgarros (#1313)
- Add actions to choose a change or cancel it @pa-lem (#1318)
- Add support for Node Creation with an ID @dgarros (#1300)
- Convert schema load API to accept multiple schemas @dgarros (#1301)
- Convert Artifact to Branch.LOCAL @dgarros (#1294)
- Merge branch when proposed change state is updated to merged @ogenstad (#1286)
- Query nodes based on their Lineage information @dgarros (#1259)
- Add ability to merge branches that have deleted the same node @ogenstad (#1257)
- Fix required datetime field + add test @pa-lem (#1242)
- Ple conflicts @pa-lem (#1223)
- New artifact messages and rewriting of API logic to create artifacts @ogenstad (#1228)
- Update graphql errors @pa-lem (#1227)
- Add Validators for Artifact Checks @ogenstad (#1209)
- Change URL for the object name @pa-lem (#1195)
- Trim values in list view @pa-lem (#1208)
- Disable checks retry for unauthenticated users @pa-lem (#1190)
- Init nautobot sync for infrahub-sync @BeArchiTek (#1178)
- Add ability to run repository code checks in proposed change @ogenstad (#1156)
- Add Branch support in infrahub-sync @BeArchiTek (#1177)
🐛 Bug Fixes
- Fix token tab from profile page @pa-lem (#1321)
- Fix conflict info for relationships @pa-lem (#1320)
- Fix relationship redirection with branch context @pa-lem (#1296)
- Fix edit relationship form @pa-lem (#1295)
- Add Branch in mutation validation @BeArchiTek (#1271)
- Fix missing or wrong query names @dgarros (#1274)
- Fix metadata form and mutation + add tests @pa-lem (#1267)
- Raise NodeNotFound when local storage object does not exist @wvandeun (#1254)
- Escaped special char in path @BeArchiTek (#1251)
- fix optionnal relationship @pa-lem (#1207)
- Fix query string for artifact generation on branches @ogenstad (#1205)
- Fix generate playload sdk @BeArchiTek (#1202)
- Fix target link for groups in artifact definition @pa-lem (#1193)
- Fix construct url for relationships and groups @pa-lem (#1173)
🧰 Maintenance
- Pull from stable + frontend conflict resolution @pa-lem (#1339)
- Regenerated documentation for docs @ogenstad (#1335)
- Add missing image to create an organization @ogenstad (#1333)
- Add basic labels for our issue-template @BeArchiTek (#1325)
- Check validator conclusions before merge @ogenstad (#1305)
- Rework edge script @BeArchiTek (#1322)
- Update conflicts resolution UI @pa-lem (#1319)
- Conflict payload cleanup for data integrity checks @ogenstad (#1298)
- Update diff conflicts in diff view @pa-lem (#1312)
- Change payload for relationsip_one conflicts @ogenstad (#1303)
- Fix conflicts with new payload @pa-lem (#1311)
- Use parent mutate_create method for InfrahubRepositoryMutation class @wvandeun (#1302)
- Update Neo4j docker image to 5.13 and switch to community @dgarros (#1299)
- Remove duplicate Class Branchdata @BeArchiTek (#1289)
- Fix type hints on main graphql mutation @ogenstad (#1283)
- Upgrade gitpython=3.1.40 @ogenstad (#1285)
- Add event when a branch is deleted @ogenstad (#1287)
- removing /data and /schema endpoint @fooelisa (#1244)
- Switch to Neo4j by default for demo @dgarros (#1273)
- add branch naming documentation @morganpartee (#1272)
- Update cypress type options for proposed-changes test @pa-lem (#1279)
- Remove old authentication middleware @wvandeun (#1268)
- Stop infrahub-server and infrahub-git in demo init @BeArchiTek (#1264)
- Add database_name property to DatabaseSettings config class @wvandeun (#1258)
- Replace deprecated pkg_resources with importlib @ogenstad (#1263)
- Minor UI fixes (margins, icons sizes) @pa-lem (#1243)
- Catch database connection errors and raise Infrahub error @ogenstad (#1261)
- Rename InfrahubBaseMessage class to InfrahubMessage @wvandeun (#1253)
- Escaped special char in path @BeArchiTek (#1251)
- Add Job in GHA to run E2E tests with Neo4j as well @dgarros (#1249)
- Pull database option from environment variable to simplify how to run NEO4J @dgarros (#1237)
- Minor cleanup of messaging and git-agent & typehints @ogenstad (#1246)
- Clean up unused message code @ogenstad (#1236)
- Use bigger runner for E2E tests @dgarros (#1238)
- Convert git messages to json @ogenstad (#1226)
- Nornir unit tests @fooelisa (#1201)
- Extend schema for netbox @BeArchiTek (#1198)
- Add codespace support @BeArchiTek (#1214)
- Add more schema extension example @BeArchiTek (#1180)
- Cleanup of keys used in Redis and add tests to adapter @ogenstad (#1188)
- Convert message for git diff to json @ogenstad (#1187)
- Convert repo add to json format @ogenstad (#1184)
- adding favicon to docs @fooelisa (#1179)
- Update memgraph log level to INFO @dgarros (#1176)