infrahub-server 1.1.5__py3-none-any.whl → 1.1.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. infrahub/api/oidc.py +1 -0
  2. infrahub/core/attribute.py +4 -1
  3. infrahub/core/branch/tasks.py +7 -4
  4. infrahub/core/diff/calculator.py +21 -39
  5. infrahub/core/diff/combiner.py +11 -7
  6. infrahub/core/diff/coordinator.py +49 -70
  7. infrahub/core/diff/data_check_synchronizer.py +86 -7
  8. infrahub/core/diff/enricher/aggregated.py +3 -3
  9. infrahub/core/diff/enricher/cardinality_one.py +1 -6
  10. infrahub/core/diff/enricher/labels.py +13 -3
  11. infrahub/core/diff/enricher/path_identifier.py +2 -8
  12. infrahub/core/diff/ipam_diff_parser.py +1 -1
  13. infrahub/core/diff/merger/merger.py +5 -3
  14. infrahub/core/diff/merger/serializer.py +15 -8
  15. infrahub/core/diff/model/path.py +42 -24
  16. infrahub/core/diff/query/all_conflicts.py +5 -2
  17. infrahub/core/diff/query/diff_get.py +19 -23
  18. infrahub/core/diff/query/field_specifiers.py +2 -0
  19. infrahub/core/diff/query/field_summary.py +2 -1
  20. infrahub/core/diff/query/filters.py +12 -1
  21. infrahub/core/diff/query/has_conflicts_query.py +5 -2
  22. infrahub/core/diff/query/{drop_tracking_id.py → merge_tracking_id.py} +3 -3
  23. infrahub/core/diff/query/roots_metadata.py +8 -1
  24. infrahub/core/diff/query/save.py +148 -63
  25. infrahub/core/diff/query/summary_counts_enricher.py +220 -0
  26. infrahub/core/diff/query/time_range_query.py +2 -1
  27. infrahub/core/diff/query_parser.py +49 -24
  28. infrahub/core/diff/repository/deserializer.py +74 -71
  29. infrahub/core/diff/repository/repository.py +119 -30
  30. infrahub/core/node/__init__.py +6 -1
  31. infrahub/core/node/constraints/grouped_uniqueness.py +9 -2
  32. infrahub/core/node/ipam.py +6 -1
  33. infrahub/core/node/permissions.py +4 -0
  34. infrahub/core/query/diff.py +223 -230
  35. infrahub/core/query/node.py +8 -2
  36. infrahub/core/query/relationship.py +2 -1
  37. infrahub/core/query/resource_manager.py +3 -1
  38. infrahub/core/relationship/model.py +1 -1
  39. infrahub/core/schema/schema_branch.py +16 -7
  40. infrahub/core/utils.py +1 -0
  41. infrahub/core/validators/uniqueness/query.py +20 -17
  42. infrahub/database/__init__.py +13 -0
  43. infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -2
  44. infrahub/dependencies/builder/diff/coordinator.py +0 -2
  45. infrahub/git/integrator.py +10 -6
  46. infrahub/graphql/mutations/computed_attribute.py +3 -1
  47. infrahub/graphql/mutations/diff.py +28 -4
  48. infrahub/graphql/mutations/main.py +11 -6
  49. infrahub/graphql/mutations/relationship.py +29 -1
  50. infrahub/graphql/mutations/tasks.py +6 -3
  51. infrahub/graphql/queries/resource_manager.py +7 -3
  52. infrahub/permissions/__init__.py +2 -1
  53. infrahub/permissions/types.py +26 -0
  54. infrahub/proposed_change/tasks.py +6 -1
  55. infrahub/storage.py +6 -5
  56. {infrahub_server-1.1.5.dist-info → infrahub_server-1.1.7.dist-info}/METADATA +41 -7
  57. {infrahub_server-1.1.5.dist-info → infrahub_server-1.1.7.dist-info}/RECORD +64 -64
  58. infrahub_testcontainers/container.py +12 -3
  59. infrahub_testcontainers/docker-compose.test.yml +22 -3
  60. infrahub_testcontainers/haproxy.cfg +43 -0
  61. infrahub_testcontainers/helpers.py +85 -1
  62. infrahub/core/diff/enricher/summary_counts.py +0 -105
  63. infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -8
  64. {infrahub_server-1.1.5.dist-info → infrahub_server-1.1.7.dist-info}/LICENSE.txt +0 -0
  65. {infrahub_server-1.1.5.dist-info → infrahub_server-1.1.7.dist-info}/WHEEL +0 -0
  66. {infrahub_server-1.1.5.dist-info → infrahub_server-1.1.7.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: infrahub-server
3
- Version: 1.1.5
3
+ Version: 1.1.7
4
4
  Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
5
5
  Home-page: https://opsmill.com
6
6
  License: AGPL-3.0-only
@@ -58,16 +58,46 @@ Project-URL: Documentation, https://docs.infrahub.app/
58
58
  Project-URL: Repository, https://github.com/opsmill/infrahub
59
59
  Description-Content-Type: text/markdown
60
60
 
61
- <!-- markdownlint-disable -->
62
- ![Infrahub Logo](docs/static/img/infrahub-hori.svg)
63
- <!-- markdownlint-restore -->
61
+ <h1 align="center">
62
+ <a href=""><img src="docs/static/img/infrahub-hori.svg" alt="Infrahub" width="350"></a>
63
+ </h1>
64
+ <h3 align="center">Simplify Infrastructure Automation</h2>
64
65
 
65
- # Infrahub
66
+ <p align="center">
67
+ <a href="https://www.linkedin.com/company/opsmill">
68
+ <img src="https://img.shields.io/badge/linkedin-blue?logo=linkedin"/>
69
+ </a>
70
+ <a href="https://discord.gg/opsmill">
71
+ <img src="https://img.shields.io/badge/Discord-7289DA?&logo=discord&logoColor=white"/>
72
+ </a>
73
+ </p>
66
74
 
67
- Infrahub from [OpsMill](https://opsmill.com) is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run. Infrahub offers a central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities of Git with the flexible data model and UI of a graph database.
75
+ Infrahub from [OpsMill](https://opsmill.com) is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run. Infrahub offers a central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities similar to Git with the flexible data model and UI of a graph database.
76
+
77
+ If you just want to try Infrahub out, you can use our [Always-On Sandbox](https://demo.infrahub.app/) to get started.
68
78
 
69
79
  ![infrahub screenshot](docs/docs/media/infrahub-readme.gif)
70
80
 
81
+ ## Why Use Infrahub?
82
+
83
+ **Unified Source of Truth** - Infrahub is a single source of truth for all your infrastructure and network data. It provides a unified view of your infrastructure, allowing you to manage your infrastructure in a more efficient and effective way. Infrahub allows unidirectional and bi-directional [data synchronization](https://docs.infrahub.app/sync/sync/) between other internal systems and Infrahub. The data can be accessed via WebUI, API and SDK, along with SSO and RBAC for access control.
84
+
85
+ **Flexible Schema** - Infrahub provides a flexible schema for your infrastructure data and related business information, allowing you to define your own data model and customize it to your needs. Get started quickly with our [schema library](https://github.com/opsmill/schema-library) or build your own.
86
+
87
+ **Version Control** - Infrahub provides a version control system for your infrastructure data, allowing you to track changes and revert to previous versions if needed. Immutable history of all changes to the data and artifacts is maintained, allowing you to audit and review changes to your infrastructure.
88
+
89
+ **CI Pipeline and Validation** - Infrahub provides a CI pipeline and validation system for your infrastructure data, allowing you to ensure that your infrastructure is always in a valid state. Infrahub was designed with infrastructure-as-code workflows in mind, removing fragility and complexity of combining together multiple tools and projects to achieve the same goal.
90
+
91
+ ## Infrahub Use Cases
92
+
93
+ **Service Catalog** - Infrahub acts as the underlying system to provide infrastructure-as-a-service, allowing you to manage your services and lifecycle them as the services evolve.
94
+
95
+ **Infrastructure Automation** - Provide infrastructure and network automation workflows with Infrahub rendering configurations and artifacts via Jinja2 and python,then passing to deployment tools such as [Nornir](https://www.opsmill.com/simplifying-network-automation-workflows-with-infrahub-nornir-and-jinja2/), [Ansible](https://docs.infrahub.app/ansible/ansible/), Terraform, or vendor-specific tools.
96
+
97
+ **Inventory Management** - Infrahub serves as a centralized inventory system for your infrastructure, allowing you to manage your inventory and track changes to your infrastructure. It provides a WebUI and API for other teams to self-service the information needed to allow the organization to operate.
98
+
99
+ **DCIM and IPAM** - Infrahub provides centralized DCIM and IPAM systems for your infrastructure, capable of handling complex cases such as overlapping IP addresses and VLANs, automation-friendly, branch-aware allocation of resources via Infrahub's [Resource Manager](https://docs.infrahub.app/python-sdk/guides/resource-manager), and more.
100
+
71
101
  ## Quick Start
72
102
 
73
103
  [Always-On Sandbox](https://demo.infrahub.app/) - Instantly login to the UI of a demo environment of Infrahub with sample data pre-loaded.
@@ -94,7 +124,11 @@ If you need help, support for the community version of Infrahub is provided on [
94
124
 
95
125
  ## Contributing
96
126
 
97
- [View our CONTRIBUTING](./CONTRIBUTING.md) policy to get started on contributing to Infrahub.
127
+ To help our community with the creation of contributions, please view our [CONTRIBUTING](./CONTRIBUTING.md) page.
128
+
129
+ <a href="https://github.com/opsmill/infrahub/graphs/contributors">
130
+ <img src="https://contrib.rocks/image?repo=opsmill/infrahub" />
131
+ </a>
98
132
 
99
133
  ## Security
100
134
 
@@ -12,7 +12,7 @@ infrahub/api/file.py,sha256=FnjXkQdSBThnNNYk8CMboEx_935pR1U6aHT0jxA0AdU,2258
12
12
  infrahub/api/internal.py,sha256=jBZ3mbnsACdkJt0QJNcEb2tKHqm6NkqNrGIBWNFdFF0,5124
13
13
  infrahub/api/menu.py,sha256=xp5bj5JXQZA6ZEPWoTSGGSfTXZ1sVmehMxr3VSG7FlQ,1216
14
14
  infrahub/api/oauth2.py,sha256=9rOAM2DPvuS25lHPc6M2YRx0Aso1NDHqqk62SevnMpE,5517
15
- infrahub/api/oidc.py,sha256=cMxGM8uf3in656X3OMUyMI6ES8iAn7ypLck4LSXoBV0,8236
15
+ infrahub/api/oidc.py,sha256=NbLeygC6R9FWXz4CeuFOVjH9rr_07T8PCVTGlguFCnY,8323
16
16
  infrahub/api/query.py,sha256=uZ93JJpaLzj9Y3O6IzxFGasLY26XTHLlyrwIJHd_kyg,6976
17
17
  infrahub/api/schema.py,sha256=1IS6H03fplhkyXa9v0uADiIhz1bad04L95xStNGb1sY,16611
18
18
  infrahub/api/static/redoc.standalone.js,sha256=77kGx7mVN9EcdER2ZM4gQ-E-ra_N6AZq9QseAeD6kt0,1042008
@@ -36,12 +36,12 @@ infrahub/computed_attribute/tasks.py,sha256=rzzWBKrmCQ_ZXJ4Uv5XE7IDhdx39I0_HwyDT
36
36
  infrahub/config.py,sha256=DQFXa6e6nbW6McdLVViuCcKYlGjw9ytmYDsKU5l-Jdo,33605
37
37
  infrahub/core/__init__.py,sha256=z6EJBZyCYCBqinoBtX9li6BTBbbGV8WCkE_4CrEsmDA,104
38
38
  infrahub/core/account.py,sha256=sggpuO_QpwYH7wXG_lZDnrB5Izmej486o_CYiYjYin8,26497
39
- infrahub/core/attribute.py,sha256=sDhl2BBoX_Q3BR6v8lZE85j5wIuXvswATiCC57tPoqU,42045
39
+ infrahub/core/attribute.py,sha256=H0vHLoNlp1KHI2Jw-Ti5FLmlwJqpYDcv4-9o3K1AsR8,42150
40
40
  infrahub/core/branch/__init__.py,sha256=h0oIj0gHp1xI-N1cYW8_N6VZ81CBOmLuiUt5cS5nKuk,49
41
41
  infrahub/core/branch/constants.py,sha256=RJxn6dPZGXrnkmOYcRkx6h7IYFp_RCOgoupj1BrBmOQ,112
42
42
  infrahub/core/branch/flow_models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  infrahub/core/branch/models.py,sha256=dX37fBbHA84WS7Se2nwSwvOyF4bZVVzZ3oXsV46x-so,19607
44
- infrahub/core/branch/tasks.py,sha256=JgjwBafBfn2CdTLr93dP6zVxqoJnAbY4FdXACrNJMdU,18448
44
+ infrahub/core/branch/tasks.py,sha256=88u1PGAuSDaQFDjxdiAUX7XVjn5sSfvio24qlWaxjoA,18667
45
45
  infrahub/core/constants/__init__.py,sha256=CWAeCuj5sPjJMmCK1l3bniRT_s2dEHAOJ7tny9RqpKM,6864
46
46
  infrahub/core/constants/database.py,sha256=lxesWX2z6SZgGok1bAY6_pCBm5rFfu7k4ayMBr6w_Vo,336
47
47
  infrahub/core/constants/infrahubkind.py,sha256=UVPYZdsUDjG0LvfCLgKdnJC12dFlpCC6YH2Mp-N7Zp4,2378
@@ -54,53 +54,53 @@ infrahub/core/diff/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
54
54
  infrahub/core/diff/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  infrahub/core/diff/artifacts/calculator.py,sha256=qk1DspB3bkKeWJFesLbmziCALVnbRadjrez1kn_IZWU,4435
56
56
  infrahub/core/diff/branch_differ.py,sha256=9W9ZClBAQffcZWZOsRekzf4XOG9W_G-1jCR68uvfhPQ,7820
57
- infrahub/core/diff/calculator.py,sha256=UHzWOaxFUau8m4C58D-7w_JXjq5hJW59btWPNia55wE,8499
58
- infrahub/core/diff/combiner.py,sha256=k28aIP4vwCB-57fTPR37nFzUUtmj9qieH5Y_4iO6HX0,22811
57
+ infrahub/core/diff/calculator.py,sha256=1kGY-Pgp2ji4hg2KKWOcFXo3f5vmBuCcxSLRhZK1tD0,7250
58
+ infrahub/core/diff/combiner.py,sha256=bIAkgs92RHbmqc0T2HjYuZM7zhg6k7SCQN5ytpkFPC0,22950
59
59
  infrahub/core/diff/conflict_transferer.py,sha256=LZCuS9Dbr4yBf-bd3RF-9cPnaOvVWiU3KBmmwxbRZl0,3968
60
60
  infrahub/core/diff/conflicts_enricher.py,sha256=x6qiZOXO2A3BQ2Fm78apJ4WA7HLzPO84JomJfcyuyDg,12552
61
61
  infrahub/core/diff/conflicts_extractor.py,sha256=HysGoyNy9qMxfQ0Lh4AVZsRpHUBpezQNUa8cteVLb2k,9715
62
- infrahub/core/diff/coordinator.py,sha256=ngEeLTvQQ4qq0fJV_-xB8k21p9xJbQ3Ljow01Rr5m64,27707
63
- infrahub/core/diff/data_check_synchronizer.py,sha256=WTY3xwZMTOwWmdmTxYxx6T1WTWmuoUo6QAX1WKoPqBY,5202
62
+ infrahub/core/diff/coordinator.py,sha256=Gk9j9im6oQ_EEznw6XgJGARLOzUJwSA9vgO8GKKIaXw,25879
63
+ infrahub/core/diff/data_check_synchronizer.py,sha256=g2Indp5Yw0FZon1pCzSopZQ5i_HLvCtlzcnIlYFb5X0,9138
64
64
  infrahub/core/diff/enricher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- infrahub/core/diff/enricher/aggregated.py,sha256=1T-19FYAefSQRcfH2nDZN3Y6qqj3oba209Bjutsgqh8,731
66
- infrahub/core/diff/enricher/cardinality_one.py,sha256=N8RpTV9VaYV5Z9zgFVB90buRwR2cBK7_tCbnWQcwKuE,6795
65
+ infrahub/core/diff/enricher/aggregated.py,sha256=-LnAeNKDo6mifjL3d3ylCg1A9dTZJBySngWPeF7DfrY,793
66
+ infrahub/core/diff/enricher/cardinality_one.py,sha256=tuefTG0zIHUm-VwgIwTBEQyW76xJlcstNAEa-bwnmQU,6597
67
67
  infrahub/core/diff/enricher/hierarchy.py,sha256=Ey3PIRzResW6d5ovhHVrilmyQ2ZfuRZQIk0vatYIozY,7032
68
68
  infrahub/core/diff/enricher/interface.py,sha256=pmbWFPONRznDcAPMchVIRm0cTqMThkkwCby8XVLjGWU,265
69
- infrahub/core/diff/enricher/labels.py,sha256=9dD11moB8IxEzhGckKN5Ag83egmYV1XvpoLBe58Wglg,9168
70
- infrahub/core/diff/enricher/path_identifier.py,sha256=EtCF3OAr_z3C5lXifurkaZeDDWZFPQi6HgFEfwCzxwc,3570
71
- infrahub/core/diff/enricher/summary_counts.py,sha256=CheM-Fcla1-_CrU056Z_f6dcT090MIKDyvDuapF0db0,4807
69
+ infrahub/core/diff/enricher/labels.py,sha256=yOqd7-j7QtHsRgMnE0pS25M_okuDFPt5wCTNoYHmdhg,9804
70
+ infrahub/core/diff/enricher/path_identifier.py,sha256=6PE-PCf-7fvetScs1vDDSxwnXPRfqa5bvYV9BzFxKbc,3195
72
71
  infrahub/core/diff/exceptions.py,sha256=R-i0mnzNwmHH9HQ1C7YAfL6tys-CbwQCIwTTmjfF_BM,546
73
- infrahub/core/diff/ipam_diff_parser.py,sha256=5kLJqo_sv9cp84KeFp0ZHUl1sHWXybl704eKNOTTT4A,6580
72
+ infrahub/core/diff/ipam_diff_parser.py,sha256=HSqo1KUF9UZVruZ-AD8Koc24pEzqE1nNh8oMoCostSA,6620
74
73
  infrahub/core/diff/merger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- infrahub/core/diff/merger/merger.py,sha256=tifn1difKENlB3OI0nGNY3QmGV0lKUUEbfBwKK3Blqs,3408
74
+ infrahub/core/diff/merger/merger.py,sha256=XrVCIsj7HWl-xXr0d-RFwSRi96QUsjFLWlWWH2RiQPM,3422
76
75
  infrahub/core/diff/merger/model.py,sha256=z1pjX0SXvZkqCqdcUKae73v6eEBrjUNotnkx0noe2wc,742
77
- infrahub/core/diff/merger/serializer.py,sha256=JIRCdUPwcKN-2eHa6-uKSKHGruvjM-FmSSjNkByG7m4,18157
76
+ infrahub/core/diff/merger/serializer.py,sha256=b6tSOkSkBTuxfKutHnSZGkC0_-PMitA9Im7f8RV4pDc,18410
78
77
  infrahub/core/diff/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
78
  infrahub/core/diff/model/diff.py,sha256=EM9yIkZauSeNP13RXn0RSz7IAdGOqUv3-QKJyAEfsD8,9589
80
- infrahub/core/diff/model/path.py,sha256=eWSx3XnoJUijPdWH-EQg36bzyEBgD7o90_I8yv7xyOE,29339
79
+ infrahub/core/diff/model/path.py,sha256=1GBG8lQcUiCeqavRDGi8muyeJU1M8TYQtAsmHwsymLk,29825
81
80
  infrahub/core/diff/models.py,sha256=wmOzW4xQ5YreDCr_i56YMFtxbM4-LRgZort49fGJ0BQ,441
82
81
  infrahub/core/diff/payload_builder.py,sha256=fzti6hA6bAWRySS3Y2fSoOhNwvQjeSRfyB76Dl6BkVg,1742
83
82
  infrahub/core/diff/query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- infrahub/core/diff/query/all_conflicts.py,sha256=OO_LmfuVOG0Ook7_MKGqEVs1ftWXtRWtq8wVsFBUu9Y,3024
83
+ infrahub/core/diff/query/all_conflicts.py,sha256=PIFQIU3uGHJx6GB9Fm_wwDjZX5U1J1yYBMf6Atesa24,3091
85
84
  infrahub/core/diff/query/artifact.py,sha256=tC2KYdCcxAjrMmLMjfwg3SwEiptxA5DrFjOCYkUXNQc,8815
86
85
  infrahub/core/diff/query/delete_query.py,sha256=MKB-vaUByt8TbI1yyq_amk9FHhjnAAlY_BBi4MnrrFk,844
87
- infrahub/core/diff/query/diff_get.py,sha256=pCyfBcr67UrRVMTKV4Pqmp_81u8mVFeIuS9TEBVs12E,7514
86
+ infrahub/core/diff/query/diff_get.py,sha256=eUk4EhSx8kHxiHQnJoKSS0rVdfhtn-658GKw_AtE73E,7467
88
87
  infrahub/core/diff/query/diff_summary.py,sha256=u3SkPQYa7SPreZ2_JHk4SPOS829MVa3rt-RZG908QAE,3825
89
- infrahub/core/diff/query/drop_tracking_id.py,sha256=qu0-SdCDL0Lwf-0mKuBihGXOkfpMXOAm-_PkWtk_Tz0,816
90
- infrahub/core/diff/query/field_specifiers.py,sha256=h-UP10pY0CCaJRb_pPzp1x8eLqwAKHP9-cMib-wvz2w,1402
91
- infrahub/core/diff/query/field_summary.py,sha256=V8kvRAnL7MLPAmesCbar1GU5XJtZ7rZp8n8kI0Krv0k,3091
92
- infrahub/core/diff/query/filters.py,sha256=eNx1pWddWlNd1jkylCLRLto-0qxovEG-CBGftDZE8VU,3343
88
+ infrahub/core/diff/query/field_specifiers.py,sha256=trua1xJ-p_IhzZLoXc_8N9fGU2pSk3s_k57l2L8lcm0,1524
89
+ infrahub/core/diff/query/field_summary.py,sha256=ZXYxX5f-nJ0rG_ZzfSxmF01OmkBYdSj34Xt6sfBl078,3164
90
+ infrahub/core/diff/query/filters.py,sha256=HnbeTo3W2n0gQcKYM4my7sQ0Syoj7aPy5WFkVp38qLc,3646
93
91
  infrahub/core/diff/query/get_conflict_query.py,sha256=fXJNx5hiZW3NLAbGITvC-iuRDhRkXFhLF3oRTOzgEqM,876
94
- infrahub/core/diff/query/has_conflicts_query.py,sha256=-KtuKVwoA5b21xilB3DIBbPqO9_pro3U0TSTpVDwLDM,2454
92
+ infrahub/core/diff/query/has_conflicts_query.py,sha256=nftOmnAtDsNxxhpEoLcbQdalhgqx5ROckabou1CSv-Y,2531
95
93
  infrahub/core/diff/query/merge.py,sha256=HZgsf9tMIEZ_O-ztWBmF-L75nAO9LOe1lKo53Ehub9I,22902
96
- infrahub/core/diff/query/roots_metadata.py,sha256=Kzfox3RD26fT51xjj5P9-XtHywkTk2lj5LKRoWRAeH8,1808
97
- infrahub/core/diff/query/save.py,sha256=MewTGCvfT1eu2nX0W9vEK-GxI6A60dRT6LJiSB4YZLc,17453
98
- infrahub/core/diff/query/time_range_query.py,sha256=lBzSwlMZpFd7t_bddu6D1mCnd3HLFNzDcqjoZMzbiAg,2914
94
+ infrahub/core/diff/query/merge_tracking_id.py,sha256=puDyqQv-g0jHA-ZuNNwHyJ2spbWOUoSZr131d0NOu0M,817
95
+ infrahub/core/diff/query/roots_metadata.py,sha256=mwS8elSVxH-xHYdMd0maAGJ94sGY9oXk85jp59RsCQ4,2166
96
+ infrahub/core/diff/query/save.py,sha256=5RaYepOLBw7hZRabBca0Hlqi0L9oFTJiJ7io_5kSls0,22044
97
+ infrahub/core/diff/query/summary_counts_enricher.py,sha256=RKDJVAIKPGSaK3wqFwYNRLSgr3GdT0w2s26cW6LJe6Q,8436
98
+ infrahub/core/diff/query/time_range_query.py,sha256=W4CQlxfy37VysSc4aSpuklf-4pJFB57AxsjyL4ahatw,2987
99
99
  infrahub/core/diff/query/update_conflict_query.py,sha256=z19Y2l9T78A-ydQbqoWYt-eSXhaxMkrD_oLMuaW9FdA,1196
100
- infrahub/core/diff/query_parser.py,sha256=ph0xjvnGXtlvjdH6oAtxxYv9Yjufh-_5ItxvSUZ2bwk,36423
100
+ infrahub/core/diff/query_parser.py,sha256=vhWfm7wm9j1SztBWHXBGA16ly467z7lBi5N_5QjASGk,37765
101
101
  infrahub/core/diff/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
- infrahub/core/diff/repository/deserializer.py,sha256=ikbdDi56XR1_nwn_-SobTfEc_-Xr1iuNFD5JkGpE3Rg,19749
103
- infrahub/core/diff/repository/repository.py,sha256=QReWIMidX27feJm_fQ3_-ZK1FIYAr-w_AXRhipN0UbA,15678
102
+ infrahub/core/diff/repository/deserializer.py,sha256=zGPXWUxTqlMIpEOrpoGhVJvdMJOdm1Wo8U74HAbfrvo,20246
103
+ infrahub/core/diff/repository/repository.py,sha256=TTVvpb6EaLnvmTAh6sLwfKMh5nWSibzB7sXRZIKTFvI,19445
104
104
  infrahub/core/diff/tasks.py,sha256=vJf3HdgkvBG5b_mnmFmdpd9xDeBOuD4XFgNSd1Wbex8,3045
105
105
  infrahub/core/enums.py,sha256=5wMcX9x6acU9CTa4B4b6rFwgRZ31N9c9TR3n2EO0BuI,490
106
106
  infrahub/core/graph/__init__.py,sha256=jwgNlvRvVs2_s5YC1TqeLucoKBHQ4pDox1v0tbE9oIw,19
@@ -159,15 +159,15 @@ infrahub/core/migrations/schema/placeholder_dummy.py,sha256=3T3dBwC_ZyehOJr2KRKF
159
159
  infrahub/core/migrations/schema/tasks.py,sha256=qrHz2dW-lwp1K3EWNnAAqh5HZn15-SgZQceOF-hC7Mc,4111
160
160
  infrahub/core/migrations/shared.py,sha256=y60PTvFKrwLB3SrCmsXr-XR188mJGDGpqZj_9qwmr8U,7133
161
161
  infrahub/core/models.py,sha256=vkxrU_CNccRC-w7YKq-eibqjlJz-CnEaa-j9oIsaus4,24269
162
- infrahub/core/node/__init__.py,sha256=J1lg90ys7YXNNmr8QL__5EZSP1RlUSoJGfKIwYE_gN0,30573
162
+ infrahub/core/node/__init__.py,sha256=T2zpQdd8MSAnHruaTKx3u0Puhwz4MS01rvyt4hPy_dE,30773
163
163
  infrahub/core/node/base.py,sha256=naK0ZmWTnwNTESvRRfSTybleBoGELZKm4bdUa9QmZvw,2655
164
164
  infrahub/core/node/constraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  infrahub/core/node/constraints/attribute_uniqueness.py,sha256=jbZP_c4oAIMfLte1x666JbV8it764VD2E44_hxsHZRY,2115
166
- infrahub/core/node/constraints/grouped_uniqueness.py,sha256=NQoJfnXJxxr3gWGBDAsT1snqi-TpAMCi_Mzl95siAGg,8717
166
+ infrahub/core/node/constraints/grouped_uniqueness.py,sha256=2Pupx8ISxex7td_ElelV0rVYuhMq1kINiB_rAC2Xhzg,9123
167
167
  infrahub/core/node/constraints/interface.py,sha256=K53ht1ozEiDV8LKKdd1slAByh0VP5CUT4_VE9MrkiGU,325
168
168
  infrahub/core/node/delete_validator.py,sha256=KkCh5F2osBwVv0Wl2f9BB74ywhOsPgNXkYFOEO9zojs,10541
169
- infrahub/core/node/ipam.py,sha256=WsgtGSmtmOYdk8XgH5JoKVz4P0CoDYp_R3iRFsiqp28,2845
170
- infrahub/core/node/permissions.py,sha256=EMO0oto4NIOcn6JXCwwLPl3M_TncGNC4DXAlj_Uy_m0,2051
169
+ infrahub/core/node/ipam.py,sha256=JvWP3tZ2DtMHz6EBgPa8GixgvuMa6_dAt24glDuJu2c,2974
170
+ infrahub/core/node/permissions.py,sha256=zYc6_4yp-4ZYziZSFu59AthUmFV9fTeSdvXSJ5KDE9U,2235
171
171
  infrahub/core/node/resource_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  infrahub/core/node/resource_manager/ip_address_pool.py,sha256=Ap7A37Cka3iB2fMjBEF871wXslDhGOGACtlWgnMwlGE,4703
173
173
  infrahub/core/node/resource_manager/ip_prefix_pool.py,sha256=c-0J3_fBiyOOoD1YFyQoDq-Y_VUbHzRmKry7boDndNw,4778
@@ -181,11 +181,11 @@ infrahub/core/query/__init__.py,sha256=iXvVvRB5s6f06UxBqkOucrbH7fOuUgyu1M8VXnlMN
181
181
  infrahub/core/query/attribute.py,sha256=-84v73Je49QpYcdBcBS6Acj8i8uIGFaOxJyFd2kszD4,11756
182
182
  infrahub/core/query/branch.py,sha256=OmYS1n1U4NEbDXBrPAM9lvh_qb_prbRdNnC07N1k-Mw,4561
183
183
  infrahub/core/query/delete.py,sha256=BsCeUb11Le3NU2hLMcu05acvWrRVrGncxGxpkWTIzJE,1902
184
- infrahub/core/query/diff.py,sha256=xrmOITxYgZbDTdwbsw6eM3sOlKMCVCMnZAPOlVEsrMg,32479
184
+ infrahub/core/query/diff.py,sha256=73Jy-D1wd6GYpUoRb7MGDMkgSuX6KeQ_8swaYLhgJQU,31942
185
185
  infrahub/core/query/ipam.py,sha256=xWCemBaiOA00eU3sB8XmOdNOJ1L69Lls3L2GIw5P_CU,28123
186
- infrahub/core/query/node.py,sha256=UhVfDHvBAIualNNh6rL71snbG_-GaB2XCvTohezFInk,59348
187
- infrahub/core/query/relationship.py,sha256=30oRyNAM59lYA1nV1Vi0istLke73UoB5aDVzoDbJ76I,35001
188
- infrahub/core/query/resource_manager.py,sha256=AzmHSbUIb2Zow_p9g4RmBt008udbOIc8igyMZ7Wyg7Q,12438
186
+ infrahub/core/query/node.py,sha256=qdZYjUcNQTM3o3HLwnbC8xG2WqdGXwFFuQL2X7glPmU,59747
187
+ infrahub/core/query/relationship.py,sha256=3NobAJQuAWoshPas9mQtLJi1RDCzxsf9TJyGPYByy7I,35089
188
+ infrahub/core/query/resource_manager.py,sha256=yzAYu6E7szjD8ZBaInivpOfmbMHLEFtHHcha_2OE7Yc,12527
189
189
  infrahub/core/query/standard_node.py,sha256=Wh9ekHhfamxizri_1M5EQFcgJWyIvtAMQRz9nEKOL3w,4437
190
190
  infrahub/core/query/subquery.py,sha256=5vSBz8CuQHXmka1LtWZp4RDClA0IfJFi0L2cb9uZRZM,7636
191
191
  infrahub/core/query/task.py,sha256=DjcNUt4PXdvIDq_e_F3bHFEA_Hxd6-HLD6FkuuoAQic,3089
@@ -198,7 +198,7 @@ infrahub/core/relationship/constraints/count.py,sha256=q2KJu4azD3Ad2Zagjz2SUzxd5
198
198
  infrahub/core/relationship/constraints/interface.py,sha256=96A_IRKAU6FCS3Nqiey5WmUnA4PO73nOlBk5DgUCjbc,296
199
199
  infrahub/core/relationship/constraints/peer_kind.py,sha256=d0Ca4tLt45kU1yfe3UN793Dy6ad42mepvXOi8qgo68c,2520
200
200
  infrahub/core/relationship/constraints/profiles_kind.py,sha256=ztnc5uh84h-IANHxn6HfIHcJJf4Cga_3waXEh7eIMrQ,2449
201
- infrahub/core/relationship/model.py,sha256=s4kY2Kevc-hzKBDDqkVC7ZZ2g66_9kOGjSVSo_XebE8,45378
201
+ infrahub/core/relationship/model.py,sha256=Gw1FS6FKAq935aqwY6Vufj9gLu9-TDkwibPXkckcnCo,45373
202
202
  infrahub/core/root.py,sha256=8ZLSOtnmjQcrjqX2vxNO-AGopEUArmBPo_X5NeZBdP0,416
203
203
  infrahub/core/schema/__init__.py,sha256=0L8vLxx7VwuqCkySA3PgZa91rfnIWeQcuwfeDqFqMZM,3926
204
204
  infrahub/core/schema/attribute_schema.py,sha256=oyU-Z8BFLnyEy1q41uukfVQKMUevS0sZ8Ug2m_J3MXk,5022
@@ -221,14 +221,14 @@ infrahub/core/schema/manager.py,sha256=-2cL1CB4uo1i8CYH9eES3qO7TzCthtiDFmIZAslFj
221
221
  infrahub/core/schema/node_schema.py,sha256=FQJ_l4I8U1Q5uw3c8mSZzvuLeU1bjP1VI_5C2wzW2-Q,6023
222
222
  infrahub/core/schema/profile_schema.py,sha256=YnExPbJBz9kECjgMrFG-pLU2r5hI1RWap4lha_E3TjQ,1014
223
223
  infrahub/core/schema/relationship_schema.py,sha256=KoLJABsX4i2mjCeIgC43MDDqFcXb26XLaa53ru80LOo,8064
224
- infrahub/core/schema/schema_branch.py,sha256=GgVKbWq3XmVBrcsgjzp1ypDryAsns3YliqrFup0tdNY,77344
224
+ infrahub/core/schema/schema_branch.py,sha256=2O7p82LLZHBubEgfSvuaVX6KgNLkhUDASwc6S17BUxc,77669
225
225
  infrahub/core/schema/schema_branch_computed.py,sha256=jon3PP_QSzKdJKpNu9uPAigdvx1xvOtac1CNCkt2D1U,7632
226
226
  infrahub/core/task/__init__.py,sha256=Ied1NvKGJUDmff27z_-yWW8ArenHxGvSvQTaQyx1iHs,128
227
227
  infrahub/core/task/task.py,sha256=GiQcOqKaWxjOEGHmNfwCTD6IgLkhHFIQ1_Ev_XvMSLc,3816
228
228
  infrahub/core/task/task_log.py,sha256=Ihn8G2uW8K3wYz42qRjcddCSlspjN67apb44uirqxqA,986
229
229
  infrahub/core/task/user_task.py,sha256=Pa6h-3a4-lXdYlPhcEORE_Dt9rxn_KZNvm7hQhMHN2Q,4607
230
230
  infrahub/core/timestamp.py,sha256=LzftyzfOJ1wedqm69mvkL_oHczzX3vGNuc7kk1KrK7U,1049
231
- infrahub/core/utils.py,sha256=cphgwcCl-nHIEQ7Ea7k1Ees9TXgCqYcRpbT8-9Hz3To,9070
231
+ infrahub/core/utils.py,sha256=Wuc1s_PpuI12AfnrF7-8snGGLH0yS0xbYP0i7gao3bI,9091
232
232
  infrahub/core/validators/__init__.py,sha256=yl5EZcZxuQ1LYEDD_rEVBHuidRAqkcE_h2iiYSS8oYw,2185
233
233
  infrahub/core/validators/aggregated_checker.py,sha256=HSX_jEJGVGHRBEjpCl80daT6TX7nXtfuROSS8T2a4dc,4728
234
234
  infrahub/core/validators/attribute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -262,8 +262,8 @@ infrahub/core/validators/uniqueness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
262
262
  infrahub/core/validators/uniqueness/checker.py,sha256=IqreVcMPZj7nNhC5cc5SlBSZ-P6txVmPxJp6gU028Ls,10266
263
263
  infrahub/core/validators/uniqueness/index.py,sha256=yu-clITQF4MrgK36hsyuXllvR4QkVTqy4ugi_Y_C_Sg,5081
264
264
  infrahub/core/validators/uniqueness/model.py,sha256=EPl8X91BSGXGU7GWbUSue6laNGhAtIiXj7rFaz56Kvk,5197
265
- infrahub/core/validators/uniqueness/query.py,sha256=WgRKKC5rC-wpWOawPh7Y8wEgsEsPzDYxB1AhJCo3PDM,9694
266
- infrahub/database/__init__.py,sha256=A2H8RBnFfmrsPkmZWMlxt1yOLkgBl4kWOxAnzXPqBO4,19721
265
+ infrahub/core/validators/uniqueness/query.py,sha256=DigQCR5278wBiXNXhy1FFTTVQewlf2Q8rCcuSmyilkQ,10171
266
+ infrahub/database/__init__.py,sha256=kAoCPRqfxNWTRu9o7-xCWLLryvMbf5OiG6Th5H7aFhQ,20123
267
267
  infrahub/database/constants.py,sha256=WmV1iuOk4xulxZHOVvO3sS_VF1eTf7fKh0TPe_RnfV4,507
268
268
  infrahub/database/index.py,sha256=y0sWXO3tdIr1wL1XC9O6iNRV-Elu2KAXFOiYXRIIhN4,1659
269
269
  infrahub/database/manager.py,sha256=BDXNw1RNBeSFV-EZd0aGFbPNuoqlKwrkDqmYB7sy4tU,317
@@ -273,7 +273,7 @@ infrahub/database/neo4j.py,sha256=IE5lSevKqu-tJa3KF_bj_gOUx-SpZNdmGOl6oheNhiY,26
273
273
  infrahub/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
274
  infrahub/dependencies/builder/constraint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
275
  infrahub/dependencies/builder/constraint/grouped/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
- infrahub/dependencies/builder/constraint/grouped/node_runner.py,sha256=a2_XXAGcn0ch4CG6rcRqyGcMBnausXZmBgIDeCLBUqg,1376
276
+ infrahub/dependencies/builder/constraint/grouped/node_runner.py,sha256=bk84DCReSTGQSMrNwKPJQUOqd-1mplf1yVZkxVgzgwY,1218
277
277
  infrahub/dependencies/builder/constraint/node/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
278
278
  infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py,sha256=lDPINXeKuAoxwPcxG0p9HcnZFAnIiPLlWNz0yHApcIw,477
279
279
  infrahub/dependencies/builder/constraint/node/uniqueness.py,sha256=3YzMLdhSBDCb78vMzufSzfoX6VKa7AwwTqNwuDL9q0E,489
@@ -303,7 +303,7 @@ infrahub/dependencies/builder/diff/combiner.py,sha256=ZFdP95Nxq4ws5Kdg3ywvG4B7Re
303
303
  infrahub/dependencies/builder/diff/conflict_transferer.py,sha256=faslY7GQsx1MekKgluq4z8MbtWbK_Zn5HuPzFWTAaH8,490
304
304
  infrahub/dependencies/builder/diff/conflicts_enricher.py,sha256=nhXS9sSq-hmKDnseyYB51wkQSSOVfY4xYPgEXelyMos,363
305
305
  infrahub/dependencies/builder/diff/conflicts_extractor.py,sha256=LL_Tvsp-I6R1q9IxCB9OhsF4FJV29PylUSGtLGLGEDQ,398
306
- infrahub/dependencies/builder/diff/coordinator.py,sha256=eLU5IwYstR4d0tQ5ci4ih4L1O60kaHcYUajvdAhI6O8,1648
306
+ infrahub/dependencies/builder/diff/coordinator.py,sha256=7Z4SwtkKicZLnWQl_sZFKpHkSWqa1co_ijsBExWlVQo,1479
307
307
  infrahub/dependencies/builder/diff/data_check_conflict_recorder.py,sha256=ABMNwa0H6uo-WW_EjhFXMEdFkIJ2e6cBY9yPuiGbhUE,683
308
308
  infrahub/dependencies/builder/diff/data_check_synchronizer.py,sha256=k8mc4yAd7hczXajaMfw9yQ04b3qtqD1Jm5G4uDbmNNc,890
309
309
  infrahub/dependencies/builder/diff/deserializer.py,sha256=lw7WhTW9bEtxKmdo-iq75oMKgchboPW085tN1QVfotM,391
@@ -314,7 +314,6 @@ infrahub/dependencies/builder/diff/enricher/cardinality_one.py,sha256=84JJmbFr4Z
314
314
  infrahub/dependencies/builder/diff/enricher/hierarchy.py,sha256=waPTBwZSe3wmynGcLrEzpoCQZm2sfh56h3Cg46vWfq4,392
315
315
  infrahub/dependencies/builder/diff/enricher/labels.py,sha256=EZy4OWEGbb1OUhARD0SOSBJSCzdXHIT_c5RpM9GxLCk,374
316
316
  infrahub/dependencies/builder/diff/enricher/path_identifier.py,sha256=Pv31HAzacLkkV1p5lra5Kg9epAWp_uTjLVAqAMCpEUw,423
317
- infrahub/dependencies/builder/diff/enricher/summary_counts.py,sha256=VrI-kO7q8sPykqImb9t4SvUU6494jrxluzNRM38-TVE,404
318
317
  infrahub/dependencies/builder/diff/ipam_diff_parser.py,sha256=ZFEMMXWe0x8gr2gyPFuHfto9DtZZSUbZisragYKOhvs,639
319
318
  infrahub/dependencies/builder/diff/repository.py,sha256=Z3-61TcDJyl8Am7yD-h5a0S0A6aTXl2asDnMKqE3oBE,478
320
319
  infrahub/dependencies/builder/ip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -341,7 +340,7 @@ infrahub/git/__init__.py,sha256=KeQ9U8UI5jDj6KB6j00Oal7MZmtOD9vKqVgiezG_EQA,281
341
340
  infrahub/git/base.py,sha256=D5mkZ_7-gUVOIjR1kWh1jtfcinCTJgW93C997ajRsOE,37010
342
341
  infrahub/git/constants.py,sha256=xOibCVP3fEkX4u88uTJDw6602HgiqS1GibpOUMdCzdM,165
343
342
  infrahub/git/directory.py,sha256=fozxLXXJPweHG95yQwQkR5yy3sfTdmHiczCAJnsUX54,861
344
- infrahub/git/integrator.py,sha256=Dlho4yxnjxVz79hV6ThVgrB2TFApv-ahWVM7bf6QblI,56560
343
+ infrahub/git/integrator.py,sha256=4k2e1vWrJ0ozQsaU-crkzhtXi-gFCIBfvL7xp8h0HB4,56912
345
344
  infrahub/git/models.py,sha256=zrEusNMzbqTC8U3SCEeM7tZGegNPWUXYK6A6sD1wL5c,6610
346
345
  infrahub/git/repository.py,sha256=tDGdRsIfcjjTtCZdIsTWl7u_Pax29O-Fz8J3Ewq-TbY,11693
347
346
  infrahub/git/tasks.py,sha256=GHaILsSSbwwc9Pj6wnmolAfSTiVcpJ9Fh1RtW810gtE,23341
@@ -378,12 +377,12 @@ infrahub/graphql/mutations/account.py,sha256=MR9hJQCY4LxwdxmhS4UI6GnmwGMdBlOrjq3
378
377
  infrahub/graphql/mutations/artifact_definition.py,sha256=DQofuL3YqLordJEl6MJqFtitwD85bUUKP97RIPavS0Q,3245
379
378
  infrahub/graphql/mutations/attribute.py,sha256=a35MP8Pvy_42N5dkO3HKATgJDW6qy9ncDu5t8YI3AUE,2734
380
379
  infrahub/graphql/mutations/branch.py,sha256=PmyoQKdFouDGjMUgy9vLyN3HJfyohS5D7DHpMiL8eKE,8533
381
- infrahub/graphql/mutations/computed_attribute.py,sha256=bD9lF5JZhVKUbZsUBCKPAkQrvIdMMe1bCXxDdkEWOOM,4062
382
- infrahub/graphql/mutations/diff.py,sha256=9cRa2jPHCVubve9wpkODjfiG_CloWmw6Y9vzoU4jMHs,2473
380
+ infrahub/graphql/mutations/computed_attribute.py,sha256=8FmG2gY6Pls1ZpmAcW8AmMMAYtyOJJOwqyHub68W6GA,4118
381
+ infrahub/graphql/mutations/diff.py,sha256=rp6zxOVQ681QpiASLjPn_ghQI6COEGd3U8dpJJ_Lp9U,4057
383
382
  infrahub/graphql/mutations/diff_conflict.py,sha256=Rx0TvqDK_jqtJlK9vKkBcTI5ybVADi524kazr4WwVYk,2779
384
383
  infrahub/graphql/mutations/graphql_query.py,sha256=zn6GrSixspdoxnjQJk68l2HlwDDPfU7z3L_GIK84qjA,3341
385
384
  infrahub/graphql/mutations/ipam.py,sha256=S26y3k-s6obkHKE2BVQi8FuJk8xxzGPQZFCEpLA7bgs,16887
386
- infrahub/graphql/mutations/main.py,sha256=9DUL_m83HmrsiNVX3OznwUV_dhBHpUM0oxMfwhAZRpo,17888
385
+ infrahub/graphql/mutations/main.py,sha256=CzH0PM6JiXgLFuh2SpWUdhISRRmX-yh0xMKnssvRBTs,18205
387
386
  infrahub/graphql/mutations/menu.py,sha256=JC7wpSsVk9xeEGNIdWwRut6xYWEMPEyTWKH3plPppXM,3677
388
387
  infrahub/graphql/mutations/models.py,sha256=OMjCJNHF5WaoAqO-KGVllzDHW_mxFlFoyOxVWYCxmWQ,299
389
388
  infrahub/graphql/mutations/node_getter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -392,11 +391,11 @@ infrahub/graphql/mutations/node_getter/by_hfid.py,sha256=1cEeg2jvVN6qojBrRrx5h1Q
392
391
  infrahub/graphql/mutations/node_getter/by_id.py,sha256=FTSyqwc_Rf_0hec7TFF_a5GNJQeQS54FOPHsva_6vyw,888
393
392
  infrahub/graphql/mutations/node_getter/interface.py,sha256=aLPUTB3oxb4MduKCTeXviC_nN6mKlMujO2Qba-E1CbM,450
394
393
  infrahub/graphql/mutations/proposed_change.py,sha256=6wYany-bI1sk3G0_rORubQ6XWK1bRWi8hgrxP-Pod9Q,9366
395
- infrahub/graphql/mutations/relationship.py,sha256=uAWxxd7sT6gFlTiy4ELL4JX7XEs3s__MDaW1-_1RVh0,6761
394
+ infrahub/graphql/mutations/relationship.py,sha256=Bz-iJVt0bfPO_ySfh-WQX_wurpGJCPgXBCqXPEvkLNs,8115
396
395
  infrahub/graphql/mutations/repository.py,sha256=TfqNrTZtZqqvVGDumWcFidilzS31AvHfirfzojpq6uE,10837
397
396
  infrahub/graphql/mutations/resource_manager.py,sha256=b9K-c6a_noqzB5yKHZDMJSIO3_StXHZnzcWSD9WTrik,8784
398
397
  infrahub/graphql/mutations/schema.py,sha256=v354ubGGcoXRjNVVq49csKo16RCxOPtP1pLKbE3jemE,11418
399
- infrahub/graphql/mutations/tasks.py,sha256=RBfzFPIc6jbBy3iI9HDy366egDY_ljnCfJt3dt20VZg,3363
398
+ infrahub/graphql/mutations/tasks.py,sha256=uTqH4PxFhOij8jH1fqw8E_kc5ninEv5rh4IgEmgHWVE,3575
400
399
  infrahub/graphql/parser.py,sha256=VP3Ot0kC3gAd85TXsIW0nfsVv2JolWMkKdVExgmAglo,8631
401
400
  infrahub/graphql/permissions.py,sha256=aP0yzseu0HzxulwfSo3GQ3HM4PNsPhDqS2-CQ_e3f4g,1300
402
401
  infrahub/graphql/queries/__init__.py,sha256=LGmI88POb8a4fyjSuBEkOkCIYpU2FZEwOkxWuretmHc,789
@@ -407,7 +406,7 @@ infrahub/graphql/queries/diff/tree.py,sha256=Ql-3b6mBjGRAHhbGCFb_BTGENydYmNXUDPQ
407
406
  infrahub/graphql/queries/internal.py,sha256=0_NO8aS5Ldp5eWXOrxqm_5ZG_UlMmvD0BWRECGjLIgY,670
408
407
  infrahub/graphql/queries/ipam.py,sha256=f_9WV8iGCCQq6np6BS8lfbH6_5Prjm6qAUrIbGlbQFo,3875
409
408
  infrahub/graphql/queries/relationship.py,sha256=uy_lTZaJu2ZOQBO9ZJFtTY0tBREVeGW5oxx-KuC8C4w,2504
410
- infrahub/graphql/queries/resource_manager.py,sha256=4HC7kFmiqr7jADHGwYDjpXUX2eI0o2AgDpbRoHmOMu0,14452
409
+ infrahub/graphql/queries/resource_manager.py,sha256=MMjiU7Hz_-CZ2bABGuO6ImMfAgo31jQGUvDoyxbV1RA,14576
411
410
  infrahub/graphql/queries/search.py,sha256=PdFvrkMvaKqcJz7_6BW_osRaAjeBqaxVg4nUvwuJEis,4942
412
411
  infrahub/graphql/queries/status.py,sha256=F3UpRHocUrJRQeOyI1PYa9W-2YDwTBTdGU-CyC6UYJE,1980
413
412
  infrahub/graphql/queries/task.py,sha256=qBL54BBKRW3vRxg1bIIM88c6Yfrq6IiH2-zc-m-NdTk,3491
@@ -500,13 +499,13 @@ infrahub/message_bus/operations/send/echo.py,sha256=WEqZaB8l2QUNp20Nta66Kh-lzxiZ
500
499
  infrahub/message_bus/types.py,sha256=Hui3N-j-by4DpB9eK98NPtr7VFueK65uoxLLxE3YQf8,5574
501
500
  infrahub/middleware.py,sha256=g6lPpXewWNcLjyzRsr7FjdTIbdc5H2HitGQX-L7itgI,657
502
501
  infrahub/models.py,sha256=QmwJwo3hNCta8BXM7eLsD9qv1S73Rj0cC_crLpadHTc,715
503
- infrahub/permissions/__init__.py,sha256=hGEPIA1YuVFZKXSZ_IzckmIQZ9GPXAZB92Df_FGAKH4,468
502
+ infrahub/permissions/__init__.py,sha256=WAtFhyaQj8dFkZJGnIbBaVbSMttGZGgK18V-QbMNVNU,538
504
503
  infrahub/permissions/backend.py,sha256=azvyFOTne0Zy1yrc4t9u3GCkHI_x_OPSDV65yxmVPDQ,529
505
504
  infrahub/permissions/constants.py,sha256=2sGj9caif_aH2XtD3s35BU4HRONOjRHCyCJ3gbT5kZs,1221
506
505
  infrahub/permissions/local_backend.py,sha256=JXUBGcYsi62Jmpz_sSueYGV3tqxV1WrNXpevhwKhr1w,1470
507
506
  infrahub/permissions/manager.py,sha256=RpYiKeAy6ByIjbR6zuuV8try4Ug8edivKZJ5X6SQw8U,6655
508
507
  infrahub/permissions/report.py,sha256=kXNVbWp_q5mu6Qx8DUcHceZOdKkVqUZO8E7YWiA1n3o,5118
509
- infrahub/permissions/types.py,sha256=062OowV-LvNTDfBtHIVnxfzLOeGqMSNG99PP__Cf9Pw,614
508
+ infrahub/permissions/types.py,sha256=cQQ0lJKlkufmJ7TQO2CM2yi0Y_yL-F7waFrjGumvkIE,1580
510
509
  infrahub/pools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
511
510
  infrahub/pools/address.py,sha256=QouI4q09sPRTyXYQFL88l0qiQHsGgdYhttPu7Iq1lIM,773
512
511
  infrahub/pools/number.py,sha256=gSpEHVmshk-gq3zBm5bPoVY7AF_lBlKHL2sHei6X4yM,2463
@@ -514,7 +513,7 @@ infrahub/pools/prefix.py,sha256=J4MuYlrmvB0U1_pshvx2wEhSeCR3AeMcQa0TifdRjNU,7035
514
513
  infrahub/proposed_change/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
515
514
  infrahub/proposed_change/constants.py,sha256=w8fPxKWJM1DzeClRd7Vr53hxkzl2Bq-rnXWfE2y3Bz0,1296
516
515
  infrahub/proposed_change/models.py,sha256=BlIAsteCgmOjV-k7Wvv70Ho6LJKQcPX9ClhQHHuxoT0,1182
517
- infrahub/proposed_change/tasks.py,sha256=WoPsePpvVh_fGRSlSqbe9Y7Yp3xlxEVTH1ZXYUcrjj4,21461
516
+ infrahub/proposed_change/tasks.py,sha256=9Yw1cuaPxVI3T6USvxSDFZZ3OCHIaooz8mKX5uBk7r8,21771
518
517
  infrahub/pytest_plugin.py,sha256=mzaxMiVqrXKJabHFpK5MvlaNjNKVeHJllQzK0HOtSo0,6722
519
518
  infrahub/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
520
519
  infrahub/schema/constants.py,sha256=CGwmuav3UHpvoQELLh4gKMfXKDsB8mLpsUPMu1nsrhg,48
@@ -543,7 +542,7 @@ infrahub/services/adapters/workflow/worker.py,sha256=wsBnDoGLFkDXBNzD46o4cP3C6VF
543
542
  infrahub/services/component.py,sha256=R9J5445WWxwpOwgSvpt0bFehCNCuCp8z8eo7HGPgAls,5711
544
543
  infrahub/services/protocols.py,sha256=JNkBXvd0oiqnApdGUMfgbhOG1duYdt9dLPeb5Ow4_5E,782
545
544
  infrahub/services/scheduler.py,sha256=-i_iEWwqCMjfg-2rekmJGMpLrRVsZwFN8CcAtaAy03Y,3013
546
- infrahub/storage.py,sha256=FZWQCxoykc3Ne0H9omXMrNr-5ddD3fLDPg9hAYDV3_4,1894
545
+ infrahub/storage.py,sha256=FfLRYXzG69P_gEY91-5isgtFnI_QWIkkgL8-MhBQBJU,1864
547
546
  infrahub/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
548
547
  infrahub/support/macro.py,sha256=KX9Ky7i0yDG4kEK97YQJD71TbZ3DuNiwEu294YvWFEs,1816
549
548
  infrahub/task_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -671,11 +670,12 @@ infrahub_sdk/utils.py,sha256=5rnk-ZfMoMvNHH72D0Bb5OVRjyk6cJ__UoKvZlUNzns,11064
671
670
  infrahub_sdk/uuidt.py,sha256=Tz-4nHkJwbi39UT3gaIe2wJeZNAoBqf6tm3sw7LZbXc,2155
672
671
  infrahub_sdk/yaml.py,sha256=dxdzEjuaG-OwF2XIcA2YXoFEmF4TeiwKju5K2uOQhgQ,2963
673
672
  infrahub_testcontainers/__init__.py,sha256=oPpmesGgYBSdKTg1L37FGwYBeao1EHury5SJGul-CT8,216
674
- infrahub_testcontainers/container.py,sha256=g0AOvnV3z_-wGCMOUBCaK4-U_ST38YvGXYqZbfGtKXY,4421
675
- infrahub_testcontainers/docker-compose.test.yml,sha256=lS-mXnL73rOVXs3nW1R_BsfSGH8_d38fwxVkH_3Uf9o,5352
676
- infrahub_testcontainers/helpers.py,sha256=3K6Bbfcr19DwH9pfc-WE6ehqIUbAXx1NruVOkKJoXvY,2274
677
- infrahub_server-1.1.5.dist-info/LICENSE.txt,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
678
- infrahub_server-1.1.5.dist-info/METADATA,sha256=Se7eVlfb7V0bwVcZj9lWB1pPWkF3d4Afd7XQelETyig,4702
679
- infrahub_server-1.1.5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
680
- infrahub_server-1.1.5.dist-info/entry_points.txt,sha256=JNQoBcLpUyfeOMhls_-uX1CdJ8Vl-AFSh9UhzTcKdjA,329
681
- infrahub_server-1.1.5.dist-info/RECORD,,
673
+ infrahub_testcontainers/container.py,sha256=dtweuZol1LAZiJBItRnB-Yrd-k6ohVuOdcgWcd0F-RM,4855
674
+ infrahub_testcontainers/docker-compose.test.yml,sha256=l-ac0Bi8MxXCNM0w7QPakmeMsYzMnJXPhENN1yGRHAk,5993
675
+ infrahub_testcontainers/haproxy.cfg,sha256=QF_DJSll10uGWICLnwFpj0-0VWIeB3CteCDthVoWpCU,1316
676
+ infrahub_testcontainers/helpers.py,sha256=NlzyZN1QpByUQ6t7NwIDQxSSM7xFvY2jCM6-P8RYE6g,5253
677
+ infrahub_server-1.1.7.dist-info/LICENSE.txt,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
678
+ infrahub_server-1.1.7.dist-info/METADATA,sha256=2sxXxvhAhT4WUkgmFmTejFPTFLC7iPJwtWMr-oa_YAk,8081
679
+ infrahub_server-1.1.7.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
680
+ infrahub_server-1.1.7.dist-info/entry_points.txt,sha256=JNQoBcLpUyfeOMhls_-uX1CdJ8Vl-AFSh9UhzTcKdjA,329
681
+ infrahub_server-1.1.7.dist-info/RECORD,,
@@ -18,7 +18,7 @@ class ContainerService:
18
18
 
19
19
 
20
20
  INFRAHUB_SERVICES: dict[str, ContainerService] = {
21
- "server": ContainerService(container="infrahub-server", port=8000),
21
+ "server": ContainerService(container="infrahub-server-lb", port=8000),
22
22
  "task-manager": ContainerService(container="task-manager", port=4200),
23
23
  }
24
24
 
@@ -33,8 +33,8 @@ PROJECT_ENV_VARIABLES: dict[str, str] = {
33
33
  "INFRAHUB_TESTING_INITIAL_ADMIN_TOKEN": "06438eb2-8019-4776-878c-0941b1f1d1ec",
34
34
  "INFRAHUB_TESTING_INITIAL_AGENT_TOKEN": "44af444d-3b26-410d-9546-b758657e026c",
35
35
  "INFRAHUB_TESTING_SECURITY_SECRET_KEY": "327f747f-efac-42be-9e73-999f08f86b92",
36
- "INFRAHUB_TESTING_ADDRESS": "http://infrahub-server:8000",
37
- "INFRAHUB_TESTING_INTERNAL_ADDRESS": "http://infrahub-server:8000",
36
+ "INFRAHUB_TESTING_ADDRESS": "http://infrahub-server-lb:8000",
37
+ "INFRAHUB_TESTING_INTERNAL_ADDRESS": "http://infrahub-server-lb:8000",
38
38
  "INFRAHUB_TESTING_BROKER_ADDRESS": "message-queue",
39
39
  "INFRAHUB_TESTING_CACHE_ADDRESS": "cache",
40
40
  "INFRAHUB_TESTING_WORKFLOW_ADDRESS": "task-manager",
@@ -43,6 +43,10 @@ PROJECT_ENV_VARIABLES: dict[str, str] = {
43
43
  "INFRAHUB_TESTING_LOCAL_REMOTE_GIT_DIRECTORY": "repos",
44
44
  "INFRAHUB_TESTING_INTERNAL_REMOTE_GIT_DIRECTORY": "/remote",
45
45
  "INFRAHUB_TESTING_WEB_CONCURRENCY": "4",
46
+ "INFRAHUB_TESTING_LOCAL_DB_BACKUP_DIRECTORY": "backups",
47
+ "INFRAHUB_TESTING_INTERNAL_DB_BACKUP_DIRECTORY": "/backups",
48
+ "INFRAHUB_TESTING_API_SERVER_COUNT": "2",
49
+ "INFRAHUB_TESTING_TASK_WORKER_COUNT": "2",
46
50
  }
47
51
 
48
52
 
@@ -80,6 +84,11 @@ class InfrahubDockerCompose(DockerCompose):
80
84
  test_compose_file = directory / "docker-compose.yml"
81
85
  test_compose_file.write_bytes(compose_file.read_bytes())
82
86
 
87
+ haproxy_config_file = current_directory / "haproxy.cfg"
88
+
89
+ test_haproxy_config_file = directory / "haproxy.cfg"
90
+ test_haproxy_config_file.write_bytes(haproxy_config_file.read_bytes())
91
+
83
92
  return test_compose_file
84
93
 
85
94
  @classmethod
@@ -28,6 +28,22 @@ services:
28
28
  timeout: 5s
29
29
  retries: 3
30
30
 
31
+ infrahub-server-lb:
32
+ image: haproxy:3.1-alpine
33
+ volumes:
34
+ - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
35
+ depends_on:
36
+ infrahub-server:
37
+ condition: service_started
38
+ healthcheck:
39
+ test: wget -O /dev/null http://127.0.0.1:8000/api/config || exit 1
40
+ interval: 5s
41
+ timeout: 5s
42
+ retries: 20
43
+ start_period: 10s
44
+ ports:
45
+ - ${INFRAHUB_TESTING_SERVER_PORT:-0}:8000
46
+
31
47
  database:
32
48
  image: ${NEO4J_DOCKER_IMAGE:-neo4j:5.20.0-community}
33
49
  restart: unless-stopped
@@ -35,9 +51,11 @@ services:
35
51
  NEO4J_AUTH: neo4j/admin
36
52
  NEO4J_dbms_security_procedures_unrestricted: "apoc.*"
37
53
  NEO4J_dbms_security_auth__minimum__password__length: 4
54
+ NEO4J_ACCEPT_LICENSE_AGREEMENT: "yes"
38
55
  volumes:
39
56
  - "database_data:/data"
40
57
  - "database_logs:/logs"
58
+ - "./${INFRAHUB_TESTING_LOCAL_DB_BACKUP_DIRECTORY}:${INFRAHUB_TESTING_INTERNAL_DB_BACKUP_DIRECTORY}"
41
59
  healthcheck:
42
60
  test: wget http://localhost:7474 || exit 1
43
61
  interval: 2s
@@ -80,6 +98,9 @@ services:
80
98
  retries: 5
81
99
 
82
100
  infrahub-server:
101
+ deploy:
102
+ mode: replicated
103
+ replicas: ${INFRAHUB_TESTING_API_SERVER_COUNT}
83
104
  image: "${INFRAHUB_TESTING_DOCKER_IMAGE}:${INFRAHUB_TESTING_IMAGE_VERSION}"
84
105
  command: >
85
106
  gunicorn --config backend/infrahub/serve/gunicorn_config.py
@@ -106,8 +127,6 @@ services:
106
127
  condition: service_healthy
107
128
  task-manager:
108
129
  condition: service_healthy
109
- ports:
110
- - ${INFRAHUB_TESTING_SERVER_PORT:-0}:8000
111
130
  volumes:
112
131
  - "storage_data:/opt/infrahub/storage"
113
132
  tty: true
@@ -121,7 +140,7 @@ services:
121
140
  task-worker:
122
141
  deploy:
123
142
  mode: replicated
124
- replicas: 2
143
+ replicas: ${INFRAHUB_TESTING_TASK_WORKER_COUNT}
125
144
  image: "${INFRAHUB_TESTING_DOCKER_IMAGE}:${INFRAHUB_TESTING_IMAGE_VERSION}"
126
145
  command: prefect worker start --type infrahubasync --pool infrahub-worker --with-healthcheck
127
146
  environment:
@@ -0,0 +1,43 @@
1
+ global
2
+ log stdout local0
3
+ log stdout local1 notice
4
+ #chroot /var/lib/haproxy
5
+ #stats socket /run/haproxy/admin.sock mode 660 level admin
6
+ stats timeout 30s
7
+ user haproxy
8
+ group haproxy
9
+ daemon
10
+
11
+ # Default SSL material locations
12
+ ca-base /etc/ssl/certs
13
+ crt-base /etc/ssl/private
14
+
15
+ # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
16
+ ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
17
+ ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
18
+ ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
19
+
20
+ defaults
21
+ log global
22
+ mode http
23
+ option httplog
24
+ option dontlognull
25
+ timeout connect 5000
26
+ timeout client 50000
27
+ timeout server 50000
28
+
29
+ resolvers docker
30
+ parse-resolv-conf
31
+ accepted_payload_size 8192
32
+
33
+ frontend fe
34
+ mode http
35
+ bind *:8000
36
+ option forwardfor
37
+
38
+ default_backend be
39
+
40
+ backend be
41
+ mode http
42
+ balance roundrobin
43
+ server-template api 100 infrahub-server:8000 check resolvers docker init-addr none