Releases: opsmill/infrahub
Python SDK - Version 0.4.0
🚀 Features
- basic export command for infrahubctl @ajtmccarty (#1545)
- Add Enum and Dropdown attribute mutation methods to python_sdk @wvandeun (#1701)
- feature: Refactor Storage Engine @wvandeun (#1613)
- Add targeted checks for infrahubctl and enforce name @ogenstad (#1614)
- Python SDK : Add Fetch Relationships flag @BeArchiTek (#1507)
- Add transform rendering to infrahubctl @morganpartee (#1533)
- SDK: Add config flag to specify default branch @ogenstad (#1538)
- Python SDK :: Add functions to fetch and generate artifacts. @wvandeun (#1505)
- remove read-only attributes from mutations @ajtmccarty (#1528)
- Add support for both Pydantic v1 and v2 in the SDK @dgarros (#1426)
- 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 support for Node Creation with an ID @dgarros (#1300)
- Convert schema load API to accept multiple schemas @dgarros (#1301)
- Query nodes based on their Lineage information @dgarros (#1259)
- Modify SDK to only update changed values @ogenstad (#1009)
🐛 Bug Fixes
- Add error handling to
infrahubctl schema load
command when the provided schema path does not exist @wvandeun (#1724) - Fix functions for sync examples @ogenstad (#1002)
- fix issue in SDK when UUID was not properly used @BeArchiTek (#1569)
- Fix issue with multiple transforms @ogenstad (#1465)
- improve diff data query validation @ajtmccarty (#1412)
- Fix branch selector when deleting the currently selected one @bilalabbad (#1410)
- Catch network errors from httpx @ogenstad (#1358)
- Fix generate playload sdk @BeArchiTek (#1202)
- Fix pagination bug in SDK client @ogenstad (#1164)
🧰 Maintenance
- Add validation for URL type @ogenstad (#1699)
- Validate Python SDK with Python 3.12 @gmazoyer (#1697)
- Move Status, Role, Criticality and Organization out of the core schema @dgarros (#1603)
- (re)Build Nautobot Sync @BeArchiTek (#1552)
- Remove locust from deps and set ruff to 0.1.8 @dgarros (#1641)
- Modify Python transforms to require a name in .infrahub.yml @ogenstad (#1616)
- chore: update infrahub-sdk version from 0.2.1 to 0.3.0 @BeArchiTek (#1571)
- Refactor initialization of RabbitMQ on API server @ogenstad (#1564)
- Fix ability to run checks from infrahubctl @ogenstad (#1558)
- docs: Improve Generated Docs for the Schema @dgarros (#1520)
- Remove "repository" requirement of rfile definition @ogenstad (#1523)
- Add vale.sh to CI to validate docs grammar @ogenstad (#1530)
- Refactor Schema Validation @dgarros (#1516)
- Increase timeout to load schema to 120sec and add more logs for better troubleshooting @dgarros (#1502)
- Add missing documentation for infrahubctl and automate rendering @ogenstad (#1476)
- Update schema for Python checks in .infrahub.yml @ogenstad (#1470)
- Change logic for importing information from .infrahub.yml @ogenstad (#1417)
- Move repository check imports to .infrahub.yml @ogenstad (#1432)
- Changes to SDK recorder, enable recording of all requests regardless of configured request method @ogenstad (#1436)
- Move checks and transforms to SDK @ogenstad (#1431)
- Self host icons from iconify/mdi @bilalabbad (#1423)
- Add source and protection to the commit attribute on update @ogenstad (#1420)
- Remove import from Infrahub in infrahubctl @dgarros (#1397)
- Integrate database initialisation within Start procedure @dgarros (#1350)
- Fixes to SDK tests (db init) @ogenstad (#1355)
- Update SDK Version to 0.2.0 @dgarros (#1340)
- Remove duplicate Class Branchdata @BeArchiTek (#1289)
- Move timeout setting to Config object @ogenstad (#1126)
- Enforce authentication in SDK integration tests @ogenstad (#1078)
- Remove test_client argument and functionality from SDK @ogenstad (#986)
- Convert sdk tests to use config instead of test_client param @ogenstad (#965)
- Move the setting of the address to the config object @ogenstad (#890)
- Consolidate HTTP requests in SDK @ogenstad (#862)
Alpha #3.1 - Version 0.9.1
Main Changes
Version 0.9.1 is a small release focued on fixing bugs.
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.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
🐛 Bug Fixes
- Removed the + icon on Generic list view @bilalabbad (#1705)
- Fix empty value mutation on dropdown @bilalabbad (#1704)
- Fix comment on artifact diff @bilalabbad (#1687)
- Enable form submission via 'Enter' key press @bilalabbad (#1688)
🧰 Maintenance
Alpha #3.0 - Version 0.9.0
Main Changes
Ability to run checks on a proposed change based on a target group
With this change any check you define in an external Git repository can be tied to a group. This enables you to run the same check across all members of a group. For instance a custom check that gets executed on for all devices.
Upsert mutations
The upsert mutations allows you to update or create a resource with a single mutation. It can be useful if you are not sure if an object exists and you want to either update or create the object.
Add new attribute type: Dropdown
The dropdown works in the same way as an enum with the difference that the dropdown also supports assigning a color and description to make them stand out more. The description is visible when choosing the options, and the color will be displayed in the different views.
Add mutations and ability to add or remove enums and dropdowns as a user
A user can now add or remove enum and dropdown attribute choices using a mutation or the frontend.
Add new storage options
With the redesigned storage engine it's now possible to store artefacts in AWS S3 (or S3 compatible) aside from the local storage on disk.
Extend IPHost and IPNetwork types
Instead of just returning the ip interface (i.e., 172.16.1.1/24) or the ip network (i.e., 172.16.1.0/24) Infrahub now exposes additional options aside from value
so you can query for ip
, prefix_len
, netmask
etc. This should simplify some tasks when creating Jinja templates or Transforms.
Add markdown editor for textarea fields
A markdown editor has been added and will be used for all textarea type fields, and for comments in the proposed changes.
Migration Guide
Rebuild the demo environment
It's mandatory to completely rebuild your demo environment with the following commands.
invoke demo.destroy [demo.build](http://demo.build/) 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.
🚀 Features
- Add ability to run proposed change checks on targets @ogenstad (#1663)
- Fetch schema and schemaSummary before rendering App @bilalabbad (#1662)
- Upsert mutations @ajtmccarty (#1611)
- Add and remove options from dropdown and enum @pa-lem (#1635)
- Create a dedicated python package for infrahub-sync @dgarros (#1640)
- Add priorities to messages within RabbitMQ @ogenstad (#1632)
- feature: Refactor Storage Engine @wvandeun (#1613)
- Optimize schema fetching, only when hash changes @bilalabbad (#1622)
- Using Jotai for currentBranch state management @bilalabbad (#1618)
- Extend IPHost & IPNetwork return values @BeArchiTek (#1598)
- Add targeted checks for infrahubctl and enforce name @ogenstad (#1614)
- All Textarea supports Markdown and have an editor @bilalabbad (#1565)
- Refactor scheduling service @ogenstad (#1575)
- Core egine :: implement filters with multiple values @wvandeun (#1560)
- Add new dropdown for items with color and description @pa-lem (#1561)
- Add support for Directional Relationship @dgarros (#1517)
- Python SDK : Add Fetch Relationships flag @BeArchiTek (#1507)
- Add ability to modify enums in the schema @ogenstad (#1531)
- Add transform rendering to infrahubctl @morganpartee (#1533)
- SDK: Add config flag to specify default branch @ogenstad (#1538)
- Related objects creation on the fly @pa-lem (#1532)
- Python SDK :: Add functions to fetch and generate artifacts. @wvandeun (#1505)
- remove read-only attributes from mutations @ajtmccarty (#1528)
- Add Helm Chart for infrahub @BeArchiTek (#1485)
- Support Markdown in TextArea field @bilalabbad (#1492)
- Add dropdown kind, an enum type with extra options @ogenstad (#1504)
- Add new api endpoints to retrieve partial schema for the frontend @dgarros (#1498)
- Add IPHost query type and add ability to query for host_address @ogenstad (#1483)
- Indicate if a field is unique on UI @bilalabbad (#1471)
- Add support for both Pydantic v1 and v2 in the SDK @dgarros (#1426)
- Read only attributes @pa-lem (#1434)
- Cancel an open or closed proposed change if a branch is deleted @ogenstad (#1404)
- Add read-only attribute to schema @ogenstad (#1407)
- Adds password reset view from user profile @pa-lem (#1421)
🐛 Bug Fixes
- Fix flaky E2E test tutorial-1 @bilalabbad (#1606)
- fix issue in SDK when UUID was not properly used @BeArchiTek (#1569)
- Fix several bugs on comments on proposed changes' files @bilalabbad (#1544)
- Self-update mutation @ajtmccarty (#1490)
- Fix one flaky test (tuto 1) and skip another one (relationships) @pa-lem (#1521)
- fix typo isOptionnal > isOptional @bilalabbad (#1488)
- Fix issue with multiple transforms @ogenstad (#1465)
- Fix relationship counter's update when adding or deleting one @bilalabbad (#1453)
- Debounced time selector @pa-lem (#1440)
- Reload menu on branch change @pa-lem (#1442)
- Delete relationships @pa-lem (#1439)
- improve diff data query validation @ajtmccarty (#1412)
- Fix branch selector when deleting the currently selected one @bilalabbad (#1410)
- Fix: Delete generics (UI) @pa-lem (#1427)
🧰 Maintenance
- Update screenshots @pa-lem (#1668)
- Use dropdown in demo @BeArchiTek (#1619)
- Using Jotai for datetime state management @bilalabbad (#1657)
- Move Status, Role, Criticality and Organization out of the core schema @dgarros (#1603)
- Update TS types from OpenAPI schemas @bilalabbad (#1650)
- (re)Build Nautobot Sync @BeArchiTek (#1552)
- Minor upgrades of dependencies in pyproject.toml @dgarros (#1642)
- Docs: Add howto guide for Python transforms @ogenstad (#1626)
- Remove locust from deps and set ruff to 0.1.8 @dgarros (#1641)
- Update Neo4j to 5.14 @dgarros (#1629)
- Update memgraph to 2.13 @dgarros (#1630)
- docs :: update infrahub_sdk installation instructions @wvandeun (#1617)
- Docs: Fix broken headers in reference @ogenstad (#1621)
- Update InfraRack schema to use Dropdown for status and role @dgarros (#1602)
- Modify Python transforms to require a name in .infrahub.yml @ogenstad (#1616)
- Move color selection to schema process() @ogenstad (#1607)
- Improved App first load: remove duplicate schema fetch and unused atom @bilalabbad (#1549)
- Update Jotai to latest version (2.6.0) @bilalabbad (#1608)
- Add message to sync repositories and change schedule of git agent @ogenstad (#1599)
- Add mutations to add & remove Dropdown choices @ogenstad (#1572)
- Add namespace information to schema API @ogenstad (#1562)
- chore: update infrahub-sdk version from 0.2.1 to 0.3.0 @BeArchiTek (#1571)
- docs: add docs guide @markmichon (#1491)
- docs(fix): update build and serve tasks @markmichon (#1574)
- Refactor initialization of RabbitMQ on API server @ogenstad (#1564)
- Fix ability to run checks from infrahubctl @ogenstad (#1558)
- Cleanup of git-agent move rabbit logic to the adapter @ogenstad (#1542)
- docs: Improve Generated Docs for the Schema @dgarros (#1520)
- Mutation change for account self udpate @pa-lem (#1535)
- Remove "repository" requirement of rfile definition @ogenstad (#1523)
- docs(fix): fix release note titles @markmichon (#1529)
- Add vale.sh to CI to validate docs grammar @ogenstad (#1530)
- docs: additional style and consistency updates @markmichon (#1519)
- docs: add vale and markdown configurations @markmichon (#1518)
- Add GraphQLQueryAnalyzer to auth validation @ajtmccarty (#1437)
- Fix cypress typing @pa-lem (#1527)
- Increase cypress timeout @pa-lem (#1524)
- Refactor Schema Validation @dgarros (#1516)
- Change URL slugs for SDK documentation @ogenstad (#1511)
- Split apart exclusions for mypy @ogenstad (#1510)
- Add CI job to ensure that automated documentation is up to date @ogenstad (#1501)
- Increase timeout to load schema to 120sec and add more logs for better troubleshooting @dgarros (#1502)
- Update CI @BeArchiTek (#1493)
- Remove serve.log from excluded mypy checks @ogenstad (#1487)
- docs: docs cleanup for consistency @markmichon (#1479)
- Move generation of all automated documentation to one command @ogenstad (#1482)
- Minor cleanup of how services are initialized @ogenstad (#1481)
- Add missing documentation for infrahubctl and automate rendering @ogenstad (#1476)
- Update schema for Python checks in .infrahub.yml @ogenstad (#1470)
- Reactivate coverage report for CTL @ogenstad (#1468)
- added test e2e for profile page @bilalabbad (#1478)
- Fix typehints for infrahub.storage @ogenstad (#1469)
- Update memgraph version to 2.12.1 and re-enable E2E tests with memgraph @dgarros (#1443)
- Change logic for importing information from .infrahub.yml @ogenstad (#1417)
- Move repository check imports to .infrahub.yml @ogenstad (#1432)
- Initialize git-agent with services object @ogenstad (#1433)
- Add InfrahubLogger object to services @ogenstad (#1429)
- Changes to SDK recorder, enable recording of all requests regardless of configured request method @ogenstad (#1436)
- docs(fix): update infrahub-cli output path @markmichon (#1425)
- Move checks and transforms to SDK @ogenstad (#1431)
- Self host icons from iconify/mdi @bilalabbad (#1423)
- some fixes/updates for tutorial pages @ajtmccarty (#1413)
- Add source and protection to the commit attribute on update @ogenstad (#1420)
- Fix type hints for checks and transforms @ogenstad (#1405)
- Minor cleanup for handling menu titles @ogenstad (#1406)
- Add CI step for documentation @ogenstad (#1418)
- docs: Update organization and structure @markmichon (#1414)
- Update labels and descriptions @pa-lem (#1411)
- Update favicons @pa-lem (#883)
- Remove import from Infrahub in infrahubctl @dgarros (#1397)
Alpha #2.1 - Version 0.8.2
Main Changes
Redesigned menu
The 0.8.2 version is a facelift release, the menu on the sidebar has been redesigned. Infrahub now lets you can specify what the objects menu should look like and what models to include based on configuration within the schema. You can define a parent object within the menu and set the icon to use. The infrastructure example schema has been updated to use this feature.
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.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
- Do not query value for hashed password + use password field @pa-lem (#1369)
- Hide passsword @pa-lem (#1356)
- Ple menu @pa-lem (#1353)
🐛 Bug Fixes
- Fix to get the commit id of the repo from the branch @ogenstad (#1394)
- Fix error with unbound branch variable when syncing git @ogenstad (#1390)
- fix pagination labels @pa-lem (#1380)
- Catch network errors from httpx @ogenstad (#1358)
- Fix new value colour for diff view @pa-lem (#1359)
- Fix ability to merge git branches without data changes @ogenstad (#1347)
🧰 Maintenance
- Update icon for password in details values and trim the actual value if needed @pa-lem (#1393)
- Audit fix package at root level @pa-lem (#1391)
- Add section for proposed changes in the docs @ogenstad (#1372)
- Use labels in the menu if available and hide accordion icons @ogenstad (#1379)
- Proposal for icons @BeArchiTek (#1374)
- update icons for password field @pa-lem (#1375)
- Udpate packages @pa-lem (#1370)
- Add or correct type hints @ogenstad (#1365)
- Add ability to control menu placements from within schema @ogenstad (#1357)
- Integrate database initialisation within Start procedure @dgarros (#1350)
- Fixes to SDK tests (db init) @ogenstad (#1355)
- chore: add label for internal tooling @BeArchiTek (#1352)
- Remove ability to trigger checks on non open proposed changes @ogenstad (#1348)
- Fix typo repositoryy -> repository @ogenstad (#1349)
- Change Repository password from kind test -> password @ogenstad (#1346)
- Add /api/menu to define the sidebar menu in the frontend @ogenstad (#1345)
Alpha #2 - Version 0.8.1
Alpha #2 - Version 0.8.0
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)
0.7.2 - Alpha #1.2
Main changes
Version 0.7.2 is a small bugfix release
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.
Changelog
🚀 Features
🐛 Bug Fixes
0.7.1 - Alpha #1.1
Main changes
Cookie Based authentication
Cookie based authentication makes it easier to use the GraphQL playground as you don't need to setup your token each time, once you have logged in an authentication cookie will be used automatically within the GraphQL environment.
General speedups when creating new branches and schema models
In the previous version when creating a new branch you would have to wait on a loading screen before everything was successfully created, this process is a lot faster now.
Nornir inventory plugin
An Inventory plugin for Nornir allows you to populate a Nornir inventory with data from Infrahub.
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 include some Artifact Definition.
it's recommend to pull the latest changes into your fork.
Changelog
🚀 Features
- Update e2e test to use organization @pa-lem (#1133)
- expand branch name regex to allow git ref names @morganpartee (#1012)
- Infrahub Nornir inventory plugin @wvandeun (#694)
- Add ability to get a single branch from the SDK. @ogenstad (#1125)
- Add cookie auth support @morganpartee (#1055)
- Fetch logout endpoint when logging out @pa-lem (#1109)
- Ple proposed changes diff updates @pa-lem (#1107)
- Refactor Branch Rebase @dgarros (#1097)
- Proposed change redirection after creation @pa-lem (#1096)
- Datetime UI update @pa-lem (#1094)
- Add events to trigger actions in all workers based on changes @ogenstad (#1064)
🐛 Bug Fixes
- Add ability to get a single branch from the SDK. @ogenstad (#1125)
- Fix field warning with relationship many (value as array) @pa-lem (#1065)
🧰 Maintenance
- Add RPCError exception for more detailed errors from RPC @ogenstad (#1139)
- Convert message to get file from git to json format @ogenstad (#1128)
- Refactor Schema Registry @dgarros (#1114)
- Refactor git worktree to use the internal id instead of the name to create a branch worktree @dgarros (#1122)
- Remove auth feature flag @pa-lem (#1120)
- Add state field to ProposedChange @ogenstad (#1123)
- Move timeout setting to Config object @ogenstad (#1126)
- Add display labels to all CoreCheck and CoreValidator @dgarros (#1124)
- Update no data + error screens @pa-lem (#1118)
- Remove "diff" query from GraphQL app @ogenstad (#1115)
- Update schema diff endpoint @pa-lem (#1110)
- Rework creation of branches in repositories @ogenstad (#1111)
- Impose query limit for internal queries and properties @ogenstad (#1108)
- Cleanup of StandardNode and add support for Dict attribute @dgarros (#1100)
- Convert transform from pickle to json @ogenstad (#1105)
- Add Serialize on IPNetwork and IPHost @BeArchiTek (#1093)
- Update the way we wait after object creation / deletion @pa-lem (#1062)
- Finalize restructure of documentation URL scheme @ogenstad (#1099)
- Upgrade Neo4j to 5.11 @dgarros (#1091)
- Rename "branch" query to "Branch" @dgarros (#1089)
- Enforce authentication in SDK integration tests @ogenstad (#1078)
- add * for requireed fields and refactor props @pa-lem (#1090)
- Metadata e2e @pa-lem (#1076)
- Fix frontend vulnerabilities @pa-lem (#1066)
- Add ability to use JSON payload for RPC responses from the Message Bus @ogenstad (#976)
- Change URL structure in docs to remove number prefixes @ogenstad (#1068)
0.7.0 - Alpha #1
Main Changes
Proposed Change
A Proposed Change provides a single workflow to integrate the changes from a given branch into the main branch.
It is the equivalent of a Pull Request or a Merge Request for Infrahub.
When a user is ready to integrate their change into the main branch, they can create a Proposed Change.
The Proposed Change panel groups all information related to the change and it will allow other members of the team to review and comment the changes as needed.
Information related to a change:
- Data changes (diff)
- Files changes (diff)
- Artifacts changes (diff)
- Schema changes (diff)
- Checks results
- Peer Review
- Discussions
Artifacts
An artifact is the result of a Transformation for a specific context and/or object, it can have different format either in plain text or JSON.
An artifact improve the Transformation by providing the following additional features:
- Caching : Generated Artifact are stored in the internal object storage. For a resource intensive Transformation, it will significantly reduce the load of the system if an artifact can be serve from the cache instead of regenerating each time.
- Traceability : Past values of an artifact remains available. In a future release, it will be possible to compare the value of an artifact over time.
- Peer Review : Artifacts are automatically part of the Proposed Change review process
While the content of an artifact can change, its identifier will remain the same over time.
Support for branch agnostic and branch local models
It's now possible to define in the schema how a given model, attribute or relationship should behave regarding the branches.
By default, all models defined in the schema will be branch aware which means that any changes to an object based on a branch aware model will be applied only to the branch and can be integrated into the main branch via a Propose Change.
It's now possible to also configure a model, an attribute or a relationship as :
- branch agnostic: All changes to an object based on a branch agnostic model will automatically be available in all branches.
- branch local: All changes will stay local to the branch. A model in branch local mode will not be affected by the Diff and the Merge.
Object Storage
A new object store has been introduced to easily store and retrieve files in an object storage. The object storage interface is independent of the branches.
Currently only a local backend is supported but the goal over time is to support multiple backend like AWS S3 to allow users to select where they would like their files to be stored.
Python SDK
The Python SDK now support more granular queries by introducing the support for include
and exclude
parameters on all methods to query objects from Infrahub.
Architecture Change
Several changes to the Architecture have been introduced to prepare the deployment of Infrahub in a production environment:
- The frontend container has been removed and the frontend is now being served from the same endpoint as the backend (http://localhost:8000 by default).
- It's now possible to run multiple Git Agents, to increase the number of asynchronous tasks that Infrahub can process at the same time. To support that a new cache container has been introduced.
Other Changes
- Add OpenTelemetry
- Add GraphQL Query Analyzer @dgarros (#966)
- Replace graphql playground with Graphiql @morganpartee (#1024)
- Add Links in the footer
- Convert all UUID to Temporal UUID @dgarros (#936)
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 include some Artifact Definition.
it's recommend to pull the latest changes into your fork.
Changelog
🚀 Features
- Modify SDK to only update changed values @ogenstad (#1009)
- Add GraphQL query for DiffSummary @ogenstad (#993)
- Add validators and checks @pa-lem (#990)
- Add checks for merge conflicts in git repositories @ogenstad (#988)
- Add comments for the diff view @pa-lem (#971)
- Adds the ability to generate artifacts related to a proposed change @ogenstad (#962)
- Update UI from new diff endpoint @pa-lem (#944)
- Add support for Distributed Lock based on Redis @dgarros (#937)
- Add checks to proposed change @ogenstad (#908)
- Add support for Global branch @dgarros (#906)
- Rebuild monitoring stack @BeArchiTek (#907)
- Expose data conflicts in the API @ogenstad (#833)
- Add artifacts details view to display file content @pa-lem (#877)
- Add recorder and playback features to the SDK @ogenstad (#874)
- Create proposed changes from branch details view @pa-lem (#861)
- Replace id with ids in relationship filters @dgarros (#868)
- Files diff comments @pa-lem (#855)
- Add proposed changes list + details + conversations @pa-lem (#845)
- Update GraphQL filters to include Relationship with Generic @dgarros (#844)
- Add support for Attribute of Type JSON @dgarros (#841)
- Add support for password based authentication to the SDK @ogenstad (#836)
- Refactor to_graphql to return all attributes by default if no field have been provided @dgarros (#840)
- Add initial parts of proposed change schema @ogenstad (#815)
- Add count pills for groups @pa-lem (#813)
🐛 Bug Fixes
- Fix tooltips display + delay @pa-lem (#1029)
- Remove disclosure component and use custom one @pa-lem (#1023)
- Diff responsive UI @pa-lem (#1011)
- Fix approve mutation + add merge button @pa-lem (#1004)
- Artifacts diff url @pa-lem (#1005)
- Abort merge if the operation wasn't successful @ogenstad (#980)
- Validate values during creation of attributes @ogenstad (#942)
🧰 Maintenance
- Modify Data Integrity check to report progress @ogenstad (#1041)
- Change rpc callback function to be async @ogenstad (#1016)
- Restrict available namespaces for user schemas @ogenstad (#995)
- Exclude Checks and Validators from the menu and rename Blacklist to Excludelist @dgarros (#984)
- Remove test_client argument and functionality from SDK @ogenstad (#986)
- Update demo data to add some conflicts @dgarros (#985)
- Define enums as known objects and move to constants.py @ogenstad (#969)
- Move data validation checks into git-agent @ogenstad (#974)
- Fix to return value for type hinting of artifact generation @ogenstad (#959)
- Modifications to service object to ease testing @ogenstad (#964)
- Convert sdk tests to use config instead of test_client param @ogenstad (#965)
- Use memgraph-platform for the dev environment @dgarros (#963)
- Wait mutation in E2E test for tuto 1 @pa-lem (#958)
- Add additional messages for checks @ogenstad (#953)
- Update UI from new diff endpoint @pa-lem (#944)
- Convert check_type to enum @ogenstad (#951)
- Make tokens branch agnostic @ogenstad (#940)
- Github Actions : Add timeout values and remove always() @dgarros (#938)
- Convert AccountProfile, Branch and Relationship mutation names to CamelCase @dgarros (#934)
- Various changes related to docker in CI @dgarros (#914)
- Upgrade memgraph to version 2.10 @dgarros (#849)
Others
- add branchupdate mutation and test @morganpartee (#1026)
- remove graphql playground, update to graphiql @morganpartee (#1024)
- Add label to Validator and Check @dgarros (#1008)
- Artifacts updates (buttons, clipboard, links) @pa-lem (#1027)
- Init Opentelemetry Traces @BeArchiTek (#982)
- Add artifacts generate buttons, fix responsive, update file view @pa-lem (#1025)
- Add infrahub-demo-edge repository to demo instance in CI @dgarros (#1018)
- Fix functions for sync examples @ogenstad (#1002)
- Updated schema for Validator and Check @dgarros (#973)
- Rename Check to CheckDefinition and add targets and parameters @dgarros (#954)
- Use execute_command in demo.test-unit @dgarros (#939)
- Update format of the new diff api to convert action and display_label to dict @dgarros (#922)
- Handle JSON values @pa-lem (#870)
- Fix ids filter in queries @pa-lem (#872)
- Add uuidt to Python SDK @dgarros (#829)
0.6.1
🚀 Features
🐛 Bug Fixes
- Fix boolean input in create/edit forms @pa-lem (#831)
- Fix select 2 step for add relationship + change relationship mutation @pa-lem (#830)
- Fix number input to return value as number @pa-lem (#816)
- Fix button index for add relationship @pa-lem (#811)
- Fix generator for Repository mutation @ogenstad (#825)