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)