Main Changes
New test framework for user defined checks
Infrahub now supports running unittests defined in external repositories as part of the CI pipeline within a proposed change.
Read only repositories
This is a new type of Infrahub Repository that allows following a single external commit, branch, or tag. A read-only repository will never push changes to the associated external Git repository and will only pull updates when requested via a GraphQL mutation. See the documentation for more details.
Object and menu search
The frontend has a new search feature that allows you to search for any object in the database, the search bar is placed in the header of the application, at the top. The sidebar menu also has a search bar to help you quickly retrieve a menu item and allows you to navigate across a large schema.
Database backup and restore
New CLI commands to backup and restore a Neo4j Infrahub database. See the documentation for more details.
Initial implementation of logging framework to track the status of background tasks
This first iteration allows for the possibility to track webhooks so that users can use the GUI to determine if all of the webhooks are working as expected. In future versions we include other components such as the syncing of repositories within this framework.
Additional controls for schema constraints
This version brings stricter control when merging branches to disallow the merging of branches if there are schema violations. It adds validations for order_by, default_filter, display_labels settings.
Initial database migrations
For now it is still required to rebuild the database between Infrahub versions as described in the migration guide below. In this version we took the first step to perform these migrations within Infrahub to allow for a simpler upgrade in the future.
Landing page
A new landing page is available to get more informations about Infrahub and its integrations. Links to the documentation are available for the main features and some help is available to get started with the product.
Renaming of Jinja2 Transforms
The new name for Jinja2 rendered content is Jinja2 Transforms. The previous name "rfile" will no longer be used.
Performance improvements
The overall performance both within the frontend as well as the backend has been significantly improved. The interface should feel a lot more responsive and the backend will respond faster than seen in previous versions.
This also includes performance improvements within the CI pipelines of a proposed change to limit the checks that are required to run. For artifact definitions Infrahub now evaluates the need to regenerate artifacts based on the diff between two branches and doesn't try to regenerate artifacts if it is clear that the operation isn't required.
Improvements to documentation
The documentation framework has been completely replaced which will make it easier to find information from within the product.
Various other improvements has been done throughout the documentation:
- Readability cleanup
- Add documentation about the format and required fields for .infrahub.yml files
- Add topic and guide for repositories
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
- Integrate tests into proposed change CI pipeline @gmazoyer (#2119)
- full database export and import @ajtmccarty (#2151)
- Add
--out
option to save output of some infrahubctl commands @gmazoyer (#2199) - Tasks in object details views @pa-lem (#2186)
- Implement hierarchical location in the demo schema @wvandeun (#2165)
- feat(backend): add more graphql prometheus metrics @fatih-acar (#2179)
- Tasks Management views @pa-lem (#2175)
- Load select options when opening the input @pa-lem (#2111)
- Migrate Infrahub Docs to Docusaurus @bilalabbad (#2142)
- Add partial_match in search @pa-lem (#2116)
- Refactor GraphQL schema generation to work without the registry @dgarros (#2112)
- new component to validate uniqueness between branches @ajtmccarty (#2029)
- Add min/max_count to RelationshipSchema (local branch) @dgarros (#2031)
- added homepage with card to help user get started @bilalabbad (#2126)
- partial_match support for GraphQL filters @ajtmccarty (#2106)
- Add standard Task node and mutation to create it @ogenstad (#2035)
- [FRONT] Search bar for sidebar menu @bilalabbad (#2068)
- Add Validation before updating Schema @dgarros (#2061)
- Building CoreGraphQLQueryGroup from SDK runs @BeArchiTek (#2028)
- Clean up the header layout and align the logo with it @bilalabbad (#2062)
- [FRONT] Infrahub Logo is embedded in a hyperlink @bilalabbad (#2060)
- update search + header + menu ui @pa-lem (#2043)
- validators for
order_by
,default_filter
,display_labels
in schema @ajtmccarty (#2018) - Search bar in header to search any objects @pa-lem (#2020)
- Initial implementation of Database migrations for the Internal Graph @dgarros (#1989)
- Display children of hierarchical node in details view tab @bilalabbad (#2022)
- Be able to use upsert from node.save in SDK @BeArchiTek (#2005)
- Enums in GraphQL API @ajtmccarty (#1730)
- Improve performance of load schema by implementing a more granular loader @dgarros (#1891)
🐛 Bug Fixes
- Add method to validate the number of members per relationship on the peer side before creating or updating a Node @dgarros (#2210)
- Fix reuse of database transaction for specialized mutations @ogenstad (#2218)
- [FIX][FRONT] consistent height row in detailed view @bilalabbad (#2169)
- Reset the timestamp before and after a mutation @dgarros (#2153)
- Fix relationships columns and queries @pa-lem (#2148)
- Fix relationships columns and code editor default value @pa-lem (#2141)
- Force regeneration of the GraphQL schema when we update the schema @dgarros (#2137)
- fix(core): avoid calling duplicate in Node/SchemaManager @fatih-acar (#2124)
- Fixes checkbox attribute type @wvandeun (#2130)
- Trim spaces before requesting search @pa-lem (#2109)
- Make transforms use the same input data format @gmazoyer (#2077)
- Fix default value for parent input during hierarchical node editing @bilalabbad (#2017)
- Revert incremental schema update from 1891 @dgarros (#2009)
🧰 Maintenance
- Refactor pipeline and enable selective artifact generation @ogenstad (#2185)
- Minor test related changes @dgarros (#2202)
- Query checks message @pa-lem (#2190)
- More docs cleanup @petercrocker (#2166)
- Move logic to connect / disconnect to RabbitMQ to adapter @ogenstad (#2189)
- Refactor 'infrahub events' to use RabbitMQ adapter @ogenstad (#2181)
- docs: add hardware requirements topic @wvandeun (#2182)
- Refactor RPC responses @dgarros (#2173)
- Add repository information to pipeline messages @ogenstad (#2174)
- Move Diff class out of branch.py, add BranchMerger class @dgarros (#2170)
- Add ability to mask passwords on events @ogenstad (#2167)
- Fix Task response edges should be an array @ogenstad (#2164)
- Remove unused CoreProposedChangeRefreshArtifacts mutation @ogenstad (#2160)
- Refactor initialization of CI pipeline @ogenstad (#2140)
- remove gitpod files and docs cleanup @petercrocker (#2149)
- chore(tests): add new benchmarks for read/get paths @fatih-acar (#2122)
- Remove deprecated checks and transforms definition @dgarros (#2120)
- Fix typehints for StandardNode Branch @ogenstad (#2103)
- Add return code for function signatures Permission checkers @ogenstad (#2104)
- Fix typing issues on GraphQL query for DiffSummary and Internal query @ogenstad (#2099)
- Remove confusing account relationship for repositories @ogenstad (#2097)
- Simplify initialization of repositories within message operations @ogenstad (#2086)
- Remove usage of apoc procedures in the scale testing framerwork to gather database metrics @wvandeun (#2096)
- fix(core): do not duplicate schema on read-only paths @fatih-acar (#2087)
- feat(ci): add backend benchmark step @fatih-acar (#2024)
- Replace registry.get_schema with registry.schema.get @dgarros (#2088)
- Remove unused code @ogenstad (#2085)
- Readme files cleanup @petercrocker (#2069)
- Add flag to SchemaBranch.get to return a schema without duplicating it @dgarros (#2063)
- Upgrade Neo4j -> 5.16 & Memgraph -> 2.14 @ogenstad (#2016)
- Add .infrahub.yml repository configuration file format documentation @wvandeun (#2047)
- Convert Override class to dataclass @ogenstad (#2051)
- Remove tutorial e2e tests from cypress and update screenshots @pa-lem (#2048)
- Fix
BaseAttributeInput
import for type checking @gmazoyer (#2041) - Fix format of markdown file in tests/benchmark and extend markdownlint to all MD files @dgarros (#2030)
- Leverage Pydantic model_copy to duplicate NodeSchema objects @dgarros (#2019)
- Rename
RFile
toJinja2Transform
in SDK test framework @gmazoyer (#2026) - repository topic and guide @ajtmccarty (#1987)
- Fix remaining instances of using default_branch_name Optional[str] @ogenstad (#2012)
- Remove GroupSchema from the Schema @dgarros (#1990)
- Correct typo in base schema @BeArchiTek (#1975)
- Rename RFile -> TransformJinja2 @ogenstad (#1952)
- Rename neo4j specific config options @gmazoyer (#1963)