infrahub-server 1.2.6__tar.gz → 1.2.8__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 (778) hide show
  1. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/PKG-INFO +2 -2
  2. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/transformation.py +1 -0
  3. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/artifacts/models.py +4 -0
  4. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/db.py +3 -1
  5. infrahub_server-1.2.8/backend/infrahub/cli/patch.py +153 -0
  6. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/models.py +81 -1
  7. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/tasks.py +35 -53
  8. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/config.py +2 -1
  9. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constants/__init__.py +1 -0
  10. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/graph/index.py +3 -1
  11. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/manager.py +16 -5
  12. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +7 -8
  13. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/__init__.py +4 -1
  14. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/protocols.py +1 -0
  15. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/ipam.py +7 -5
  16. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/node.py +96 -29
  17. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/builtin.py +2 -4
  18. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/transform.py +1 -0
  19. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/aggregated_checker.py +2 -2
  20. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/uniqueness/query.py +8 -3
  21. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/__init__.py +2 -10
  22. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/index.py +1 -1
  23. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/memgraph.py +2 -1
  24. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/neo4j.py +1 -1
  25. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/integrator.py +27 -3
  26. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/models.py +4 -0
  27. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/tasks.py +3 -0
  28. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git_credential/helper.py +2 -2
  29. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/requests/proposed_change.py +6 -0
  30. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/types.py +3 -0
  31. infrahub_server-1.2.8/backend/infrahub/patch/constants.py +13 -0
  32. infrahub_server-1.2.8/backend/infrahub/patch/edge_adder.py +64 -0
  33. infrahub_server-1.2.8/backend/infrahub/patch/edge_deleter.py +33 -0
  34. infrahub_server-1.2.8/backend/infrahub/patch/edge_updater.py +28 -0
  35. infrahub_server-1.2.8/backend/infrahub/patch/models.py +98 -0
  36. infrahub_server-1.2.8/backend/infrahub/patch/plan_reader.py +107 -0
  37. infrahub_server-1.2.8/backend/infrahub/patch/plan_writer.py +92 -0
  38. infrahub_server-1.2.8/backend/infrahub/patch/queries/base.py +17 -0
  39. infrahub_server-1.2.8/backend/infrahub/patch/queries/consolidate_duplicated_nodes.py +109 -0
  40. infrahub_server-1.2.8/backend/infrahub/patch/queries/delete_duplicated_edges.py +138 -0
  41. infrahub_server-1.2.8/backend/infrahub/patch/runner.py +254 -0
  42. infrahub_server-1.2.8/backend/infrahub/patch/vertex_adder.py +61 -0
  43. infrahub_server-1.2.8/backend/infrahub/patch/vertex_deleter.py +33 -0
  44. infrahub_server-1.2.8/backend/infrahub/patch/vertex_updater.py +28 -0
  45. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/proposed_change/tasks.py +1 -0
  46. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/server.py +3 -1
  47. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/transformations/models.py +3 -0
  48. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/transformations/tasks.py +1 -0
  49. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/webhook/models.py +3 -0
  50. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/pyproject.toml +2 -2
  51. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/checks.py +1 -1
  52. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/client.py +4 -4
  53. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/config.py +17 -0
  54. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/cli_commands.py +9 -3
  55. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/generator.py +2 -2
  56. infrahub_server-1.2.8/python_sdk/infrahub_sdk/ctl/menu.py +97 -0
  57. infrahub_server-1.2.8/python_sdk/infrahub_sdk/ctl/object.py +97 -0
  58. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/utils.py +22 -1
  59. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/exceptions.py +19 -1
  60. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/generator.py +12 -66
  61. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/node.py +42 -26
  62. infrahub_server-1.2.8/python_sdk/infrahub_sdk/operation.py +80 -0
  63. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/protocols.py +12 -0
  64. infrahub_server-1.2.8/python_sdk/infrahub_sdk/protocols_generator/constants.py +28 -0
  65. infrahub_server-1.2.6/python_sdk/infrahub_sdk/code_generator.py → infrahub_server-1.2.8/python_sdk/infrahub_sdk/protocols_generator/generator.py +47 -34
  66. infrahub_server-1.2.8/python_sdk/infrahub_sdk/protocols_generator/template.j2 +114 -0
  67. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/recorder.py +3 -0
  68. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/schema/__init__.py +110 -74
  69. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/schema/main.py +36 -2
  70. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/schema/repository.py +6 -0
  71. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/spec/menu.py +3 -3
  72. infrahub_server-1.2.8/python_sdk/infrahub_sdk/spec/object.py +613 -0
  73. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/testing/docker.py +4 -5
  74. infrahub_server-1.2.8/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
  75. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/testing/schemas/animal.py +7 -0
  76. infrahub_server-1.2.8/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  77. infrahub_server-1.2.8/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  78. infrahub_server-1.2.8/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  79. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transforms.py +15 -27
  80. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/yaml.py +63 -7
  81. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +2 -0
  82. infrahub_server-1.2.6/python_sdk/infrahub_sdk/ctl/constants.py +0 -115
  83. infrahub_server-1.2.6/python_sdk/infrahub_sdk/ctl/menu.py +0 -54
  84. infrahub_server-1.2.6/python_sdk/infrahub_sdk/ctl/object.py +0 -47
  85. infrahub_server-1.2.6/python_sdk/infrahub_sdk/spec/object.py +0 -132
  86. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/LICENSE.txt +0 -0
  87. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/README.md +0 -0
  88. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/__init__.py +0 -0
  89. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/__init__.py +0 -0
  90. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/artifact.py +0 -0
  91. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/auth.py +0 -0
  92. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/dependencies.py +0 -0
  93. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/diff/__init__.py +0 -0
  94. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/diff/diff.py +0 -0
  95. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/diff/validation_models.py +0 -0
  96. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/exception_handlers.py +0 -0
  97. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/exceptions.py +0 -0
  98. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/file.py +0 -0
  99. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/internal.py +0 -0
  100. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/menu.py +0 -0
  101. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/oauth2.py +0 -0
  102. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/oidc.py +0 -0
  103. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/query.py +0 -0
  104. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/schema.py +0 -0
  105. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  106. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  107. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/static/swagger-ui.css +0 -0
  108. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/api/storage.py +0 -0
  109. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/artifacts/__init__.py +0 -0
  110. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/artifacts/tasks.py +0 -0
  111. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/auth.py +0 -0
  112. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/__init__.py +0 -0
  113. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/constants.py +0 -0
  114. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/context.py +0 -0
  115. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/events.py +0 -0
  116. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/git_agent.py +0 -0
  117. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/server.py +0 -0
  118. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/tasks.py +0 -0
  119. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/cli/upgrade.py +0 -0
  120. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/components.py +0 -0
  121. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/__init__.py +0 -0
  122. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/constants.py +0 -0
  123. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/gather.py +0 -0
  124. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/computed_attribute/triggers.py +0 -0
  125. {infrahub_server-1.2.6/backend/infrahub/core/changelog → infrahub_server-1.2.8/backend/infrahub/constants}/__init__.py +0 -0
  126. /infrahub_server-1.2.6/backend/infrahub/database/constants.py → /infrahub_server-1.2.8/backend/infrahub/constants/database.py +0 -0
  127. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/context.py +0 -0
  128. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/__init__.py +0 -0
  129. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/account.py +0 -0
  130. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/attribute.py +0 -0
  131. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/branch/__init__.py +0 -0
  132. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/branch/models.py +0 -0
  133. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/branch/tasks.py +0 -0
  134. {infrahub_server-1.2.6/backend/infrahub/core/constraint → infrahub_server-1.2.8/backend/infrahub/core/changelog}/__init__.py +0 -0
  135. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/changelog/diff.py +0 -0
  136. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/changelog/models.py +0 -0
  137. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constants/database.py +0 -0
  138. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  139. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constants/relationship_label.py +0 -0
  140. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constants/schema.py +0 -0
  141. {infrahub_server-1.2.6/backend/infrahub/core/constraint/node → infrahub_server-1.2.8/backend/infrahub/core/constraint}/__init__.py +0 -0
  142. {infrahub_server-1.2.6/backend/infrahub/core/diff → infrahub_server-1.2.8/backend/infrahub/core/constraint/node}/__init__.py +0 -0
  143. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/constraint/node/runner.py +0 -0
  144. {infrahub_server-1.2.6/backend/infrahub/core/diff/artifacts → infrahub_server-1.2.8/backend/infrahub/core/diff}/__init__.py +0 -0
  145. {infrahub_server-1.2.6/backend/infrahub/core/diff/enricher → infrahub_server-1.2.8/backend/infrahub/core/diff/artifacts}/__init__.py +0 -0
  146. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  147. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/branch_differ.py +0 -0
  148. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/calculator.py +0 -0
  149. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/combiner.py +0 -0
  150. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  151. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  152. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  153. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/coordinator.py +0 -0
  154. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  155. {infrahub_server-1.2.6/backend/infrahub/core/diff/merger → infrahub_server-1.2.8/backend/infrahub/core/diff/enricher}/__init__.py +0 -0
  156. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  157. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  158. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  159. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  160. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  161. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  162. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/enricher/summary_counts.py +0 -0
  163. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/exceptions.py +0 -0
  164. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  165. {infrahub_server-1.2.6/backend/infrahub/core/diff/model → infrahub_server-1.2.8/backend/infrahub/core/diff/merger}/__init__.py +0 -0
  166. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/merger/merger.py +0 -0
  167. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/merger/model.py +0 -0
  168. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  169. {infrahub_server-1.2.6/backend/infrahub/core/diff/query → infrahub_server-1.2.8/backend/infrahub/core/diff/model}/__init__.py +0 -0
  170. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/model/diff.py +0 -0
  171. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/model/path.py +0 -0
  172. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/models.py +0 -0
  173. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  174. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/payload_builder.py +0 -0
  175. {infrahub_server-1.2.6/backend/infrahub/core/diff/repository → infrahub_server-1.2.8/backend/infrahub/core/diff/query}/__init__.py +0 -0
  176. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  177. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/artifact.py +0 -0
  178. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  179. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  180. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  181. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  182. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  183. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/filters.py +0 -0
  184. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  185. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  186. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/merge.py +0 -0
  187. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  188. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  189. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/save.py +0 -0
  190. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  191. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  192. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  193. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/query_parser.py +0 -0
  194. {infrahub_server-1.2.6/backend/infrahub/core/integrity → infrahub_server-1.2.8/backend/infrahub/core/diff/repository}/__init__.py +0 -0
  195. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  196. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/repository/repository.py +0 -0
  197. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/diff/tasks.py +0 -0
  198. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/enums.py +0 -0
  199. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/graph/__init__.py +0 -0
  200. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/graph/constraints.py +0 -0
  201. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/graph/schema.py +0 -0
  202. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/initialization.py +0 -0
  203. {infrahub_server-1.2.6/backend/infrahub/core/integrity/object_conflict → infrahub_server-1.2.8/backend/infrahub/core/integrity}/__init__.py +0 -0
  204. {infrahub_server-1.2.6/backend/infrahub/core/ipam → infrahub_server-1.2.8/backend/infrahub/core/integrity/object_conflict}/__init__.py +0 -0
  205. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  206. {infrahub_server-1.2.6/backend/infrahub/core/migrations/schema → infrahub_server-1.2.8/backend/infrahub/core/ipam}/__init__.py +0 -0
  207. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/constants.py +0 -0
  208. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  209. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/model.py +0 -0
  210. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/reconciler.py +0 -0
  211. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/size.py +0 -0
  212. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/tasks.py +0 -0
  213. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/ipam/utilization.py +0 -0
  214. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/merge.py +0 -0
  215. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/__init__.py +0 -0
  216. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/__init__.py +0 -0
  217. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  218. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  219. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  220. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  221. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  222. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  223. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  224. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  225. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  226. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  227. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  228. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  229. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  230. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  231. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  232. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  233. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  234. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  235. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  236. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +0 -0
  237. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m022_add_generate_template_attr.py +0 -0
  238. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m023_deduplicate_cardinality_one_relationships.py +0 -0
  239. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +0 -0
  240. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m025_uniqueness_nulls.py +0 -0
  241. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/graph/m026_0000_prefix_fix.py +0 -0
  242. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  243. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  244. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  245. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  246. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  247. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  248. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  249. {infrahub_server-1.2.6/backend/infrahub/core/node/constraints → infrahub_server-1.2.8/backend/infrahub/core/migrations/schema}/__init__.py +0 -0
  250. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  251. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/models.py +0 -0
  252. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  253. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  254. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  255. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  256. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  257. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  258. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/migrations/shared.py +0 -0
  259. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/models.py +0 -0
  260. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/base.py +0 -0
  261. {infrahub_server-1.2.6/backend/infrahub/core/node/resource_manager → infrahub_server-1.2.8/backend/infrahub/core/node/constraints}/__init__.py +0 -0
  262. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  263. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +0 -0
  264. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/constraints/interface.py +0 -0
  265. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/delete_validator.py +0 -0
  266. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/ipam.py +0 -0
  267. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/permissions.py +0 -0
  268. {infrahub_server-1.2.6/backend/infrahub/core/relationship/constraints → infrahub_server-1.2.8/backend/infrahub/core/node/resource_manager}/__init__.py +0 -0
  269. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  270. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  271. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  272. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/node/standard.py +0 -0
  273. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/path.py +0 -0
  274. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/property.py +0 -0
  275. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/protocols_base.py +0 -0
  276. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/__init__.py +0 -0
  277. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/attribute.py +0 -0
  278. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/branch.py +0 -0
  279. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/delete.py +0 -0
  280. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/diff.py +0 -0
  281. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/relationship.py +0 -0
  282. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/resource_manager.py +0 -0
  283. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/standard_node.py +0 -0
  284. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/subquery.py +0 -0
  285. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/task.py +0 -0
  286. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/task_log.py +0 -0
  287. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/query/utils.py +0 -0
  288. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/registry.py +0 -0
  289. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/__init__.py +0 -0
  290. {infrahub_server-1.2.6/backend/infrahub/core/schema/definitions → infrahub_server-1.2.8/backend/infrahub/core/relationship/constraints}/__init__.py +0 -0
  291. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  292. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  293. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  294. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  295. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/relationship/model.py +0 -0
  296. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/root.py +0 -0
  297. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/__init__.py +0 -0
  298. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  299. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  300. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  301. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/constants.py +0 -0
  302. {infrahub_server-1.2.6/backend/infrahub/core/schema/generated → infrahub_server-1.2.8/backend/infrahub/core/schema/definitions}/__init__.py +0 -0
  303. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/__init__.py +0 -0
  304. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/account.py +0 -0
  305. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/artifact.py +0 -0
  306. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/check.py +0 -0
  307. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/core.py +0 -0
  308. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/generator.py +0 -0
  309. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/graphql_query.py +0 -0
  310. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/group.py +0 -0
  311. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/ipam.py +0 -0
  312. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/lineage.py +0 -0
  313. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/menu.py +0 -0
  314. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/permission.py +0 -0
  315. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/profile.py +0 -0
  316. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/propose_change.py +0 -0
  317. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/propose_change_comment.py +0 -0
  318. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/propose_change_validator.py +0 -0
  319. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/repository.py +0 -0
  320. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/resource_pool.py +0 -0
  321. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/template.py +0 -0
  322. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/core/webhook.py +0 -0
  323. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  324. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  325. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/dropdown.py +0 -0
  326. {infrahub_server-1.2.6/backend/infrahub/core/validators/attribute → infrahub_server-1.2.8/backend/infrahub/core/schema/generated}/__init__.py +0 -0
  327. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  328. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  329. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  330. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  331. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  332. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/generic_schema.py +0 -0
  333. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/manager.py +0 -0
  334. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/node_schema.py +0 -0
  335. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/profile_schema.py +0 -0
  336. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  337. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/schema_branch.py +0 -0
  338. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  339. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/schema/template_schema.py +0 -0
  340. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/task/__init__.py +0 -0
  341. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/task/task.py +0 -0
  342. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/task/task_log.py +0 -0
  343. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/task/user_task.py +0 -0
  344. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/timestamp.py +0 -0
  345. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/utils.py +0 -0
  346. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/__init__.py +0 -0
  347. {infrahub_server-1.2.6/backend/infrahub/core/validators/models → infrahub_server-1.2.8/backend/infrahub/core/validators/attribute}/__init__.py +0 -0
  348. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  349. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  350. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  351. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/length.py +0 -0
  352. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  353. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  354. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  355. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/checks_runner.py +0 -0
  356. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/determiner.py +0 -0
  357. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/interface.py +0 -0
  358. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/model.py +0 -0
  359. {infrahub_server-1.2.6/backend/infrahub/core/validators/node → infrahub_server-1.2.8/backend/infrahub/core/validators/models}/__init__.py +0 -0
  360. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  361. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/models/violation.py +0 -0
  362. {infrahub_server-1.2.6/backend/infrahub/core/validators/relationship → infrahub_server-1.2.8/backend/infrahub/core/validators/node}/__init__.py +0 -0
  363. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/node/attribute.py +0 -0
  364. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  365. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  366. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  367. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/node/relationship.py +0 -0
  368. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/query.py +0 -0
  369. {infrahub_server-1.2.6/backend/infrahub/core/validators/uniqueness → infrahub_server-1.2.8/backend/infrahub/core/validators/relationship}/__init__.py +0 -0
  370. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/relationship/count.py +0 -0
  371. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  372. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  373. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/shared.py +0 -0
  374. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/tasks.py +0 -0
  375. {infrahub_server-1.2.6/backend/infrahub/dependencies → infrahub_server-1.2.8/backend/infrahub/core/validators/uniqueness}/__init__.py +0 -0
  376. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  377. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  378. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  379. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/manager.py +0 -0
  380. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/database/metrics.py +0 -0
  381. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/constraint → infrahub_server-1.2.8/backend/infrahub/dependencies}/__init__.py +0 -0
  382. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/constraint/grouped → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/constraint}/__init__.py +0 -0
  383. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/constraint/node → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/constraint/grouped}/__init__.py +0 -0
  384. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  385. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/constraint/relationship_manager → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/constraint/node}/__init__.py +0 -0
  386. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  387. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  388. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/constraint/schema → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/constraint/relationship_manager}/__init__.py +0 -0
  389. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  390. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  391. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  392. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/diff → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/constraint/schema}/__init__.py +0 -0
  393. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  394. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  395. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  396. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  397. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  398. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  399. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  400. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  401. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  402. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  403. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  404. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  405. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  406. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  407. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  408. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/diff/enricher → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/diff}/__init__.py +0 -0
  409. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  410. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  411. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  412. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  413. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  414. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  415. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  416. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  417. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  418. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  419. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/ip → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/diff/enricher}/__init__.py +0 -0
  420. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  421. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  422. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  423. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  424. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  425. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -0
  426. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  427. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  428. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  429. {infrahub_server-1.2.6/backend/infrahub/dependencies/builder/node → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/ip}/__init__.py +0 -0
  430. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  431. {infrahub_server-1.2.6/backend/infrahub/dependencies/component → infrahub_server-1.2.8/backend/infrahub/dependencies/builder/node}/__init__.py +0 -0
  432. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  433. {infrahub_server-1.2.6/backend/infrahub/generators → infrahub_server-1.2.8/backend/infrahub/dependencies/component}/__init__.py +0 -0
  434. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  435. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/component/registry.py +0 -0
  436. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/interface.py +0 -0
  437. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/dependencies/registry.py +0 -0
  438. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/__init__.py +0 -0
  439. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/artifact_action.py +0 -0
  440. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/branch_action.py +0 -0
  441. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/constants.py +0 -0
  442. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/generator.py +0 -0
  443. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/group_action.py +0 -0
  444. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/models.py +0 -0
  445. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/node_action.py +0 -0
  446. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/repository_action.py +0 -0
  447. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/schema_action.py +0 -0
  448. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/utils.py +0 -0
  449. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/events/validator_action.py +0 -0
  450. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/exceptions.py +0 -0
  451. {infrahub_server-1.2.6/backend/infrahub/git_credential → infrahub_server-1.2.8/backend/infrahub/generators}/__init__.py +0 -0
  452. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/generators/models.py +0 -0
  453. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/generators/tasks.py +0 -0
  454. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/__init__.py +0 -0
  455. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/base.py +0 -0
  456. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/constants.py +0 -0
  457. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/directory.py +0 -0
  458. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/repository.py +0 -0
  459. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/utils.py +0 -0
  460. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git/worktree.py +0 -0
  461. {infrahub_server-1.2.6/backend/infrahub/graphql → infrahub_server-1.2.8/backend/infrahub/git_credential}/__init__.py +0 -0
  462. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/git_credential/askpass.py +0 -0
  463. {infrahub_server-1.2.6/backend/infrahub/graphql/api → infrahub_server-1.2.8/backend/infrahub/graphql}/__init__.py +0 -0
  464. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/analyzer.py +0 -0
  465. {infrahub_server-1.2.6/backend/infrahub/graphql/auth → infrahub_server-1.2.8/backend/infrahub/graphql/api}/__init__.py +0 -0
  466. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/api/dependencies.py +0 -0
  467. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/api/endpoints.py +0 -0
  468. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/app.py +0 -0
  469. {infrahub_server-1.2.6/backend/infrahub/graphql/auth/query_permission_checker → infrahub_server-1.2.8/backend/infrahub/graphql/auth}/__init__.py +0 -0
  470. {infrahub_server-1.2.6/backend/infrahub/graphql/loaders → infrahub_server-1.2.8/backend/infrahub/graphql/auth/query_permission_checker}/__init__.py +0 -0
  471. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  472. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  473. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  474. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  475. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  476. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  477. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  478. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/constants.py +0 -0
  479. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/context.py +0 -0
  480. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/directives.py +0 -0
  481. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/enums.py +0 -0
  482. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/initialization.py +0 -0
  483. {infrahub_server-1.2.6/backend/infrahub/graphql/mutations → infrahub_server-1.2.8/backend/infrahub/graphql/loaders}/__init__.py +0 -0
  484. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/loaders/node.py +0 -0
  485. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/loaders/peers.py +0 -0
  486. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/loaders/shared.py +0 -0
  487. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/manager.py +0 -0
  488. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/metrics.py +0 -0
  489. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/models.py +0 -0
  490. {infrahub_server-1.2.6/backend/infrahub/graphql/mutations/node_getter → infrahub_server-1.2.8/backend/infrahub/graphql/mutations}/__init__.py +0 -0
  491. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/account.py +0 -0
  492. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  493. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  494. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/branch.py +0 -0
  495. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  496. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/diff.py +0 -0
  497. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  498. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/generator.py +0 -0
  499. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  500. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  501. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/main.py +0 -0
  502. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/menu.py +0 -0
  503. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/models.py +0 -0
  504. {infrahub_server-1.2.6/backend/infrahub/graphql/queries/diff → infrahub_server-1.2.8/backend/infrahub/graphql/mutations/node_getter}/__init__.py +0 -0
  505. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  506. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  507. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  508. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  509. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  510. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  511. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/repository.py +0 -0
  512. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  513. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/schema.py +0 -0
  514. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  515. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/mutations/webhook.py +0 -0
  516. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/parser.py +0 -0
  517. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/permissions.py +0 -0
  518. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/__init__.py +0 -0
  519. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/account.py +0 -0
  520. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/branch.py +0 -0
  521. {infrahub_server-1.2.6/backend/infrahub/graphql/resolvers → infrahub_server-1.2.8/backend/infrahub/graphql/queries/diff}/__init__.py +0 -0
  522. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  523. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/event.py +0 -0
  524. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/internal.py +0 -0
  525. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/ipam.py +0 -0
  526. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/relationship.py +0 -0
  527. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  528. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/search.py +0 -0
  529. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/status.py +0 -0
  530. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/queries/task.py +0 -0
  531. {infrahub_server-1.2.6/backend/infrahub/groups → infrahub_server-1.2.8/backend/infrahub/graphql/resolvers}/__init__.py +0 -0
  532. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/resolvers/many_relationship.py +0 -0
  533. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
  534. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  535. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/schema.py +0 -0
  536. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  537. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/subscription/events.py +0 -0
  538. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
  539. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/__init__.py +0 -0
  540. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/attribute.py +0 -0
  541. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/branch.py +0 -0
  542. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/common.py +0 -0
  543. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/context.py +0 -0
  544. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/enums.py +0 -0
  545. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/event.py +0 -0
  546. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/interface.py +0 -0
  547. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/node.py +0 -0
  548. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/permission.py +0 -0
  549. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/relationship.py +0 -0
  550. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/standard_node.py +0 -0
  551. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/task.py +0 -0
  552. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/types/task_log.py +0 -0
  553. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/graphql/utils.py +0 -0
  554. {infrahub_server-1.2.6/backend/infrahub/menu → infrahub_server-1.2.8/backend/infrahub/groups}/__init__.py +0 -0
  555. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/groups/ancestors.py +0 -0
  556. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/groups/models.py +0 -0
  557. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/groups/parsers.py +0 -0
  558. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/groups/tasks.py +0 -0
  559. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/helpers.py +0 -0
  560. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/lock.py +0 -0
  561. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/log.py +0 -0
  562. {infrahub_server-1.2.6/backend/infrahub/message_bus/messages/proposed_change → infrahub_server-1.2.8/backend/infrahub/menu}/__init__.py +0 -0
  563. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/constants.py +0 -0
  564. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/generator.py +0 -0
  565. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/menu.py +0 -0
  566. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/models.py +0 -0
  567. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/repository.py +0 -0
  568. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/menu/utils.py +0 -0
  569. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/__init__.py +0 -0
  570. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  571. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
  572. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
  573. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  574. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  575. {infrahub_server-1.2.6/backend/infrahub/pools → infrahub_server-1.2.8/backend/infrahub/message_bus/messages/proposed_change}/__init__.py +0 -0
  576. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
  577. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
  578. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  579. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  580. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  581. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
  582. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
  583. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  584. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  585. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
  586. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
  587. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
  588. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
  589. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  590. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  591. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  592. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  593. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  594. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
  595. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
  596. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  597. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  598. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/middleware.py +0 -0
  599. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/models.py +0 -0
  600. {infrahub_server-1.2.6/backend/infrahub/prefect_server → infrahub_server-1.2.8/backend/infrahub/patch}/__init__.py +0 -0
  601. {infrahub_server-1.2.6/backend/infrahub/proposed_change → infrahub_server-1.2.8/backend/infrahub/patch/queries}/__init__.py +0 -0
  602. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/__init__.py +0 -0
  603. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/backend.py +0 -0
  604. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/constants.py +0 -0
  605. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/globals.py +0 -0
  606. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/local_backend.py +0 -0
  607. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/manager.py +0 -0
  608. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/report.py +0 -0
  609. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/permissions/types.py +0 -0
  610. {infrahub_server-1.2.6/backend/infrahub/services/adapters → infrahub_server-1.2.8/backend/infrahub/pools}/__init__.py +0 -0
  611. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/pools/address.py +0 -0
  612. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/pools/number.py +0 -0
  613. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/pools/prefix.py +0 -0
  614. {infrahub_server-1.2.6/backend/infrahub/task_manager → infrahub_server-1.2.8/backend/infrahub/prefect_server}/__init__.py +0 -0
  615. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/prefect_server/app.py +0 -0
  616. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/prefect_server/database.py +0 -0
  617. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/prefect_server/events.py +0 -0
  618. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/prefect_server/models.py +0 -0
  619. {infrahub_server-1.2.6/backend/infrahub/tasks → infrahub_server-1.2.8/backend/infrahub/proposed_change}/__init__.py +0 -0
  620. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/proposed_change/branch_diff.py +0 -0
  621. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/proposed_change/constants.py +0 -0
  622. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/proposed_change/models.py +0 -0
  623. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/pytest_plugin.py +0 -0
  624. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/serve/__init__.py +0 -0
  625. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/serve/gunicorn_config.py +0 -0
  626. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/serve/log.py +0 -0
  627. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/serve/worker.py +0 -0
  628. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/__init__.py +0 -0
  629. {infrahub_server-1.2.6/backend/infrahub/telemetry → infrahub_server-1.2.8/backend/infrahub/services/adapters}/__init__.py +0 -0
  630. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  631. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  632. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  633. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  634. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  635. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  636. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  637. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  638. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  639. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  640. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  641. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  642. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  643. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/component.py +0 -0
  644. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/protocols.py +0 -0
  645. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/services/scheduler.py +0 -0
  646. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/storage.py +0 -0
  647. {infrahub_server-1.2.6/backend/infrahub/transformations → infrahub_server-1.2.8/backend/infrahub/task_manager}/__init__.py +0 -0
  648. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/task_manager/constants.py +0 -0
  649. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/task_manager/event.py +0 -0
  650. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/task_manager/models.py +0 -0
  651. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/task_manager/task.py +0 -0
  652. {infrahub_server-1.2.6/backend/infrahub/trigger → infrahub_server-1.2.8/backend/infrahub/tasks}/__init__.py +0 -0
  653. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/artifact.py +0 -0
  654. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/check.py +0 -0
  655. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/dummy.py +0 -0
  656. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/keepalive.py +0 -0
  657. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/recurring.py +0 -0
  658. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/tasks/registry.py +0 -0
  659. {infrahub_server-1.2.6/backend/infrahub/validators → infrahub_server-1.2.8/backend/infrahub/telemetry}/__init__.py +0 -0
  660. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/constants.py +0 -0
  661. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/database.py +0 -0
  662. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/models.py +0 -0
  663. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/task_manager.py +0 -0
  664. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/tasks.py +0 -0
  665. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/telemetry/utils.py +0 -0
  666. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trace.py +0 -0
  667. {infrahub_server-1.2.6/backend/infrahub/webhook → infrahub_server-1.2.8/backend/infrahub/transformations}/__init__.py +0 -0
  668. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/transformations/constants.py +0 -0
  669. {infrahub_server-1.2.6/backend/infrahub/workers → infrahub_server-1.2.8/backend/infrahub/trigger}/__init__.py +0 -0
  670. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trigger/catalogue.py +0 -0
  671. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trigger/constants.py +0 -0
  672. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trigger/models.py +0 -0
  673. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trigger/setup.py +0 -0
  674. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/trigger/tasks.py +0 -0
  675. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/types.py +0 -0
  676. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/utils.py +0 -0
  677. {infrahub_server-1.2.6/backend/infrahub/workflows → infrahub_server-1.2.8/backend/infrahub/validators}/__init__.py +0 -0
  678. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/validators/events.py +0 -0
  679. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/validators/tasks.py +0 -0
  680. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/visuals.py +0 -0
  681. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/ctl → infrahub_server-1.2.8/backend/infrahub/webhook}/__init__.py +0 -0
  682. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/webhook/gather.py +0 -0
  683. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/webhook/tasks.py +0 -0
  684. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/webhook/triggers.py +0 -0
  685. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/worker.py +0 -0
  686. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/pytest_plugin → infrahub_server-1.2.8/backend/infrahub/workers}/__init__.py +0 -0
  687. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workers/infrahub_async.py +0 -0
  688. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workers/utils.py +0 -0
  689. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/spec → infrahub_server-1.2.8/backend/infrahub/workflows}/__init__.py +0 -0
  690. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workflows/catalogue.py +0 -0
  691. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workflows/constants.py +0 -0
  692. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workflows/initialization.py +0 -0
  693. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workflows/models.py +0 -0
  694. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/backend/infrahub/workflows/utils.py +0 -0
  695. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/__init__.py +0 -0
  696. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/_importer.py +0 -0
  697. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  698. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  699. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/batch.py +0 -0
  700. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/branch.py +0 -0
  701. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/constants.py +0 -0
  702. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/context.py +0 -0
  703. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/testing → infrahub_server-1.2.8/python_sdk/infrahub_sdk/ctl}/__init__.py +0 -0
  704. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  705. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  706. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  707. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  708. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  709. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  710. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  711. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  712. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  713. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  714. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  715. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  716. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  717. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  718. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/data.py +0 -0
  719. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/diff.py +0 -0
  720. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/graphql.py +0 -0
  721. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/groups.py +0 -0
  722. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  723. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/object_store.py +0 -0
  724. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/playback.py +0 -0
  725. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  726. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/testing/schemas → infrahub_server-1.2.8/python_sdk/infrahub_sdk/protocols_generator}/__init__.py +0 -0
  727. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/transfer → infrahub_server-1.2.8/python_sdk/infrahub_sdk/pytest_plugin}/__init__.py +0 -0
  728. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  729. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  730. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  731. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  732. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  733. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  734. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  735. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  736. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  737. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  738. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  739. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/queries.py +0 -0
  740. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  741. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/repository.py +0 -0
  742. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/transfer/exporter → infrahub_server-1.2.8/python_sdk/infrahub_sdk/spec}/__init__.py +0 -0
  743. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/store.py +0 -0
  744. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/task/__init__.py +0 -0
  745. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/task/constants.py +0 -0
  746. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/task/exceptions.py +0 -0
  747. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/task/manager.py +0 -0
  748. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/task/models.py +0 -0
  749. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/template/__init__.py +0 -0
  750. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/template/exceptions.py +0 -0
  751. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/template/filters.py +0 -0
  752. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/template/models.py +0 -0
  753. {infrahub_server-1.2.6/python_sdk/infrahub_sdk/transfer/importer → infrahub_server-1.2.8/python_sdk/infrahub_sdk/testing}/__init__.py +0 -0
  754. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  755. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  756. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  757. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  758. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  759. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  760. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  761. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  762. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  763. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  764. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  765. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/types.py +0 -0
  766. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/utils.py +0 -0
  767. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  768. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  769. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/constants.py +0 -0
  770. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/container.py +0 -0
  771. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  772. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
  773. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/host.py +0 -0
  774. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/measurements.py +0 -0
  775. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/models.py +0 -0
  776. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/performance_test.py +0 -0
  777. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/python_testcontainers/infrahub_testcontainers/plugin.py +0 -0
  778. {infrahub_server-1.2.6 → infrahub_server-1.2.8}/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.6
3
+ Version: 1.2.8
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
@@ -39,7 +39,7 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (==1.28.1)
39
39
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (==1.28.1)
40
40
  Requires-Dist: opentelemetry-instrumentation-aio-pika (==0.49b1)
41
41
  Requires-Dist: opentelemetry-instrumentation-fastapi (==0.49b1)
42
- Requires-Dist: prefect (==3.3.4)
42
+ Requires-Dist: prefect (==3.3.7)
43
43
  Requires-Dist: prefect-redis (==0.2.2)
44
44
  Requires-Dist: pyarrow (>=14,<15)
45
45
  Requires-Dist: pydantic (>=2.10,<2.11)
@@ -88,6 +88,7 @@ async def transform_python(
88
88
  branch=branch_params.branch.name,
89
89
  transform_location=f"{transform.file_path.value}::{transform.class_name.value}",
90
90
  timeout=transform.timeout.value,
91
+ convert_query_response=transform.convert_query_response.value or False,
91
92
  data=data,
92
93
  )
93
94
 
@@ -12,6 +12,10 @@ class CheckArtifactCreate(BaseModel):
12
12
  content_type: str = Field(..., description="Content type of the artifact")
13
13
  transform_type: str = Field(..., description="The type of transform associated with this artifact")
14
14
  transform_location: str = Field(..., description="The transforms location within the repository")
15
+ convert_query_response: bool = Field(
16
+ default=False,
17
+ description="Indicate if the query response should be converted to InfrahubNode objects for Python transforms",
18
+ )
15
19
  repository_id: str = Field(..., description="The unique ID of the Repository")
16
20
  repository_name: str = Field(..., description="The name of the Repository")
17
21
  repository_kind: str = Field(..., description="The kind of the Repository")
@@ -54,12 +54,14 @@ from infrahub.services.adapters.message_bus.local import BusSimulator
54
54
  from infrahub.services.adapters.workflow.local import WorkflowLocalExecution
55
55
 
56
56
  from .constants import ERROR_BADGE, FAILED_BADGE, SUCCESS_BADGE
57
+ from .patch import patch_app
57
58
 
58
59
  if TYPE_CHECKING:
59
60
  from infrahub.cli.context import CliContext
60
61
  from infrahub.database import InfrahubDatabase
61
62
 
62
63
  app = AsyncTyper()
64
+ app.add_typer(patch_app, name="patch")
63
65
 
64
66
  PERMISSIONS_AVAILABLE = ["read", "write", "admin"]
65
67
 
@@ -410,7 +412,7 @@ async def update_core_schema(
410
412
  update_db=True,
411
413
  )
412
414
  default_branch.update_schema_hash()
413
- rprint("The Core Schema has been updated")
415
+ rprint("The Core Schema has been updated, make sure to rebase any open branches after the upgrade")
414
416
  if debug:
415
417
  rprint(f"New schema hash: {default_branch.active_schema_hash.main}")
416
418
  await default_branch.save(db=dbt)
@@ -0,0 +1,153 @@
1
+ from __future__ import annotations
2
+
3
+ import importlib
4
+ import inspect
5
+ import logging
6
+ from pathlib import Path
7
+ from typing import TYPE_CHECKING
8
+
9
+ import typer
10
+ from infrahub_sdk.async_typer import AsyncTyper
11
+ from rich import print as rprint
12
+
13
+ from infrahub import config
14
+ from infrahub.patch.edge_adder import PatchPlanEdgeAdder
15
+ from infrahub.patch.edge_deleter import PatchPlanEdgeDeleter
16
+ from infrahub.patch.edge_updater import PatchPlanEdgeUpdater
17
+ from infrahub.patch.plan_reader import PatchPlanReader
18
+ from infrahub.patch.plan_writer import PatchPlanWriter
19
+ from infrahub.patch.queries.base import PatchQuery
20
+ from infrahub.patch.runner import (
21
+ PatchPlanEdgeDbIdTranslator,
22
+ PatchRunner,
23
+ )
24
+ from infrahub.patch.vertex_adder import PatchPlanVertexAdder
25
+ from infrahub.patch.vertex_deleter import PatchPlanVertexDeleter
26
+ from infrahub.patch.vertex_updater import PatchPlanVertexUpdater
27
+
28
+ from .constants import ERROR_BADGE, SUCCESS_BADGE
29
+
30
+ if TYPE_CHECKING:
31
+ from infrahub.cli.context import CliContext
32
+ from infrahub.database import InfrahubDatabase
33
+
34
+
35
+ patch_app = AsyncTyper(help="Commands for planning, applying, and reverting database patches")
36
+
37
+
38
+ def get_patch_runner(db: InfrahubDatabase) -> PatchRunner:
39
+ return PatchRunner(
40
+ plan_writer=PatchPlanWriter(),
41
+ plan_reader=PatchPlanReader(),
42
+ edge_db_id_translator=PatchPlanEdgeDbIdTranslator(),
43
+ vertex_adder=PatchPlanVertexAdder(db=db),
44
+ vertex_deleter=PatchPlanVertexDeleter(db=db),
45
+ vertex_updater=PatchPlanVertexUpdater(db=db),
46
+ edge_adder=PatchPlanEdgeAdder(db=db),
47
+ edge_deleter=PatchPlanEdgeDeleter(db=db),
48
+ edge_updater=PatchPlanEdgeUpdater(db=db),
49
+ )
50
+
51
+
52
+ @patch_app.command(name="plan")
53
+ async def plan_patch_cmd(
54
+ ctx: typer.Context,
55
+ patch_path: str = typer.Argument(
56
+ help="Path to the file containing the PatchQuery instance to run. Use Python-style dot paths, such as infrahub.cli.patch.queries.base"
57
+ ),
58
+ patch_plans_dir: Path = typer.Option(Path("infrahub-patches"), help="Path to patch plans directory"), # noqa: B008
59
+ apply: bool = typer.Option(False, help="Apply the patch immediately after creating it"),
60
+ config_file: str = typer.Argument("infrahub.toml", envvar="INFRAHUB_CONFIG"),
61
+ ) -> None:
62
+ """Create a plan for a given patch and save it in the patch plans directory to be applied/reverted"""
63
+ logging.getLogger("infrahub").setLevel(logging.WARNING)
64
+ logging.getLogger("neo4j").setLevel(logging.ERROR)
65
+ logging.getLogger("prefect").setLevel(logging.ERROR)
66
+
67
+ patch_module = importlib.import_module(patch_path)
68
+ patch_query_class = None
69
+ patch_query_class_count = 0
70
+ for _, cls in inspect.getmembers(patch_module, inspect.isclass):
71
+ if issubclass(cls, PatchQuery) and cls is not PatchQuery:
72
+ patch_query_class = cls
73
+ patch_query_class_count += 1
74
+
75
+ patch_query_path = f"{PatchQuery.__module__}.{PatchQuery.__name__}"
76
+ if patch_query_class is None:
77
+ rprint(f"{ERROR_BADGE} No subclass of {patch_query_path} found in {patch_path}")
78
+ raise typer.Exit(1)
79
+ if patch_query_class_count > 1:
80
+ rprint(
81
+ f"{ERROR_BADGE} Multiple subclasses of {patch_query_path} found in {patch_path}. Please only define one per file."
82
+ )
83
+ raise typer.Exit(1)
84
+
85
+ config.load_and_exit(config_file_name=config_file)
86
+
87
+ context: CliContext = ctx.obj
88
+ dbdriver = await context.init_db(retry=1)
89
+
90
+ patch_query_instance = patch_query_class(db=dbdriver)
91
+ async with dbdriver.start_session() as db:
92
+ patch_runner = get_patch_runner(db=db)
93
+ patch_plan_dir = await patch_runner.prepare_plan(patch_query_instance, directory=Path(patch_plans_dir))
94
+ rprint(f"{SUCCESS_BADGE} Patch plan created at {patch_plan_dir}")
95
+ if apply:
96
+ await patch_runner.apply(patch_plan_directory=patch_plan_dir)
97
+ rprint(f"{SUCCESS_BADGE} Patch plan successfully applied")
98
+
99
+ await dbdriver.close()
100
+
101
+
102
+ @patch_app.command(name="apply")
103
+ async def apply_patch_cmd(
104
+ ctx: typer.Context,
105
+ patch_plan_dir: Path = typer.Argument(help="Path to the directory containing a patch plan"),
106
+ config_file: str = typer.Argument("infrahub.toml", envvar="INFRAHUB_CONFIG"),
107
+ ) -> None:
108
+ """Apply a given patch plan"""
109
+ logging.getLogger("infrahub").setLevel(logging.WARNING)
110
+ logging.getLogger("neo4j").setLevel(logging.ERROR)
111
+ logging.getLogger("prefect").setLevel(logging.ERROR)
112
+
113
+ config.load_and_exit(config_file_name=config_file)
114
+
115
+ context: CliContext = ctx.obj
116
+ dbdriver = await context.init_db(retry=1)
117
+
118
+ if not patch_plan_dir.exists() or not patch_plan_dir.is_dir():
119
+ rprint(f"{ERROR_BADGE} patch_plan_dir must be an existing directory")
120
+ raise typer.Exit(1)
121
+
122
+ async with dbdriver.start_session() as db:
123
+ patch_runner = get_patch_runner(db=db)
124
+ await patch_runner.apply(patch_plan_directory=patch_plan_dir)
125
+ rprint(f"{SUCCESS_BADGE} Patch plan successfully applied")
126
+
127
+ await dbdriver.close()
128
+
129
+
130
+ @patch_app.command(name="revert")
131
+ async def revert_patch_cmd(
132
+ ctx: typer.Context,
133
+ patch_plan_dir: Path = typer.Argument(help="Path to the directory containing a patch plan"),
134
+ config_file: str = typer.Argument("infrahub.toml", envvar="INFRAHUB_CONFIG"),
135
+ ) -> None:
136
+ """Revert a given patch plan"""
137
+ logging.getLogger("infrahub").setLevel(logging.WARNING)
138
+ logging.getLogger("neo4j").setLevel(logging.ERROR)
139
+ logging.getLogger("prefect").setLevel(logging.ERROR)
140
+ config.load_and_exit(config_file_name=config_file)
141
+
142
+ context: CliContext = ctx.obj
143
+ db = await context.init_db(retry=1)
144
+
145
+ if not patch_plan_dir.exists() or not patch_plan_dir.is_dir():
146
+ rprint(f"{ERROR_BADGE} patch_plan_dir must be an existing directory")
147
+ raise typer.Exit(1)
148
+
149
+ patch_runner = get_patch_runner(db=db)
150
+ await patch_runner.revert(patch_plan_directory=patch_plan_dir)
151
+ rprint(f"{SUCCESS_BADGE} Patch plan successfully reverted")
152
+
153
+ await db.close()
@@ -2,13 +2,16 @@ from __future__ import annotations
2
2
 
3
3
  from collections import defaultdict
4
4
  from dataclasses import dataclass, field
5
- from typing import TYPE_CHECKING
5
+ from typing import TYPE_CHECKING, Any
6
6
 
7
+ from infrahub_sdk.graphql import Query
7
8
  from prefect.events.schemas.automations import Automation # noqa: TC002
8
9
  from pydantic import BaseModel, ConfigDict, Field, computed_field
9
10
  from typing_extensions import Self
10
11
 
11
12
  from infrahub.core import registry
13
+ from infrahub.core.constants import RelationshipCardinality
14
+ from infrahub.core.schema import AttributeSchema, NodeSchema # noqa: TC001
12
15
  from infrahub.core.schema.schema_branch_computed import ( # noqa: TC001
13
16
  ComputedAttributeTarget,
14
17
  ComputedAttributeTriggerNode,
@@ -309,3 +312,80 @@ class ComputedAttrPythonQueryTriggerDefinition(TriggerBranchDefinition):
309
312
  )
310
313
 
311
314
  return definition
315
+
316
+
317
+ class ComputedAttrJinja2GraphQLResponse(BaseModel):
318
+ node_id: str
319
+ computed_attribute_value: str | None
320
+ variables: dict[str, Any] = Field(default_factory=dict)
321
+
322
+
323
+ class ComputedAttrJinja2GraphQL(BaseModel):
324
+ node_schema: NodeSchema = Field(..., description="The node kind where the computed attribute is defined")
325
+ attribute_schema: AttributeSchema = Field(..., description="The computed attribute")
326
+ variables: list[str] = Field(..., description="The list of variable names used within the computed attribute")
327
+
328
+ def render_graphql_query(self, query_filter: str, filter_id: str) -> str:
329
+ query_fields = self.query_fields
330
+ query_fields["id"] = None
331
+ query_fields[self.attribute_schema.name] = {"value": None}
332
+ query = Query(
333
+ name="ComputedAttributeFilter",
334
+ query={
335
+ self.node_schema.kind: {
336
+ "@filters": {query_filter: filter_id},
337
+ "edges": {"node": query_fields},
338
+ }
339
+ },
340
+ )
341
+
342
+ return query.render()
343
+
344
+ @property
345
+ def query_fields(self) -> dict[str, Any]:
346
+ output: dict[str, Any] = {}
347
+ for variable in self.variables:
348
+ field_name, remainder = variable.split("__", maxsplit=1)
349
+ if field_name in self.node_schema.attribute_names:
350
+ output[field_name] = {remainder: None}
351
+ elif field_name in self.node_schema.relationship_names:
352
+ related_attribute, related_value = remainder.split("__", maxsplit=1)
353
+ relationship = self.node_schema.get_relationship(name=field_name)
354
+ if relationship.cardinality == RelationshipCardinality.ONE:
355
+ if field_name not in output:
356
+ output[field_name] = {"node": {}}
357
+ output[field_name]["node"][related_attribute] = {related_value: None}
358
+ return output
359
+
360
+ def parse_response(self, response: dict[str, Any]) -> list[ComputedAttrJinja2GraphQLResponse]:
361
+ rendered_response: list[ComputedAttrJinja2GraphQLResponse] = []
362
+ if kind_payload := response.get(self.node_schema.kind):
363
+ edges = kind_payload.get("edges", [])
364
+ for node in edges:
365
+ if node_response := self.to_node_response(node_dict=node):
366
+ rendered_response.append(node_response)
367
+ return rendered_response
368
+
369
+ def to_node_response(self, node_dict: dict[str, Any]) -> ComputedAttrJinja2GraphQLResponse | None:
370
+ if node := node_dict.get("node"):
371
+ node_id = node.get("id")
372
+ else:
373
+ return None
374
+
375
+ computed_attribute = node.get(self.attribute_schema.name, {}).get("value")
376
+ response = ComputedAttrJinja2GraphQLResponse(node_id=node_id, computed_attribute_value=computed_attribute)
377
+ for variable in self.variables:
378
+ field_name, remainder = variable.split("__", maxsplit=1)
379
+ response.variables[variable] = None
380
+ if field_content := node.get(field_name):
381
+ if field_name in self.node_schema.attribute_names:
382
+ response.variables[variable] = field_content.get(remainder)
383
+ elif field_name in self.node_schema.relationship_names:
384
+ relationship = self.node_schema.get_relationship(name=field_name)
385
+ if relationship.cardinality == RelationshipCardinality.ONE:
386
+ related_attribute, related_value = remainder.split("__", maxsplit=1)
387
+ node_content = field_content.get("node") or {}
388
+ related_attribute_content = node_content.get(related_attribute) or {}
389
+ response.variables[variable] = related_attribute_content.get(related_value)
390
+
391
+ return response
@@ -2,10 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from infrahub_sdk.protocols import (
6
- CoreNode, # noqa: TC002
7
- CoreTransformPython,
8
- )
5
+ from infrahub_sdk.protocols import CoreTransformPython
9
6
  from infrahub_sdk.template import Jinja2Template
10
7
  from prefect import flow
11
8
  from prefect.client.orchestration import get_client
@@ -28,9 +25,7 @@ from infrahub.workflows.catalogue import (
28
25
  from infrahub.workflows.utils import add_tags, wait_for_schema_to_converge
29
26
 
30
27
  from .gather import gather_trigger_computed_attribute_jinja2, gather_trigger_computed_attribute_python
31
- from .models import (
32
- PythonTransformTarget,
33
- )
28
+ from .models import ComputedAttrJinja2GraphQL, ComputedAttrJinja2GraphQLResponse, PythonTransformTarget
34
29
 
35
30
  if TYPE_CHECKING:
36
31
  from infrahub.core.schema.computed_attribute import ComputedAttribute
@@ -118,6 +113,7 @@ async def process_transform(
118
113
  location=f"{transform.file_path.value}::{transform.class_name.value}",
119
114
  data=data,
120
115
  client=service.client,
116
+ convert_query_response=transform.convert_query_response.value,
121
117
  ) # type: ignore[misc]
122
118
 
123
119
  await service.client.execute_graphql(
@@ -167,49 +163,33 @@ async def trigger_update_python_computed_attributes(
167
163
  flow_run_name="Update value for computed attribute {attribute_name}",
168
164
  )
169
165
  async def update_computed_attribute_value_jinja2(
170
- branch_name: str, obj: CoreNode, attribute_name: str, template_value: str, service: InfrahubServices
166
+ branch_name: str,
167
+ obj: ComputedAttrJinja2GraphQLResponse,
168
+ node_kind: str,
169
+ attribute_name: str,
170
+ template: Jinja2Template,
171
+ service: InfrahubServices,
171
172
  ) -> None:
172
173
  log = get_run_logger()
173
174
 
174
- await add_tags(branches=[branch_name], nodes=[obj.id], db_change=True)
175
-
176
- jinja_template = Jinja2Template(template=template_value)
177
- variables = {}
178
- for variable in jinja_template.get_variables():
179
- components = variable.split("__")
180
- if len(components) == 2:
181
- property_name = components[0]
182
- property_value = components[1]
183
- attribute_property = getattr(obj, property_name)
184
- variables[variable] = getattr(attribute_property, property_value)
185
- elif len(components) == 3:
186
- relationship_name = components[0]
187
- property_name = components[1]
188
- property_value = components[2]
189
- relationship = getattr(obj, relationship_name)
190
- try:
191
- attribute_property = getattr(relationship.peer, property_name)
192
- variables[variable] = getattr(attribute_property, property_value)
193
- except ValueError:
194
- variables[variable] = ""
195
-
196
- value = await jinja_template.render(variables=variables)
197
- existing_value = getattr(obj, attribute_name).value
198
- if value == existing_value:
175
+ await add_tags(branches=[branch_name], nodes=[obj.node_id], db_change=True)
176
+
177
+ value = await template.render(variables=obj.variables)
178
+ if value == obj.computed_attribute_value:
199
179
  log.debug(f"Ignoring to update {obj} with existing value on {attribute_name}={value}")
200
180
  return
201
181
 
202
182
  await service.client.execute_graphql(
203
183
  query=UPDATE_ATTRIBUTE,
204
184
  variables={
205
- "id": obj.id,
206
- "kind": obj.get_kind(),
185
+ "id": obj.node_id,
186
+ "kind": node_kind,
207
187
  "attribute": attribute_name,
208
188
  "value": value,
209
189
  },
210
190
  branch_name=branch_name,
211
191
  )
212
- log.info(f"Updating computed attribute {obj.get_kind()}.{attribute_name}='{value}' ({obj.id})")
192
+ log.info(f"Updating computed attribute {node_kind}.{attribute_name}='{value}' ({obj.node_id})")
213
193
 
214
194
 
215
195
  @flow(
@@ -235,41 +215,43 @@ async def process_jinja2(
235
215
  branch_name if branch_name in registry.get_altered_schema_branches() else registry.default_branch
236
216
  )
237
217
  schema_branch = registry.schema.get_schema_branch(name=target_branch_schema)
238
- await service.client.schema.all(branch=branch_name, refresh=True, schema_hash=schema_branch.get_hash())
239
-
218
+ node_schema = schema_branch.get_node(name=computed_attribute_kind, duplicate=False)
240
219
  computed_macros = [
241
220
  attrib
242
221
  for attrib in schema_branch.computed_attributes.get_impacted_jinja2_targets(kind=node_kind, updates=updates)
243
222
  if attrib.kind == computed_attribute_kind and attrib.attribute.name == computed_attribute_name
244
223
  ]
245
224
  for computed_macro in computed_macros:
246
- found: list[CoreNode] = []
225
+ found: list[ComputedAttrJinja2GraphQLResponse] = []
226
+ template_string = "n/a"
227
+ if computed_macro.attribute.computed_attribute and computed_macro.attribute.computed_attribute.jinja2_template:
228
+ template_string = computed_macro.attribute.computed_attribute.jinja2_template
229
+
230
+ jinja_template = Jinja2Template(template=template_string)
231
+ variables = jinja_template.get_variables()
232
+
233
+ attribute_graphql = ComputedAttrJinja2GraphQL(
234
+ node_schema=node_schema, attribute_schema=computed_macro.attribute, variables=variables
235
+ )
236
+
247
237
  for id_filter in computed_macro.node_filters:
248
- filters = {id_filter: object_id}
249
- nodes: list[CoreNode] = await service.client.filters(
250
- kind=computed_macro.kind,
251
- branch=branch_name,
252
- prefetch_relationships=True,
253
- populate_store=True,
254
- **filters,
255
- )
256
- found.extend(nodes)
238
+ query = attribute_graphql.render_graphql_query(query_filter=id_filter, filter_id=object_id)
239
+ response = await service.client.execute_graphql(query=query, branch_name=branch_name)
240
+ output = attribute_graphql.parse_response(response=response)
241
+ found.extend(output)
257
242
 
258
243
  if not found:
259
244
  log.debug("No nodes found that requires updates")
260
245
 
261
- template_string = "n/a"
262
- if computed_macro.attribute.computed_attribute and computed_macro.attribute.computed_attribute.jinja2_template:
263
- template_string = computed_macro.attribute.computed_attribute.jinja2_template
264
-
265
246
  batch = await service.client.create_batch()
266
247
  for node in found:
267
248
  batch.add(
268
249
  task=update_computed_attribute_value_jinja2,
269
250
  branch_name=branch_name,
270
251
  obj=node,
252
+ node_kind=node_schema.kind,
271
253
  attribute_name=computed_macro.attribute.name,
272
- template_value=template_string,
254
+ template=jinja_template,
273
255
  service=service,
274
256
  )
275
257
 
@@ -23,7 +23,7 @@ from pydantic import (
23
23
  from pydantic_settings import BaseSettings, SettingsConfigDict
24
24
  from typing_extensions import Self
25
25
 
26
- from infrahub.database.constants import DatabaseType
26
+ from infrahub.constants.database import DatabaseType
27
27
  from infrahub.exceptions import InitializationError, ProcessingError
28
28
 
29
29
  if TYPE_CHECKING:
@@ -629,6 +629,7 @@ class AnalyticsSettings(BaseSettings):
629
629
  class ExperimentalFeaturesSettings(BaseSettings):
630
630
  model_config = SettingsConfigDict(env_prefix="INFRAHUB_EXPERIMENTAL_")
631
631
  graphql_enums: bool = False
632
+ value_db_index: bool = False
632
633
 
633
634
 
634
635
  class SecuritySettings(BaseSettings):
@@ -150,6 +150,7 @@ class ContentType(InfrahubStringEnum):
150
150
  APPLICATION_JSON = "application/json"
151
151
  APPLICATION_YAML = "application/yaml"
152
152
  APPLICATION_XML = "application/xml"
153
+ APPLICATION_HCL = "application/hcl"
153
154
  TEXT_PLAIN = "text/plain"
154
155
  TEXT_MARKDOWN = "text/markdown"
155
156
  TEXT_CSV = "text/csv"
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from infrahub.database.constants import IndexType
3
+ from infrahub.constants.database import IndexType
4
4
  from infrahub.database.index import IndexItem
5
5
 
6
6
  node_indexes: list[IndexItem] = [
@@ -17,6 +17,8 @@ node_indexes: list[IndexItem] = [
17
17
  IndexItem(name="diff_node_uuid", label="DiffNode", properties=["uuid"], type=IndexType.TEXT),
18
18
  ]
19
19
 
20
+ attr_value_index = IndexItem(name="attr_value", label="AttributeValue", properties=["value"], type=IndexType.RANGE)
21
+
20
22
  rel_indexes: list[IndexItem] = [
21
23
  IndexItem(name="attr_from", label="HAS_ATTRIBUTE", properties=["from"], type=IndexType.RANGE),
22
24
  IndexItem(name="attr_branch", label="HAS_ATTRIBUTE", properties=["branch"], type=IndexType.RANGE),
@@ -1229,20 +1229,31 @@ class NodeManager:
1229
1229
  if not prefetch_relationships and not fields:
1230
1230
  return
1231
1231
  cardinality_one_identifiers_by_kind: dict[str, dict[str, RelationshipDirection]] | None = None
1232
- all_identifiers: list[str] | None = None
1232
+ outbound_identifiers: set[str] | None = None
1233
+ inbound_identifiers: set[str] | None = None
1234
+ bidirectional_identifiers: set[str] | None = None
1233
1235
  if not prefetch_relationships:
1234
1236
  cardinality_one_identifiers_by_kind = _get_cardinality_one_identifiers_by_kind(
1235
1237
  nodes=nodes_by_id.values(), fields=fields or {}
1236
1238
  )
1237
- all_identifiers_set: set[str] = set()
1239
+ outbound_identifiers = set()
1240
+ inbound_identifiers = set()
1241
+ bidirectional_identifiers = set()
1238
1242
  for identifier_direction_map in cardinality_one_identifiers_by_kind.values():
1239
- all_identifiers_set.update(identifier_direction_map.keys())
1240
- all_identifiers = list(all_identifiers_set)
1243
+ for identifier, direction in identifier_direction_map.items():
1244
+ if direction is RelationshipDirection.OUTBOUND:
1245
+ outbound_identifiers.add(identifier)
1246
+ elif direction is RelationshipDirection.INBOUND:
1247
+ inbound_identifiers.add(identifier)
1248
+ elif direction is RelationshipDirection.BIDIR:
1249
+ bidirectional_identifiers.add(identifier)
1241
1250
 
1242
1251
  query = await NodeListGetRelationshipsQuery.init(
1243
1252
  db=db,
1244
1253
  ids=list(nodes_by_id.keys()),
1245
- relationship_identifiers=all_identifiers,
1254
+ outbound_identifiers=None if outbound_identifiers is None else list(outbound_identifiers),
1255
+ inbound_identifiers=None if inbound_identifiers is None else list(inbound_identifiers),
1256
+ bidirectional_identifiers=None if bidirectional_identifiers is None else list(bidirectional_identifiers),
1246
1257
  branch=branch,
1247
1258
  at=at,
1248
1259
  branch_agnostic=branch_agnostic,
@@ -2,10 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING, Sequence
4
4
 
5
+ from infrahub.constants.database import IndexType
5
6
  from infrahub.core.migrations.shared import MigrationResult
6
7
  from infrahub.core.query import Query # noqa: TC001
7
8
  from infrahub.database import DatabaseType
8
- from infrahub.database.constants import IndexType
9
9
  from infrahub.database.index import IndexItem
10
10
 
11
11
  from ..shared import GraphMigration
@@ -29,13 +29,12 @@ class Migration014(GraphMigration):
29
29
  if db.db_type != DatabaseType.NEO4J:
30
30
  return result
31
31
 
32
- async with db.start_transaction() as ts:
33
- try:
34
- ts.manager.index.init(nodes=[INDEX_TO_DELETE], rels=[])
35
- await ts.manager.index.drop()
36
- except Exception as exc:
37
- result.errors.append(str(exc))
38
- return result
32
+ try:
33
+ db.manager.index.init(nodes=[INDEX_TO_DELETE], rels=[])
34
+ await db.manager.index.drop()
35
+ except Exception as exc:
36
+ result.errors.append(str(exc))
37
+ return result
39
38
 
40
39
  return result
41
40
 
@@ -29,6 +29,7 @@ from infrahub.types import ATTRIBUTE_TYPES
29
29
 
30
30
  from ...graphql.constants import KIND_GRAPHQL_FIELD_NAME
31
31
  from ...graphql.models import OrderModel
32
+ from ...log import get_logger
32
33
  from ..query.relationship import RelationshipDeleteAllQuery
33
34
  from ..relationship import RelationshipManager
34
35
  from ..utils import update_relationships_to
@@ -53,6 +54,8 @@ SchemaProtocol = TypeVar("SchemaProtocol")
53
54
  # -
54
55
  # ---------------------------------------------------------------------------------------
55
56
 
57
+ log = get_logger()
58
+
56
59
 
57
60
  class Node(BaseNode, metaclass=BaseNodeMeta):
58
61
  @classmethod
@@ -348,7 +351,7 @@ class Node(BaseNode, metaclass=BaseNodeMeta):
348
351
  fields.pop("updated_at")
349
352
  for field_name in fields.keys():
350
353
  if field_name not in self._schema.valid_input_names:
351
- errors.append(ValidationError({field_name: f"{field_name} is not a valid input for {self.get_kind()}"}))
354
+ log.error(f"{field_name} is not a valid input for {self.get_kind()}")
352
355
 
353
356
  # Backfill fields with the ones from the template if there's one
354
357
  await self.handle_object_template(fields=fields, db=db, errors=errors)
@@ -478,6 +478,7 @@ class CoreTransformJinja2(CoreTransformation):
478
478
  class CoreTransformPython(CoreTransformation):
479
479
  file_path: String
480
480
  class_name: String
481
+ convert_query_response: BooleanOptional
481
482
 
482
483
 
483
484
  class CoreUserValidator(CoreValidator):
@@ -367,9 +367,11 @@ class IPPrefixReconcileQuery(Query):
367
367
  possible_prefix = tmp_prefix.ljust(self.ip_value.max_prefixlen, "0")
368
368
  if possible_prefix not in possible_prefix_map:
369
369
  possible_prefix_map[possible_prefix] = max_prefix_len
370
- self.params["possible_prefix_and_length_list"] = [
371
- [possible_prefix, max_length] for possible_prefix, max_length in possible_prefix_map.items()
372
- ]
370
+ self.params["possible_prefix_and_length_list"] = []
371
+ self.params["possible_prefix_list"] = []
372
+ for possible_prefix, max_length in possible_prefix_map.items():
373
+ self.params["possible_prefix_and_length_list"].append([possible_prefix, max_length])
374
+ self.params["possible_prefix_list"].append(possible_prefix)
373
375
 
374
376
  namespace_query = """
375
377
  // ------------------
@@ -386,8 +388,7 @@ class IPPrefixReconcileQuery(Query):
386
388
  // ------------------
387
389
  // Get IP Prefix node by UUID
388
390
  // ------------------
389
- MATCH (ip_node {uuid: $node_uuid})
390
- WHERE "%(ip_kind)s" IN labels(ip_node)
391
+ MATCH (ip_node:%(ip_kind)s {uuid: $node_uuid})
391
392
  """ % {
392
393
  "ip_kind": InfrahubKind.IPADDRESS
393
394
  if isinstance(self.ip_value, IPAddressType)
@@ -487,6 +488,7 @@ class IPPrefixReconcileQuery(Query):
487
488
  -[hvr:HAS_VALUE]->(av:%(ip_prefix_attribute_kind)s)
488
489
  WHERE all(r IN relationships(parent_path) WHERE (%(branch_filter)s))
489
490
  AND av.version = $ip_version
491
+ AND av.binary_address IN $possible_prefix_list
490
492
  AND any(prefix_and_length IN $possible_prefix_and_length_list WHERE av.binary_address = prefix_and_length[0] AND av.prefixlen <= prefix_and_length[1])
491
493
  WITH
492
494
  maybe_new_parent,