infrahub-server 1.2.1__tar.gz → 1.2.3__tar.gz

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 (762) hide show
  1. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/PKG-INFO +2 -1
  2. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/tasks.py +71 -67
  3. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/config.py +3 -0
  4. infrahub_server-1.2.3/backend/infrahub/core/graph/__init__.py +1 -0
  5. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/__init__.py +4 -1
  6. infrahub_server-1.2.3/backend/infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +69 -0
  7. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/models.py +6 -0
  8. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/__init__.py +4 -4
  9. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +24 -9
  10. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/ipam.py +1 -1
  11. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/node.py +16 -5
  12. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/schema_branch.py +14 -5
  13. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/exceptions.py +30 -2
  14. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/base.py +80 -29
  15. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/integrator.py +9 -31
  16. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/repository.py +6 -6
  17. infrahub_server-1.2.3/backend/infrahub/trigger/tasks.py +37 -0
  18. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workflows/utils.py +5 -5
  19. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/pyproject.toml +3 -2
  20. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/client.py +6 -6
  21. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/cli_commands.py +32 -37
  22. infrahub_server-1.2.3/python_sdk/infrahub_sdk/ctl/render.py +50 -0
  23. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/exceptions.py +6 -2
  24. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/generator.py +1 -1
  25. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/node.py +41 -12
  26. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/protocols_base.py +8 -1
  27. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +22 -26
  28. infrahub_server-1.2.3/python_sdk/infrahub_sdk/store.py +425 -0
  29. infrahub_server-1.2.3/python_sdk/infrahub_sdk/template/__init__.py +209 -0
  30. infrahub_server-1.2.3/python_sdk/infrahub_sdk/template/exceptions.py +38 -0
  31. infrahub_server-1.2.3/python_sdk/infrahub_sdk/template/filters.py +151 -0
  32. infrahub_server-1.2.3/python_sdk/infrahub_sdk/template/models.py +10 -0
  33. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/utils.py +7 -0
  34. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/container.py +2 -0
  35. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +1 -0
  36. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +3 -3
  37. infrahub_server-1.2.1/backend/infrahub/core/graph/__init__.py +0 -1
  38. infrahub_server-1.2.1/backend/infrahub/support/macro.py +0 -69
  39. infrahub_server-1.2.1/backend/infrahub/trigger/tasks.py +0 -36
  40. infrahub_server-1.2.1/python_sdk/infrahub_sdk/ctl/render.py +0 -11
  41. infrahub_server-1.2.1/python_sdk/infrahub_sdk/store.py +0 -149
  42. infrahub_server-1.2.1/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  43. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/LICENSE.txt +0 -0
  44. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/README.md +0 -0
  45. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/__init__.py +0 -0
  46. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/__init__.py +0 -0
  47. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/artifact.py +0 -0
  48. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/auth.py +0 -0
  49. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/dependencies.py +0 -0
  50. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/diff/__init__.py +0 -0
  51. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/diff/diff.py +0 -0
  52. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/diff/validation_models.py +0 -0
  53. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/exception_handlers.py +0 -0
  54. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/exceptions.py +0 -0
  55. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/file.py +0 -0
  56. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/internal.py +0 -0
  57. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/menu.py +0 -0
  58. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/oauth2.py +0 -0
  59. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/oidc.py +0 -0
  60. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/query.py +0 -0
  61. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/schema.py +0 -0
  62. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  63. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  64. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/static/swagger-ui.css +0 -0
  65. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/storage.py +0 -0
  66. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/api/transformation.py +0 -0
  67. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/artifacts/__init__.py +0 -0
  68. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/artifacts/models.py +0 -0
  69. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/artifacts/tasks.py +0 -0
  70. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/auth.py +0 -0
  71. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/__init__.py +0 -0
  72. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/constants.py +0 -0
  73. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/context.py +0 -0
  74. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/db.py +0 -0
  75. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/events.py +0 -0
  76. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/git_agent.py +0 -0
  77. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/server.py +0 -0
  78. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/tasks.py +0 -0
  79. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/cli/upgrade.py +0 -0
  80. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/components.py +0 -0
  81. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/__init__.py +0 -0
  82. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/constants.py +0 -0
  83. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/gather.py +0 -0
  84. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/models.py +0 -0
  85. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/computed_attribute/triggers.py +0 -0
  86. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/context.py +0 -0
  87. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/__init__.py +0 -0
  88. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/account.py +0 -0
  89. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/attribute.py +0 -0
  90. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/branch/__init__.py +0 -0
  91. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/branch/flow_models.py +0 -0
  92. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/branch/models.py +0 -0
  93. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/branch/tasks.py +0 -0
  94. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/changelog/__init__.py +0 -0
  95. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/changelog/diff.py +0 -0
  96. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/changelog/models.py +0 -0
  97. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constants/__init__.py +0 -0
  98. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constants/database.py +0 -0
  99. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  100. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constants/relationship_label.py +0 -0
  101. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constants/schema.py +0 -0
  102. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constraint/__init__.py +0 -0
  103. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  104. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/constraint/node/runner.py +0 -0
  105. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/__init__.py +0 -0
  106. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  107. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  108. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/branch_differ.py +0 -0
  109. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/calculator.py +0 -0
  110. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/combiner.py +0 -0
  111. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  112. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  113. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  114. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/coordinator.py +0 -0
  115. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  116. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  117. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  118. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  119. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  120. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  121. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  122. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  123. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/enricher/summary_counts.py +0 -0
  124. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/exceptions.py +0 -0
  125. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  126. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  127. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/merger/merger.py +0 -0
  128. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/merger/model.py +0 -0
  129. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  130. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/model/__init__.py +0 -0
  131. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/model/diff.py +0 -0
  132. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/model/path.py +0 -0
  133. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/models.py +0 -0
  134. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  135. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/payload_builder.py +0 -0
  136. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/__init__.py +0 -0
  137. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  138. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/artifact.py +0 -0
  139. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  140. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  141. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  142. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  143. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  144. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/filters.py +0 -0
  145. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  146. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  147. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/merge.py +0 -0
  148. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  149. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  150. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/save.py +0 -0
  151. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  152. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  153. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  154. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/query_parser.py +0 -0
  155. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  156. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  157. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/repository/repository.py +0 -0
  158. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/diff/tasks.py +0 -0
  159. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/enums.py +0 -0
  160. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/graph/constraints.py +0 -0
  161. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/graph/index.py +0 -0
  162. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/graph/schema.py +0 -0
  163. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/initialization.py +0 -0
  164. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/integrity/__init__.py +0 -0
  165. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  166. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  167. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/__init__.py +0 -0
  168. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/constants.py +0 -0
  169. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  170. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/model.py +0 -0
  171. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/reconciler.py +0 -0
  172. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/size.py +0 -0
  173. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/tasks.py +0 -0
  174. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/ipam/utilization.py +0 -0
  175. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/manager.py +0 -0
  176. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/merge.py +0 -0
  177. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/__init__.py +0 -0
  178. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  179. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  180. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  181. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  182. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  183. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  184. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  185. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  186. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  187. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  188. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  189. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  190. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  191. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  192. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  193. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  194. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  195. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  196. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  197. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  198. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +0 -0
  199. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m022_add_generate_template_attr.py +0 -0
  200. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/graph/m023_deduplicate_cardinality_one_relationships.py +0 -0
  201. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  202. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  203. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  204. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  205. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  206. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  207. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  208. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  209. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  210. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/models.py +0 -0
  211. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  212. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  213. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  214. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  215. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  216. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  217. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/migrations/shared.py +0 -0
  218. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/base.py +0 -0
  219. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  220. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  221. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/constraints/interface.py +0 -0
  222. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/delete_validator.py +0 -0
  223. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/ipam.py +0 -0
  224. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/permissions.py +0 -0
  225. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  226. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  227. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  228. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  229. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/node/standard.py +0 -0
  230. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/path.py +0 -0
  231. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/property.py +0 -0
  232. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/protocols.py +0 -0
  233. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/protocols_base.py +0 -0
  234. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/__init__.py +0 -0
  235. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/attribute.py +0 -0
  236. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/branch.py +0 -0
  237. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/delete.py +0 -0
  238. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/diff.py +0 -0
  239. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/relationship.py +0 -0
  240. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/resource_manager.py +0 -0
  241. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/standard_node.py +0 -0
  242. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/subquery.py +0 -0
  243. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/task.py +0 -0
  244. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/task_log.py +0 -0
  245. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/query/utils.py +0 -0
  246. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/registry.py +0 -0
  247. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/__init__.py +0 -0
  248. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  249. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  250. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  251. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  252. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  253. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/relationship/model.py +0 -0
  254. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/root.py +0 -0
  255. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/__init__.py +0 -0
  256. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  257. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  258. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  259. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/constants.py +0 -0
  260. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  261. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/__init__.py +0 -0
  262. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/account.py +0 -0
  263. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/artifact.py +0 -0
  264. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/builtin.py +0 -0
  265. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/check.py +0 -0
  266. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/core.py +0 -0
  267. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/generator.py +0 -0
  268. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/graphql_query.py +0 -0
  269. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/group.py +0 -0
  270. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/ipam.py +0 -0
  271. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/lineage.py +0 -0
  272. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/menu.py +0 -0
  273. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/permission.py +0 -0
  274. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/profile.py +0 -0
  275. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/propose_change.py +0 -0
  276. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/propose_change_comment.py +0 -0
  277. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/propose_change_validator.py +0 -0
  278. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/repository.py +0 -0
  279. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/resource_pool.py +0 -0
  280. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/template.py +0 -0
  281. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/transform.py +0 -0
  282. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/core/webhook.py +0 -0
  283. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  284. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  285. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/dropdown.py +0 -0
  286. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  287. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  288. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  289. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  290. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  291. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  292. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/generic_schema.py +0 -0
  293. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/manager.py +0 -0
  294. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/node_schema.py +0 -0
  295. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/profile_schema.py +0 -0
  296. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  297. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  298. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/schema/template_schema.py +0 -0
  299. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/task/__init__.py +0 -0
  300. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/task/task.py +0 -0
  301. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/task/task_log.py +0 -0
  302. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/task/user_task.py +0 -0
  303. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/timestamp.py +0 -0
  304. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/utils.py +0 -0
  305. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/__init__.py +0 -0
  306. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  307. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  308. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  309. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  310. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  311. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/length.py +0 -0
  312. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  313. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  314. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  315. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/checks_runner.py +0 -0
  316. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/determiner.py +0 -0
  317. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/interface.py +0 -0
  318. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/model.py +0 -0
  319. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/models/__init__.py +0 -0
  320. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  321. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/models/violation.py +0 -0
  322. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/__init__.py +0 -0
  323. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/attribute.py +0 -0
  324. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  325. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  326. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  327. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/node/relationship.py +0 -0
  328. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/query.py +0 -0
  329. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  330. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/relationship/count.py +0 -0
  331. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  332. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  333. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/shared.py +0 -0
  334. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/tasks.py +0 -0
  335. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  336. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  337. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  338. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  339. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/core/validators/uniqueness/query.py +0 -0
  340. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/__init__.py +0 -0
  341. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/constants.py +0 -0
  342. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/index.py +0 -0
  343. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/manager.py +0 -0
  344. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/memgraph.py +0 -0
  345. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/metrics.py +0 -0
  346. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/database/neo4j.py +0 -0
  347. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/__init__.py +0 -0
  348. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  349. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  350. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  351. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  352. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  353. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  354. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  355. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  356. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  357. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  358. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  359. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  360. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  361. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  362. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  363. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  364. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  365. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  366. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  367. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  368. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  369. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  370. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  371. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  372. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  373. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  374. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  375. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  376. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  377. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  378. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  379. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  380. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  381. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  382. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  383. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  384. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  385. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  386. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  387. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  388. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  389. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  390. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  391. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -0
  392. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  393. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  394. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  395. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  396. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  397. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  398. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  399. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/component/__init__.py +0 -0
  400. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  401. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/component/registry.py +0 -0
  402. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/interface.py +0 -0
  403. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/dependencies/registry.py +0 -0
  404. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/__init__.py +0 -0
  405. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/artifact_action.py +0 -0
  406. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/branch_action.py +0 -0
  407. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/constants.py +0 -0
  408. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/generator.py +0 -0
  409. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/group_action.py +0 -0
  410. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/models.py +0 -0
  411. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/node_action.py +0 -0
  412. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/repository_action.py +0 -0
  413. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/schema_action.py +0 -0
  414. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/utils.py +0 -0
  415. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/events/validator_action.py +0 -0
  416. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/generators/__init__.py +0 -0
  417. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/generators/models.py +0 -0
  418. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/generators/tasks.py +0 -0
  419. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/__init__.py +0 -0
  420. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/constants.py +0 -0
  421. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/directory.py +0 -0
  422. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/models.py +0 -0
  423. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/repository.py +0 -0
  424. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/tasks.py +0 -0
  425. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/utils.py +0 -0
  426. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git/worktree.py +0 -0
  427. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git_credential/__init__.py +0 -0
  428. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git_credential/askpass.py +0 -0
  429. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/git_credential/helper.py +0 -0
  430. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/__init__.py +0 -0
  431. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/analyzer.py +0 -0
  432. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/api/__init__.py +0 -0
  433. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/api/dependencies.py +0 -0
  434. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/api/endpoints.py +0 -0
  435. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/app.py +0 -0
  436. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/__init__.py +0 -0
  437. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  438. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  439. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  440. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  441. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  442. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  443. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  444. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  445. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/constants.py +0 -0
  446. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/context.py +0 -0
  447. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/directives.py +0 -0
  448. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/enums.py +0 -0
  449. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/initialization.py +0 -0
  450. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  451. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/loaders/node.py +0 -0
  452. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/loaders/peers.py +0 -0
  453. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/loaders/shared.py +0 -0
  454. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/manager.py +0 -0
  455. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/metrics.py +0 -0
  456. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/models.py +0 -0
  457. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  458. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/account.py +0 -0
  459. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  460. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  461. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/branch.py +0 -0
  462. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  463. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/diff.py +0 -0
  464. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  465. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/generator.py +0 -0
  466. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  467. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  468. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/main.py +0 -0
  469. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/menu.py +0 -0
  470. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/models.py +0 -0
  471. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  472. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  473. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  474. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  475. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  476. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  477. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  478. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/repository.py +0 -0
  479. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  480. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/schema.py +0 -0
  481. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  482. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/mutations/webhook.py +0 -0
  483. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/parser.py +0 -0
  484. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/permissions.py +0 -0
  485. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/__init__.py +0 -0
  486. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/account.py +0 -0
  487. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/branch.py +0 -0
  488. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  489. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  490. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/event.py +0 -0
  491. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/internal.py +0 -0
  492. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/ipam.py +0 -0
  493. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/relationship.py +0 -0
  494. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  495. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/search.py +0 -0
  496. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/status.py +0 -0
  497. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/queries/task.py +0 -0
  498. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  499. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/resolvers/many_relationship.py +0 -0
  500. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
  501. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  502. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/schema.py +0 -0
  503. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  504. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/subscription/events.py +0 -0
  505. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
  506. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/__init__.py +0 -0
  507. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/attribute.py +0 -0
  508. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/branch.py +0 -0
  509. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/common.py +0 -0
  510. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/context.py +0 -0
  511. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/enums.py +0 -0
  512. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/event.py +0 -0
  513. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/interface.py +0 -0
  514. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/node.py +0 -0
  515. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/permission.py +0 -0
  516. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/relationship.py +0 -0
  517. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/standard_node.py +0 -0
  518. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/task.py +0 -0
  519. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/types/task_log.py +0 -0
  520. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/graphql/utils.py +0 -0
  521. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/groups/__init__.py +0 -0
  522. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/groups/ancestors.py +0 -0
  523. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/groups/models.py +0 -0
  524. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/groups/parsers.py +0 -0
  525. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/groups/tasks.py +0 -0
  526. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/helpers.py +0 -0
  527. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/lock.py +0 -0
  528. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/log.py +0 -0
  529. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/__init__.py +0 -0
  530. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/constants.py +0 -0
  531. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/generator.py +0 -0
  532. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/menu.py +0 -0
  533. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/models.py +0 -0
  534. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/menu/utils.py +0 -0
  535. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/__init__.py +0 -0
  536. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  537. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
  538. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/event_branch_merge.py +0 -0
  539. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/event_worker_newprimaryapi.py +0 -0
  540. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
  541. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  542. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  543. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/proposed_change/__init__.py +0 -0
  544. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
  545. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
  546. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  547. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  548. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  549. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
  550. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
  551. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  552. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  553. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
  554. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
  555. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/event/__init__.py +0 -0
  556. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/event/branch.py +0 -0
  557. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/event/worker.py +0 -0
  558. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
  559. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
  560. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  561. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  562. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  563. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  564. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  565. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
  566. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
  567. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/requests/proposed_change.py +0 -0
  568. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  569. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  570. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/message_bus/types.py +0 -0
  571. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/middleware.py +0 -0
  572. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/models.py +0 -0
  573. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/__init__.py +0 -0
  574. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/backend.py +0 -0
  575. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/constants.py +0 -0
  576. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/globals.py +0 -0
  577. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/local_backend.py +0 -0
  578. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/manager.py +0 -0
  579. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/report.py +0 -0
  580. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/permissions/types.py +0 -0
  581. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/pools/__init__.py +0 -0
  582. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/pools/address.py +0 -0
  583. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/pools/number.py +0 -0
  584. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/pools/prefix.py +0 -0
  585. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/prefect_server/__init__.py +0 -0
  586. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/prefect_server/app.py +0 -0
  587. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/prefect_server/database.py +0 -0
  588. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/prefect_server/events.py +0 -0
  589. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/prefect_server/models.py +0 -0
  590. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/proposed_change/__init__.py +0 -0
  591. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/proposed_change/constants.py +0 -0
  592. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/proposed_change/models.py +0 -0
  593. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/proposed_change/tasks.py +0 -0
  594. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/pytest_plugin.py +0 -0
  595. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/serve/__init__.py +0 -0
  596. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/serve/gunicorn_config.py +0 -0
  597. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/serve/log.py +0 -0
  598. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/serve/worker.py +0 -0
  599. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/server.py +0 -0
  600. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/__init__.py +0 -0
  601. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/__init__.py +0 -0
  602. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  603. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  604. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  605. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  606. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  607. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  608. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  609. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  610. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  611. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  612. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  613. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  614. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  615. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/component.py +0 -0
  616. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/protocols.py +0 -0
  617. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/services/scheduler.py +0 -0
  618. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/storage.py +0 -0
  619. {infrahub_server-1.2.1/backend/infrahub/support → infrahub_server-1.2.3/backend/infrahub/task_manager}/__init__.py +0 -0
  620. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/task_manager/constants.py +0 -0
  621. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/task_manager/event.py +0 -0
  622. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/task_manager/models.py +0 -0
  623. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/task_manager/task.py +0 -0
  624. {infrahub_server-1.2.1/backend/infrahub/task_manager → infrahub_server-1.2.3/backend/infrahub/tasks}/__init__.py +0 -0
  625. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/artifact.py +0 -0
  626. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/check.py +0 -0
  627. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/dummy.py +0 -0
  628. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/keepalive.py +0 -0
  629. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/recurring.py +0 -0
  630. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/tasks/registry.py +0 -0
  631. {infrahub_server-1.2.1/backend/infrahub/tasks → infrahub_server-1.2.3/backend/infrahub/telemetry}/__init__.py +0 -0
  632. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/constants.py +0 -0
  633. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/database.py +0 -0
  634. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/models.py +0 -0
  635. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/task_manager.py +0 -0
  636. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/tasks.py +0 -0
  637. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/telemetry/utils.py +0 -0
  638. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/trace.py +0 -0
  639. {infrahub_server-1.2.1/backend/infrahub/telemetry → infrahub_server-1.2.3/backend/infrahub/transformations}/__init__.py +0 -0
  640. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/transformations/constants.py +0 -0
  641. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/transformations/models.py +0 -0
  642. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/transformations/tasks.py +0 -0
  643. {infrahub_server-1.2.1/backend/infrahub/transformations → infrahub_server-1.2.3/backend/infrahub/trigger}/__init__.py +0 -0
  644. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/trigger/catalogue.py +0 -0
  645. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/trigger/constants.py +0 -0
  646. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/trigger/models.py +0 -0
  647. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/trigger/setup.py +0 -0
  648. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/types.py +0 -0
  649. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/utils.py +0 -0
  650. {infrahub_server-1.2.1/backend/infrahub/trigger → infrahub_server-1.2.3/backend/infrahub/validators}/__init__.py +0 -0
  651. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/validators/events.py +0 -0
  652. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/validators/tasks.py +0 -0
  653. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/visuals.py +0 -0
  654. {infrahub_server-1.2.1/backend/infrahub/validators → infrahub_server-1.2.3/backend/infrahub/webhook}/__init__.py +0 -0
  655. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/webhook/gather.py +0 -0
  656. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/webhook/models.py +0 -0
  657. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/webhook/tasks.py +0 -0
  658. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/webhook/triggers.py +0 -0
  659. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/worker.py +0 -0
  660. {infrahub_server-1.2.1/backend/infrahub/webhook → infrahub_server-1.2.3/backend/infrahub/workers}/__init__.py +0 -0
  661. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workers/infrahub_async.py +0 -0
  662. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workers/utils.py +0 -0
  663. {infrahub_server-1.2.1/backend/infrahub/workers → infrahub_server-1.2.3/backend/infrahub/workflows}/__init__.py +0 -0
  664. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workflows/catalogue.py +0 -0
  665. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workflows/constants.py +0 -0
  666. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workflows/initialization.py +0 -0
  667. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/backend/infrahub/workflows/models.py +0 -0
  668. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/__init__.py +0 -0
  669. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/_importer.py +0 -0
  670. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  671. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  672. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/batch.py +0 -0
  673. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/branch.py +0 -0
  674. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/checks.py +0 -0
  675. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/code_generator.py +0 -0
  676. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/config.py +0 -0
  677. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/constants.py +0 -0
  678. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/context.py +0 -0
  679. {infrahub_server-1.2.1/backend/infrahub/workflows → infrahub_server-1.2.3/python_sdk/infrahub_sdk/ctl}/__init__.py +0 -0
  680. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  681. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  682. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  683. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  684. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  685. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/constants.py +0 -0
  686. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  687. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  688. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  689. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  690. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
  691. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
  692. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  693. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  694. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  695. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  696. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
  697. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  698. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/data.py +0 -0
  699. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/diff.py +0 -0
  700. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/graphql.py +0 -0
  701. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/groups.py +0 -0
  702. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  703. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/object_store.py +0 -0
  704. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/playback.py +0 -0
  705. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/protocols.py +0 -0
  706. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/ctl → infrahub_server-1.2.3/python_sdk/infrahub_sdk/pytest_plugin}/__init__.py +0 -0
  707. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  708. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  709. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  710. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  711. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  712. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  713. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  714. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  715. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  716. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  717. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/queries.py +0 -0
  718. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  719. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/recorder.py +0 -0
  720. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/repository.py +0 -0
  721. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
  722. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/schema/main.py +0 -0
  723. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
  724. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/pytest_plugin → infrahub_server-1.2.3/python_sdk/infrahub_sdk/spec}/__init__.py +0 -0
  725. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
  726. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/spec/object.py +0 -0
  727. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/task/__init__.py +0 -0
  728. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/task/constants.py +0 -0
  729. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/task/exceptions.py +0 -0
  730. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/task/manager.py +0 -0
  731. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/task/models.py +0 -0
  732. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/spec → infrahub_server-1.2.3/python_sdk/infrahub_sdk/testing}/__init__.py +0 -0
  733. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
  734. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  735. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/testing → infrahub_server-1.2.3/python_sdk/infrahub_sdk/testing/schemas}/__init__.py +0 -0
  736. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
  737. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  738. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  739. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  740. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/testing/schemas → infrahub_server-1.2.3/python_sdk/infrahub_sdk/transfer}/__init__.py +0 -0
  741. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  742. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  743. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/transfer → infrahub_server-1.2.3/python_sdk/infrahub_sdk/transfer/exporter}/__init__.py +0 -0
  744. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  745. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  746. {infrahub_server-1.2.1/python_sdk/infrahub_sdk/transfer/exporter → infrahub_server-1.2.3/python_sdk/infrahub_sdk/transfer/importer}/__init__.py +0 -0
  747. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  748. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  749. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  750. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/transforms.py +0 -0
  751. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/types.py +0 -0
  752. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  753. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_sdk/infrahub_sdk/yaml.py +0 -0
  754. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  755. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/constants.py +0 -0
  756. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
  757. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/host.py +0 -0
  758. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/measurements.py +0 -0
  759. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/models.py +0 -0
  760. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/performance_test.py +0 -0
  761. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/plugin.py +0 -0
  762. {infrahub_server-1.2.1 → infrahub_server-1.2.3}/python_testcontainers/infrahub_testcontainers/prometheus.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: infrahub-server
3
- Version: 1.2.1
3
+ Version: 1.2.3
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
@@ -32,6 +32,7 @@ Requires-Dist: nats-py (>=2.7.2,<3.0.0)
32
32
  Requires-Dist: neo4j (>=5.28,<5.29)
33
33
  Requires-Dist: neo4j-rust-ext (>=5.28,<5.29)
34
34
  Requires-Dist: netaddr (==1.3.0)
35
+ Requires-Dist: netutils (==1.12.0)
35
36
  Requires-Dist: numpy (>=1.24.2,<2.0.0) ; python_version >= "3.9" and python_version < "3.12"
36
37
  Requires-Dist: numpy (>=1.26.2,<2.0.0) ; python_version >= "3.12"
37
38
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (==1.28.1)
@@ -6,6 +6,7 @@ from infrahub_sdk.protocols import (
6
6
  CoreNode, # noqa: TC002
7
7
  CoreTransformPython,
8
8
  )
9
+ from infrahub_sdk.template import Jinja2Template
9
10
  from prefect import flow
10
11
  from prefect.client.orchestration import get_client
11
12
  from prefect.logging import get_run_logger
@@ -16,7 +17,6 @@ from infrahub.core.registry import registry
16
17
  from infrahub.events import BranchDeletedEvent
17
18
  from infrahub.git.repository import get_initialized_repo
18
19
  from infrahub.services import InfrahubServices # noqa: TC001 needed for prefect flow
19
- from infrahub.support.macro import MacroDefinition
20
20
  from infrahub.trigger.models import TriggerType
21
21
  from infrahub.trigger.setup import setup_triggers
22
22
  from infrahub.workflows.catalogue import (
@@ -173,15 +173,15 @@ async def update_computed_attribute_value_jinja2(
173
173
 
174
174
  await add_tags(branches=[branch_name], nodes=[obj.id], db_change=True)
175
175
 
176
- macro_definition = MacroDefinition(macro=template_value)
177
- my_filter = {}
178
- for variable in macro_definition.variables:
176
+ jinja_template = Jinja2Template(template=template_value)
177
+ variables = {}
178
+ for variable in jinja_template.get_variables():
179
179
  components = variable.split("__")
180
180
  if len(components) == 2:
181
181
  property_name = components[0]
182
182
  property_value = components[1]
183
183
  attribute_property = getattr(obj, property_name)
184
- my_filter[variable] = getattr(attribute_property, property_value)
184
+ variables[variable] = getattr(attribute_property, property_value)
185
185
  elif len(components) == 3:
186
186
  relationship_name = components[0]
187
187
  property_name = components[1]
@@ -189,11 +189,11 @@ async def update_computed_attribute_value_jinja2(
189
189
  relationship = getattr(obj, relationship_name)
190
190
  try:
191
191
  attribute_property = getattr(relationship.peer, property_name)
192
- my_filter[variable] = getattr(attribute_property, property_value)
192
+ variables[variable] = getattr(attribute_property, property_value)
193
193
  except ValueError:
194
- my_filter[variable] = ""
194
+ variables[variable] = ""
195
195
 
196
- value = macro_definition.render(variables=my_filter)
196
+ value = await jinja_template.render(variables=variables)
197
197
  existing_value = getattr(obj, attribute_name).value
198
198
  if value == existing_value:
199
199
  log.debug(f"Ignoring to update {obj} with existing value on {attribute_name}={value}")
@@ -311,35 +311,36 @@ async def trigger_update_jinja2_computed_attributes(
311
311
  async def computed_attribute_setup_jinja2(
312
312
  service: InfrahubServices, context: InfrahubContext, branch_name: str | None = None, event_name: str | None = None
313
313
  ) -> None:
314
- log = get_run_logger()
314
+ async with service.database.start_session() as db:
315
+ log = get_run_logger()
315
316
 
316
- if branch_name:
317
- await add_tags(branches=[branch_name])
318
- await wait_for_schema_to_converge(branch_name=branch_name, service=service, log=log)
319
-
320
- triggers = await gather_trigger_computed_attribute_jinja2()
321
-
322
- for trigger in triggers:
323
- if event_name != BranchDeletedEvent.event_name and trigger.branch == branch_name:
324
- await service.workflow.submit_workflow(
325
- workflow=TRIGGER_UPDATE_JINJA_COMPUTED_ATTRIBUTES,
326
- context=context,
327
- parameters={
328
- "branch_name": trigger.branch,
329
- "computed_attribute_name": trigger.computed_attribute.attribute.name,
330
- "computed_attribute_kind": trigger.computed_attribute.kind,
331
- },
332
- )
317
+ if branch_name:
318
+ await add_tags(branches=[branch_name])
319
+ await wait_for_schema_to_converge(branch_name=branch_name, component=service.component, db=db, log=log)
333
320
 
334
- # Configure all ComputedAttrJinja2Trigger in Prefect
335
- async with get_client(sync_client=False) as prefect_client:
336
- await setup_triggers(
337
- client=prefect_client,
338
- triggers=triggers,
339
- trigger_type=TriggerType.COMPUTED_ATTR_JINJA2,
340
- ) # type: ignore[misc]
321
+ triggers = await gather_trigger_computed_attribute_jinja2()
322
+
323
+ for trigger in triggers:
324
+ if event_name != BranchDeletedEvent.event_name and trigger.branch == branch_name:
325
+ await service.workflow.submit_workflow(
326
+ workflow=TRIGGER_UPDATE_JINJA_COMPUTED_ATTRIBUTES,
327
+ context=context,
328
+ parameters={
329
+ "branch_name": trigger.branch,
330
+ "computed_attribute_name": trigger.computed_attribute.attribute.name,
331
+ "computed_attribute_kind": trigger.computed_attribute.kind,
332
+ },
333
+ )
341
334
 
342
- log.info(f"{len(triggers)} Computed Attribute for Jinja2 automation configuration completed")
335
+ # Configure all ComputedAttrJinja2Trigger in Prefect
336
+ async with get_client(sync_client=False) as prefect_client:
337
+ await setup_triggers(
338
+ client=prefect_client,
339
+ triggers=triggers,
340
+ trigger_type=TriggerType.COMPUTED_ATTR_JINJA2,
341
+ ) # type: ignore[misc]
342
+
343
+ log.info(f"{len(triggers)} Computed Attribute for Jinja2 automation configuration completed")
343
344
 
344
345
 
345
346
  @flow(
@@ -353,46 +354,49 @@ async def computed_attribute_setup_python(
353
354
  event_name: str | None = None,
354
355
  commit: str | None = None, # noqa: ARG001
355
356
  ) -> None:
356
- log = get_run_logger()
357
+ async with service.database.start_session() as db:
358
+ log = get_run_logger()
359
+
360
+ branch_name = branch_name or registry.default_branch
357
361
 
358
- branch_name = branch_name or registry.default_branch
362
+ if branch_name:
363
+ await add_tags(branches=[branch_name])
364
+ await wait_for_schema_to_converge(branch_name=branch_name, component=service.component, db=db, log=log)
359
365
 
360
- if branch_name:
361
- await add_tags(branches=[branch_name])
362
- await wait_for_schema_to_converge(branch_name=branch_name, service=service, log=log)
366
+ triggers_python, triggers_python_query = await gather_trigger_computed_attribute_python(db=db)
363
367
 
364
- triggers_python, triggers_python_query = await gather_trigger_computed_attribute_python(db=service.database)
368
+ for trigger in triggers_python:
369
+ if event_name != BranchDeletedEvent.event_name and trigger.branch == branch_name:
370
+ log.info(
371
+ f"Triggering update for {trigger.computed_attribute.computed_attribute.attribute.name} on {branch_name}"
372
+ )
373
+ await service.workflow.submit_workflow(
374
+ workflow=TRIGGER_UPDATE_PYTHON_COMPUTED_ATTRIBUTES,
375
+ context=context,
376
+ parameters={
377
+ "branch_name": branch_name,
378
+ "computed_attribute_name": trigger.computed_attribute.computed_attribute.attribute.name,
379
+ "computed_attribute_kind": trigger.computed_attribute.computed_attribute.kind,
380
+ },
381
+ )
365
382
 
366
- for trigger in triggers_python:
367
- if event_name != BranchDeletedEvent.event_name and trigger.branch == branch_name:
383
+ async with get_client(sync_client=False) as prefect_client:
384
+ await setup_triggers(
385
+ client=prefect_client,
386
+ triggers=triggers_python,
387
+ trigger_type=TriggerType.COMPUTED_ATTR_PYTHON,
388
+ ) # type: ignore[misc]
389
+ log.info(f"{len(triggers_python)} Computed Attribute for Python automation configuration completed")
390
+
391
+ await setup_triggers(
392
+ client=prefect_client,
393
+ triggers=triggers_python_query,
394
+ trigger_type=TriggerType.COMPUTED_ATTR_PYTHON_QUERY,
395
+ ) # type: ignore[misc]
368
396
  log.info(
369
- f"Triggering update for {trigger.computed_attribute.computed_attribute.attribute.name} on {branch_name}"
370
- )
371
- await service.workflow.submit_workflow(
372
- workflow=TRIGGER_UPDATE_PYTHON_COMPUTED_ATTRIBUTES,
373
- context=context,
374
- parameters={
375
- "branch_name": branch_name,
376
- "computed_attribute_name": trigger.computed_attribute.computed_attribute.attribute.name,
377
- "computed_attribute_kind": trigger.computed_attribute.computed_attribute.kind,
378
- },
397
+ f"{len(triggers_python_query)} Computed Attribute for Python Query automation configuration completed"
379
398
  )
380
399
 
381
- async with get_client(sync_client=False) as prefect_client:
382
- await setup_triggers(
383
- client=prefect_client,
384
- triggers=triggers_python,
385
- trigger_type=TriggerType.COMPUTED_ATTR_PYTHON,
386
- ) # type: ignore[misc]
387
- log.info(f"{len(triggers_python)} Computed Attribute for Python automation configuration completed")
388
-
389
- await setup_triggers(
390
- client=prefect_client,
391
- triggers=triggers_python_query,
392
- trigger_type=TriggerType.COMPUTED_ATTR_PYTHON_QUERY,
393
- ) # type: ignore[misc]
394
- log.info(f"{len(triggers_python_query)} Computed Attribute for Python Query automation configuration completed")
395
-
396
400
 
397
401
  @flow(
398
402
  name="query-computed-attribute-transform-targets",
@@ -612,6 +612,9 @@ class SecuritySettings(BaseSettings):
612
612
  oauth2_provider_settings: SecurityOAuth2ProviderSettings = Field(default_factory=SecurityOAuth2ProviderSettings)
613
613
  oidc_providers: list[OIDCProvider] = Field(default_factory=list, description="The selected OIDC providers")
614
614
  oidc_provider_settings: SecurityOIDCProviderSettings = Field(default_factory=SecurityOIDCProviderSettings)
615
+ restrict_untrusted_jinja2_filters: bool = Field(
616
+ default=True, description="Indicates if untrusted Jinja2 filters should be disallowd for computed attributes"
617
+ )
615
618
  _oauth2_settings: dict[str, SecurityOAuth2Settings] = PrivateAttr(default_factory=dict)
616
619
  _oidc_settings: dict[str, SecurityOIDCSettings] = PrivateAttr(default_factory=dict)
617
620
  sso_user_default_group: str | None = Field(
@@ -0,0 +1 @@
1
+ GRAPH_VERSION = 24
@@ -24,6 +24,8 @@ from .m019_restore_rels_to_time import Migration019
24
24
  from .m020_duplicate_edges import Migration020
25
25
  from .m021_missing_hierarchy_merge import Migration021
26
26
  from .m022_add_generate_template_attr import Migration022
27
+ from .m023_deduplicate_cardinality_one_relationships import Migration023
28
+ from .m024_missing_hierarchy_backfill import Migration024
27
29
 
28
30
  if TYPE_CHECKING:
29
31
  from infrahub.core.root import Root
@@ -53,7 +55,8 @@ MIGRATIONS: list[type[GraphMigration | InternalSchemaMigration | ArbitraryMigrat
53
55
  Migration020,
54
56
  Migration021,
55
57
  Migration022,
56
- # Migration023, Enable this migration once it has been tested on bigger databases
58
+ Migration023,
59
+ Migration024,
57
60
  ]
58
61
 
59
62
 
@@ -0,0 +1,69 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any, Sequence
4
+
5
+ from infrahub.core import registry
6
+ from infrahub.core.initialization import initialization
7
+ from infrahub.core.migrations.shared import GraphMigration, MigrationResult
8
+ from infrahub.lock import initialize_lock
9
+ from infrahub.log import get_logger
10
+
11
+ from ...query import Query, QueryType
12
+
13
+ if TYPE_CHECKING:
14
+ from infrahub.database import InfrahubDatabase
15
+
16
+ log = get_logger()
17
+
18
+
19
+ class BackfillMissingHierarchyQuery(Query):
20
+ name = "backfill_missing_hierarchy"
21
+ type = QueryType.WRITE
22
+ insert_return = False
23
+
24
+ async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
25
+ # load schemas from database into registry
26
+ initialize_lock()
27
+ await initialization(db=db)
28
+ kind_hierarchy_map: dict[str, str] = {}
29
+ schema_branch = await registry.schema.load_schema_from_db(db=db)
30
+ for node_schema_kind in schema_branch.node_names:
31
+ node_schema = schema_branch.get_node(name=node_schema_kind, duplicate=False)
32
+ if node_schema.hierarchy:
33
+ kind_hierarchy_map[node_schema.kind] = node_schema.hierarchy
34
+
35
+ self.params = {"hierarchy_map": kind_hierarchy_map}
36
+ query = """
37
+ MATCH (r:Root)
38
+ WITH r.default_branch AS default_branch
39
+ MATCH (rel:Relationship {name: "parent__child"})-[e:IS_RELATED]-(n:Node)
40
+ WHERE e.hierarchy IS NULL
41
+ WITH DISTINCT rel, n, default_branch
42
+ CALL {
43
+ WITH rel, n, default_branch
44
+ MATCH (rel)-[e:IS_RELATED {branch: default_branch}]-(n)
45
+ RETURN e
46
+ ORDER BY e.from DESC
47
+ LIMIT 1
48
+ }
49
+ WITH rel, n, e
50
+ WHERE e.status = "active" AND e.hierarchy IS NULL
51
+ SET e.hierarchy = $hierarchy_map[n.kind]
52
+ """
53
+ self.add_to_query(query)
54
+
55
+
56
+ class Migration024(GraphMigration):
57
+ """
58
+ A bug in diff merge logic caused the hierarchy information on IS_RELATED edges to be lost when merged into
59
+ main. This migration backfills the missing hierarchy data and accounts for the case when the branch that
60
+ created the data has been deleted.
61
+ """
62
+
63
+ name: str = "024_backfill_hierarchy"
64
+ minimum_version: int = 23
65
+ queries: Sequence[type[Query]] = [BackfillMissingHierarchyQuery]
66
+
67
+ async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
68
+ result = MigrationResult()
69
+ return result
@@ -19,6 +19,8 @@ if TYPE_CHECKING:
19
19
  from infrahub.core.schema import MainSchemaTypes
20
20
  from infrahub.core.schema.schema_branch import SchemaBranch
21
21
 
22
+ GENERIC_ATTRIBUTES_TO_IGNORE = ["namespace", "name", "branch"]
23
+
22
24
 
23
25
  class NodeKind(BaseModel):
24
26
  namespace: str
@@ -270,6 +272,10 @@ class SchemaUpdateValidationResult(BaseModel):
270
272
  field_info = schema.model_fields[node_field_name]
271
273
  field_update = str(field_info.json_schema_extra.get("update")) # type: ignore[union-attr]
272
274
 
275
+ # No need to execute a migration for generic nodes attributes because they are not stored in the database
276
+ if schema.is_generic_schema and node_field_name in GENERIC_ATTRIBUTES_TO_IGNORE:
277
+ return
278
+
273
279
  schema_path = SchemaPath( # type: ignore[call-arg]
274
280
  schema_kind=schema.kind,
275
281
  path_type=SchemaPathType.NODE,
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from enum import Enum
4
4
  from typing import TYPE_CHECKING, Any, Sequence, TypeVar, overload
5
5
 
6
+ from infrahub_sdk.template import Jinja2Template
6
7
  from infrahub_sdk.utils import is_valid_uuid
7
8
  from infrahub_sdk.uuidt import UUIDT
8
9
 
@@ -24,7 +25,6 @@ from infrahub.core.query.node import NodeCheckIDQuery, NodeCreateAllQuery, NodeD
24
25
  from infrahub.core.schema import AttributeSchema, NodeSchema, ProfileSchema, RelationshipSchema, TemplateSchema
25
26
  from infrahub.core.timestamp import Timestamp
26
27
  from infrahub.exceptions import InitializationError, NodeNotFoundError, PoolExhaustedError, ValidationError
27
- from infrahub.support.macro import MacroDefinition
28
28
  from infrahub.types import ATTRIBUTE_TYPES
29
29
 
30
30
  from ...graphql.constants import KIND_GRAPHQL_FIELD_NAME
@@ -458,9 +458,9 @@ class Node(BaseNode, metaclass=BaseNodeMeta):
458
458
  ValidationError({macro: f"{macro} is missing computational_logic for macro ({attr_schema.kind})"})
459
459
  )
460
460
  continue
461
- macro_definition = MacroDefinition(macro=attr_schema.computed_attribute.jinja2_template)
462
461
 
463
- for variable in macro_definition.variables:
462
+ jinja_template = Jinja2Template(template=attr_schema.computed_attribute.jinja2_template)
463
+ for variable in jinja_template.get_variables():
464
464
  attribute_path = schema_branch.validate_schema_path(
465
465
  node_schema=self._schema, path=variable, allowed_path_types=allowed_path_types
466
466
  )
@@ -487,7 +487,7 @@ class Node(BaseNode, metaclass=BaseNodeMeta):
487
487
  )
488
488
  variables[variable] = attribute
489
489
 
490
- content = macro_definition.render(variables=variables)
490
+ content = await jinja_template.render(variables=variables)
491
491
 
492
492
  generator_method_name = "_generate_attribute_default"
493
493
  if hasattr(self, f"generate_{attr_schema.name}"):
@@ -225,16 +225,31 @@ class NodeGroupedUniquenessConstraint(NodeConstraintInterface):
225
225
  )
226
226
  violations.extend(schema_violations)
227
227
 
228
- is_hfid_violated = any(violation.typ == UniquenessConstraintType.HFID for violation in violations)
228
+ hfid_violations = [violation for violation in violations if violation.typ == UniquenessConstraintType.HFID]
229
+ hfid_violation = hfid_violations[0] if len(hfid_violations) > 0 else None
229
230
 
230
- for violation in violations:
231
- if violation.typ == UniquenessConstraintType.STANDARD or (
232
- violation.typ == UniquenessConstraintType.SUBSET_OF_HFID and not is_hfid_violated
233
- ):
234
- error_msg = f"Violates uniqueness constraint '{'-'.join(violation.fields)}'"
235
- raise ValidationError(error_msg)
231
+ # If there are both a hfid violation and another one, in case of an upsert, we still want to update the node in case other violations are:
232
+ # - either on subset fields of hfid, which would be necessarily violated too
233
+ # - or on uniqueness constraints with a matching node id being the id of the hfid violation
236
234
 
237
235
  for violation in violations:
238
236
  if violation.typ == UniquenessConstraintType.HFID:
239
- error_msg = f"Violates uniqueness constraint '{'-'.join(violation.fields)}'"
240
- raise HFIDViolatedError(error_msg, matching_nodes_ids=violation.nodes_ids)
237
+ continue
238
+
239
+ if hfid_violation:
240
+ if violation.typ == UniquenessConstraintType.SUBSET_OF_HFID:
241
+ continue
242
+
243
+ if (
244
+ violation.typ == UniquenessConstraintType.STANDARD
245
+ and len(violation.nodes_ids) == 1
246
+ and next(iter(violation.nodes_ids)) == next(iter(hfid_violation.nodes_ids))
247
+ ):
248
+ continue
249
+
250
+ error_msg = f"Violates uniqueness constraint '{'-'.join(violation.fields)}'"
251
+ raise ValidationError(error_msg)
252
+
253
+ if hfid_violation:
254
+ error_msg = f"Violates uniqueness constraint '{'-'.join(hfid_violation.fields)}'"
255
+ raise HFIDViolatedError(error_msg, matching_nodes_ids=hfid_violation.nodes_ids)
@@ -362,7 +362,7 @@ class IPPrefixReconcileQuery(Query):
362
362
  # possible prefix: highest possible prefix length for a match
363
363
  possible_prefix_map: dict[str, int] = {}
364
364
  start_prefixlen = prefixlen if is_address else prefixlen - 1
365
- for max_prefix_len in range(start_prefixlen, 0, -1):
365
+ for max_prefix_len in range(start_prefixlen, -1, -1):
366
366
  tmp_prefix = prefix_bin_host[:max_prefix_len]
367
367
  possible_prefix = tmp_prefix.ljust(self.ip_value.max_prefixlen, "0")
368
368
  if possible_prefix not in possible_prefix_map:
@@ -8,6 +8,7 @@ from enum import Enum
8
8
  from typing import TYPE_CHECKING, Any, AsyncIterator, Generator
9
9
 
10
10
  from infrahub import config
11
+ from infrahub.core import registry
11
12
  from infrahub.core.constants import (
12
13
  AttributeDBNodeType,
13
14
  RelationshipDirection,
@@ -713,14 +714,24 @@ class NodeGetKindQuery(Query):
713
714
  super().__init__(**kwargs)
714
715
 
715
716
  async def query_init(self, db: InfrahubDatabase, **kwargs: Any) -> None: # noqa: ARG002
717
+ self.params["ids"] = self.ids
716
718
  query = """
717
- MATCH p = (root:Root)<-[r_root:IS_PART_OF]-(n:Node)
718
- WHERE n.uuid IN $ids
719
+ MATCH (n:Node)-[r:IS_PART_OF {status: "active"}]->(:Root)
720
+ WHERE toString(n.uuid) IN $ids
721
+ """
722
+ # only add the branch filter logic if a branch is included in the query parameters
723
+ if branch := getattr(self, "branch", None):
724
+ branch = await registry.get_branch(db=db, branch=branch)
725
+ branch_filter, branch_params = branch.get_query_filter_path(at=self.at)
726
+ self.params.update(branch_params)
727
+ query += f"AND {branch_filter}"
728
+ query += """
729
+ WITH n.uuid AS node_id, n.kind AS node_kind
730
+ ORDER BY r.from DESC
731
+ WITH node_id, head(collect(node_kind)) AS node_kind
719
732
  """
720
733
  self.add_to_query(query)
721
- self.params["ids"] = self.ids
722
-
723
- self.return_labels = ["n.uuid AS node_id", "n.kind AS node_kind"]
734
+ self.return_labels = ["node_id", "node_kind"]
724
735
 
725
736
  async def get_node_kind_map(self) -> dict[str, str]:
726
737
  node_kind_map: dict[str, str] = {}
@@ -6,6 +6,8 @@ from collections import defaultdict
6
6
  from itertools import chain, combinations
7
7
  from typing import Any
8
8
 
9
+ from infrahub_sdk.template import Jinja2Template
10
+ from infrahub_sdk.template.exceptions import JinjaTemplateError, JinjaTemplateOperationViolationError
9
11
  from infrahub_sdk.topological_sort import DependencyCycleExistsError, topological_sort
10
12
  from infrahub_sdk.utils import compare_lists, deep_merge_dict, duplicates, intersection
11
13
  from typing_extensions import Self
@@ -51,7 +53,6 @@ from infrahub.core.schema.definitions.core import core_profile_schema_definition
51
53
  from infrahub.core.validators import CONSTRAINT_VALIDATOR_MAP
52
54
  from infrahub.exceptions import SchemaNotFoundError, ValidationError
53
55
  from infrahub.log import get_logger
54
- from infrahub.support.macro import MacroDefinition
55
56
  from infrahub.types import ATTRIBUTE_TYPES
56
57
  from infrahub.utils import format_label
57
58
  from infrahub.visuals import select_color
@@ -1037,14 +1038,22 @@ class SchemaBranch:
1037
1038
  | SchemaElementPathType.REL_ONE_MANDATORY_ATTR_WITH_PROP
1038
1039
  | SchemaElementPathType.REL_ONE_ATTR_WITH_PROP
1039
1040
  )
1041
+
1042
+ jinja_template = Jinja2Template(template=attribute.computed_attribute.jinja2_template)
1040
1043
  try:
1041
- macro = MacroDefinition(macro=attribute.computed_attribute.jinja2_template)
1042
- except ValueError as exc:
1044
+ variables = jinja_template.get_variables()
1045
+ jinja_template.validate(restricted=config.SETTINGS.security.restrict_untrusted_jinja2_filters)
1046
+ except JinjaTemplateOperationViolationError as exc:
1047
+ raise ValueError(
1048
+ f"{node.kind}: Attribute {attribute.name!r} is assigned by a jinja2 template, but has an invalid template: {exc.message}"
1049
+ ) from exc
1050
+
1051
+ except JinjaTemplateError as exc:
1043
1052
  raise ValueError(
1044
- f"{node.kind}: Attribute {attribute.name!r} is assigned by a jinja2 template, but has an invalid template"
1053
+ f"{node.kind}: Attribute {attribute.name!r} is assigned by a jinja2 template, but has an invalid template: : {exc.message}"
1045
1054
  ) from exc
1046
1055
 
1047
- for variable in macro.variables:
1056
+ for variable in variables:
1048
1057
  try:
1049
1058
  schema_path = self.validate_schema_path(
1050
1059
  node_schema=node, path=variable, allowed_path_types=allowed_path_types
@@ -76,6 +76,32 @@ class RepositoryError(Error):
76
76
  super().__init__(self.message)
77
77
 
78
78
 
79
+ class RepositoryConnectionError(RepositoryError):
80
+ def __init__(self, identifier: str, message: str | None = None) -> None:
81
+ super().__init__(
82
+ identifier=identifier,
83
+ message=message
84
+ or f"Unable to clone the repository {identifier}, please check the address and the credential",
85
+ )
86
+
87
+
88
+ class RepositoryCredentialsError(RepositoryError):
89
+ def __init__(self, identifier: str, message: str | None = None) -> None:
90
+ super().__init__(
91
+ identifier=identifier,
92
+ message=message or f"Authentication failed for {identifier}, please validate the credentials.",
93
+ )
94
+
95
+
96
+ class RepositoryInvalidBranchError(RepositoryError):
97
+ def __init__(self, identifier: str, branch_name: str, location: str, message: str | None = None) -> None:
98
+ super().__init__(
99
+ identifier=identifier,
100
+ message=message
101
+ or f"The branch {branch_name} isn't a valid branch for the repository {identifier} at {location}.",
102
+ )
103
+
104
+
79
105
  class RepositoryInvalidFileSystemError(RepositoryError):
80
106
  def __init__(
81
107
  self,
@@ -83,9 +109,11 @@ class RepositoryInvalidFileSystemError(RepositoryError):
83
109
  directory: Path,
84
110
  message: str | None = None,
85
111
  ) -> None:
86
- super().__init__(identifier=identifier)
112
+ super().__init__(
113
+ identifier=identifier,
114
+ message=message or f"Invalid file system for {identifier}, Local directory {directory} missing.",
115
+ )
87
116
  self.directory = directory
88
- self.message = message or f"Invalid file system for {identifier}, Local directory {directory} missing."
89
117
 
90
118
 
91
119
  class CommitNotFoundError(Error):