Main Changes
Hierarchical mode
It's now possible to organize some nodes of similar types in a hierarchy or a tree, to enable additional capabilities.
As an example:
Groups
can be organized in a hierarchy by default which makes it possible to query the members of all sub-groups at once.- Assuming we have defined a
Person
object connected to aCity
object, which itself is part of a hierarchy ofLocation
(Region
>Country
>City
) , it will be possible to query allPerson
perCountry
or perRegion
natively without having a direct relationship betweenPerson
andCountry
New Infrahub test framework
As a platform, Infrahub provides multiple ways for a user to extend the capabilities of the platform by providing different type of resources.
Developing and maintaining these resources over time can be time consuming and challenging, this is why we did our best to provide the right tools and helpers to make it as easy as possible for someone to create and maintain these resources.
The framework is based on Pytest and introduces a new pytest plugin pytest-infrahub
(part of the SDK), in this first version the Framework support unit tests for RFile and PythonTransform. IN the next release we'll add support for all type of resources and sanity and integration tests as well.
Schema
Support both Node-level and Generic-level uniqueness for attributes
Now, multiple classes can inherit from the same generic, with attributes that are unique across all sub-classes.
API and GraphQL
Access the version of infrahub
Now, you can query the Infrahub version directly through our GraphQL API:
query {
InfrahubInfo {
version
}
}
Integration and deployment
Add support for webhooks
You are now able to configure a new webhook and track the execution of all webhooks via the frontend and via GraphQL.
Please note that the current version supports only POST requests and does not yet provide the ability to send a list of headers or specify events to subscribe to.
New codespace config file to launch a barbone version of Infrahub
Previously, the codespace configuration we had in automatically launching Infrahub and loading the demo schema & data.
We added a new configuration file that will start a barebone version of infrahub by default. You will be able to configuration files under /.devcontainer
folder.
UX improvements
Infrahub is now faster than ever! We've optimized the frontend, bid farewell to unnecessary reloads and loaders, and introduced features for a smoother user experience:
- List rows can be opened in a new tab
- Browser tab titles indicate your current view for easy navigation.
- Display the version of infrahub into the UI
- On branch detail view, "contribute" button was renamed to "Proposed change"
New UI components
form
- List Input: A new input specifically designed for attributes of type
List
. - Color Picker: Introducing a color picker input for attributes of type
Color
.
list view
- Display attributes of kind
Color
Overall improvements to documentation
Explore our upgraded docs now! 📚
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.
🚀 Features
- List input component by @pa-lem in (#1782)
- Allow user to open table row in a new tab by @bilalabbad in (#1787)
- when deleting branch, page does not reload by @bilalabbad in (#1792)
- Tab titles by @pa-lem in (#1801)
- App version display by @pa-lem in (#1806)
- Update docs by @BeArchiTek in (#1773)
- Add support for webhooks by @ogenstad in (#1784)
- Add section in schema docs about menu placement and icon by @dgarros in (#1812)
- Generic-level uniqueness by @ajtmccarty in (#1823)
- Add initial version of the test framework by @dgarros in (#1818)
- Adds a new color picker for color inputs by @pa-lem in (#1834)
- Add InfrahubInfo graphql query by @gmazoyer in (#1838)
- Add GraphQLQueryGroup to track all nodes associated with a given GraphQLQuery by @dgarros in (#1742)
- Development setup doc by @gmazoyer in (#1798)
- Add creating an artifact guide to documentation by @wvandeun in (#1852)
- Added documentation and guideline for frontend setup and testing @bilalabbad (#1856)
🐛 Bug Fixes
- fix commenting on data diff by @bilalabbad in (#1749)
- when switching branch, fixed object paginated list from blinking by @bilalabbad in (#1752)
- Branches options and avatar loader by @pa-lem in (#1760)
- Textarea and list display in details view by @pa-lem in (#1764)
- display Generics with cardinality one in object details view by @bilalabbad in (#1765)
- Fix dropdown scroll preventing click on delete button + css cleaning by @bilalabbad in (#1774)
- Dropdown data in relationships view by @pa-lem in (#1805)
- Address conflicts with attribute or relationship names by @gmazoyer in (#1837)
- Adds generics in the schema kind name mapping to fix tab titles by @pa-lem in (#1867)
- Added documentation and guideline for frontend setup and testing by @bilalabbad in (#1856)
🧰 Maintenance
- Reenable artefact test and use InfrahubService instead of rpcclient mapping @ogenstad (#1895)
- Refreshing of JWT access tokens is transparent for users by @bilalabbad in (#1753)
- Remove mentions of isort and black by @ogenstad in (#1761)
- Set message meta to not be optional by @ogenstad in (#1757)
- Delete unused query NodeListGetLocalAttributeValueQuery by @dgarros in (#1768)
- Use memgraph as the default database in Codespace by @dgarros in (#1769)
- Corrections to typehints in server code by @ogenstad in (#1763)
- Split devcontainer by @BeArchiTek in (#1781)
- Move infrahub devonctainer by @BeArchiTek in (#1783)
- Replace default logger with structlog and various cleanup by @dgarros in (#1771)
- Removed Useless Handlebars CDN Script from index.html by @bilalabbad in (#1793)
- Move infrahubctl into SDK folder by @ogenstad in (#1762)
- Added e2e test for alert when there is a request failing by @bilalabbad in (#1775)
- Components folder update by @pa-lem in (#1785)
- Playwright timeout update by @pa-lem in (#1795)
- Increased timeout to fix flakiness on E2E test by @bilalabbad in (#1789)
- Run CI E2E tests only on Memgraph by @bilalabbad in (#1800)
- Fixes links in object details and relationships views by @pa-lem in (#1804)
- Add rich's
inspect
for debug by @gmazoyer in (#1803) - Add a timeout of 1s when running demo.destroy to speed up containers tear down by @dgarros in (#1808)
- Comment reset after submit in proposed changes by @pa-lem in (#1811)
- Replace RabbitMQ publish call from InfrahubRpcClient by @ogenstad in (#1816)
- Proposed changes details refetch by @pa-lem in (#1815)
- Rename contribute to Propose change by @pa-lem in (#1820)
- Move RabbitMQ subscription logic away from git-agent CLI by @ogenstad in (#1821)
- Hide BuiltinRole and BuiltinStatus in menu by @BeArchiTek in (#1826)
- Remove AbstractExchange from InfrahubRpcClient by @ogenstad in (#1824)
- Added E2E test with playwright on doc's getting started by @bilalabbad in (#1777)
- Add markdown lint by @BeArchiTek in (#1828)
- Moved Playwright into /tests/e2e folder by @bilalabbad in (#1845)
- Remove aio_pika.abc.AbstractMessage from InfrahubMessage by @ogenstad in (#1841)
- Add unittest for openapi spec generation by @ogenstad in (#1850)
- Groups views use the main component for list and details by @pa-lem in (#1859)
- Convert InfrahubMessages to Pydantic v2 by @ogenstad in (#1888)
- Add InfrahubKinds module defining core model kind constants by @wvandeun in (#1809)
- Password is optional when editing an account by @pa-lem in (#1870)
- Add custom webhooks & add signatures to standard webhooks by @ogenstad in (#1849)
- Fixed React fast refresh by @bilalabbad in (#1873)
- Add scale testing framework by @wvandeun in (#1840)
- Add support for Hierarchical Model by @dgarros in (#1817)
- Add build step when we start a new codespace by @dgarros in (#1874)
- Update tutorial documentation by @fatih-acar in (#1876)
- SDK test framework improvements by @gmazoyer in (#1858)
- Fix generation of artifacts within proposed changes by @ogenstad in (#1886)
- Fix idempotency issue for Dropdown choices by @dgarros in (#1880)
- Reenable artefact test and use InfrahubService instead of rpcclient mapping by @ogenstad in (#1895)
- Update jinja2 & gitpython by @ogenstad in (#1893)
- Get the right columns for both attributes and relationships in the different views (#1857)