infrahub-server 1.2.5__tar.gz → 1.2.7__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 (774) hide show
  1. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/PKG-INFO +1 -1
  2. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/db.py +2 -0
  3. infrahub_server-1.2.7/backend/infrahub/cli/patch.py +153 -0
  4. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/models.py +81 -1
  5. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/tasks.py +34 -53
  6. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/manager.py +15 -2
  7. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/__init__.py +4 -1
  8. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/ipam.py +7 -5
  9. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/registry.py +2 -3
  10. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/schema_branch.py +34 -37
  11. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/__init__.py +2 -0
  12. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/manager.py +10 -0
  13. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/main.py +4 -5
  14. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/resource_manager.py +3 -3
  15. infrahub_server-1.2.7/backend/infrahub/patch/constants.py +13 -0
  16. infrahub_server-1.2.7/backend/infrahub/patch/edge_adder.py +64 -0
  17. infrahub_server-1.2.7/backend/infrahub/patch/edge_deleter.py +33 -0
  18. infrahub_server-1.2.7/backend/infrahub/patch/edge_updater.py +28 -0
  19. infrahub_server-1.2.7/backend/infrahub/patch/models.py +98 -0
  20. infrahub_server-1.2.7/backend/infrahub/patch/plan_reader.py +107 -0
  21. infrahub_server-1.2.7/backend/infrahub/patch/plan_writer.py +92 -0
  22. infrahub_server-1.2.7/backend/infrahub/patch/queries/base.py +17 -0
  23. infrahub_server-1.2.7/backend/infrahub/patch/runner.py +254 -0
  24. infrahub_server-1.2.7/backend/infrahub/patch/vertex_adder.py +61 -0
  25. infrahub_server-1.2.7/backend/infrahub/patch/vertex_deleter.py +33 -0
  26. infrahub_server-1.2.7/backend/infrahub/patch/vertex_updater.py +28 -0
  27. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/registry.py +4 -1
  28. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/pyproject.toml +1 -1
  29. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/checks.py +1 -1
  30. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/cli_commands.py +2 -2
  31. infrahub_server-1.2.7/python_sdk/infrahub_sdk/ctl/menu.py +97 -0
  32. infrahub_server-1.2.7/python_sdk/infrahub_sdk/ctl/object.py +97 -0
  33. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/utils.py +22 -1
  34. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/exceptions.py +19 -1
  35. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/node.py +42 -26
  36. infrahub_server-1.2.7/python_sdk/infrahub_sdk/protocols_generator/constants.py +28 -0
  37. infrahub_server-1.2.5/python_sdk/infrahub_sdk/code_generator.py → infrahub_server-1.2.7/python_sdk/infrahub_sdk/protocols_generator/generator.py +47 -34
  38. infrahub_server-1.2.7/python_sdk/infrahub_sdk/protocols_generator/template.j2 +114 -0
  39. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/schema/__init__.py +110 -74
  40. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/schema/main.py +36 -2
  41. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/schema/repository.py +2 -0
  42. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/spec/menu.py +3 -3
  43. infrahub_server-1.2.7/python_sdk/infrahub_sdk/spec/object.py +613 -0
  44. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/testing/docker.py +4 -5
  45. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/testing/schemas/animal.py +7 -0
  46. infrahub_server-1.2.7/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  47. infrahub_server-1.2.7/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  48. infrahub_server-1.2.7/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  49. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/yaml.py +63 -7
  50. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/container.py +52 -2
  51. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +27 -0
  52. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/performance_test.py +1 -1
  53. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/plugin.py +1 -1
  54. infrahub_server-1.2.5/python_sdk/infrahub_sdk/ctl/constants.py +0 -115
  55. infrahub_server-1.2.5/python_sdk/infrahub_sdk/ctl/menu.py +0 -54
  56. infrahub_server-1.2.5/python_sdk/infrahub_sdk/ctl/object.py +0 -47
  57. infrahub_server-1.2.5/python_sdk/infrahub_sdk/spec/object.py +0 -132
  58. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/LICENSE.txt +0 -0
  59. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/README.md +0 -0
  60. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/__init__.py +0 -0
  61. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/__init__.py +0 -0
  62. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/artifact.py +0 -0
  63. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/auth.py +0 -0
  64. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/dependencies.py +0 -0
  65. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/diff/__init__.py +0 -0
  66. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/diff/diff.py +0 -0
  67. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/diff/validation_models.py +0 -0
  68. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/exception_handlers.py +0 -0
  69. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/exceptions.py +0 -0
  70. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/file.py +0 -0
  71. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/internal.py +0 -0
  72. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/menu.py +0 -0
  73. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/oauth2.py +0 -0
  74. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/oidc.py +0 -0
  75. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/query.py +0 -0
  76. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/schema.py +0 -0
  77. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  78. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  79. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/static/swagger-ui.css +0 -0
  80. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/storage.py +0 -0
  81. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/api/transformation.py +0 -0
  82. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/artifacts/__init__.py +0 -0
  83. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/artifacts/models.py +0 -0
  84. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/artifacts/tasks.py +0 -0
  85. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/auth.py +0 -0
  86. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/__init__.py +0 -0
  87. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/constants.py +0 -0
  88. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/context.py +0 -0
  89. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/events.py +0 -0
  90. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/git_agent.py +0 -0
  91. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/server.py +0 -0
  92. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/tasks.py +0 -0
  93. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/cli/upgrade.py +0 -0
  94. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/components.py +0 -0
  95. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/__init__.py +0 -0
  96. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/constants.py +0 -0
  97. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/gather.py +0 -0
  98. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/computed_attribute/triggers.py +0 -0
  99. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/config.py +0 -0
  100. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/context.py +0 -0
  101. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/__init__.py +0 -0
  102. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/account.py +0 -0
  103. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/attribute.py +0 -0
  104. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/branch/__init__.py +0 -0
  105. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/branch/models.py +0 -0
  106. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/branch/tasks.py +0 -0
  107. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/changelog/__init__.py +0 -0
  108. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/changelog/diff.py +0 -0
  109. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/changelog/models.py +0 -0
  110. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constants/__init__.py +0 -0
  111. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constants/database.py +0 -0
  112. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  113. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constants/relationship_label.py +0 -0
  114. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constants/schema.py +0 -0
  115. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constraint/__init__.py +0 -0
  116. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  117. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/constraint/node/runner.py +0 -0
  118. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/__init__.py +0 -0
  119. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  120. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  121. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/branch_differ.py +0 -0
  122. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/calculator.py +0 -0
  123. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/combiner.py +0 -0
  124. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  125. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  126. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  127. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/coordinator.py +0 -0
  128. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  129. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  130. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  131. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  132. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  133. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  134. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  135. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  136. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/enricher/summary_counts.py +0 -0
  137. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/exceptions.py +0 -0
  138. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  139. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  140. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/merger/merger.py +0 -0
  141. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/merger/model.py +0 -0
  142. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  143. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/model/__init__.py +0 -0
  144. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/model/diff.py +0 -0
  145. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/model/path.py +0 -0
  146. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/models.py +0 -0
  147. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  148. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/payload_builder.py +0 -0
  149. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/__init__.py +0 -0
  150. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  151. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/artifact.py +0 -0
  152. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  153. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  154. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  155. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  156. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  157. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/filters.py +0 -0
  158. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  159. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  160. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/merge.py +0 -0
  161. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  162. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  163. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/save.py +0 -0
  164. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  165. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  166. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  167. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/query_parser.py +0 -0
  168. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  169. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  170. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/repository/repository.py +0 -0
  171. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/diff/tasks.py +0 -0
  172. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/enums.py +0 -0
  173. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/graph/__init__.py +0 -0
  174. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/graph/constraints.py +0 -0
  175. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/graph/index.py +0 -0
  176. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/graph/schema.py +0 -0
  177. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/initialization.py +0 -0
  178. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/integrity/__init__.py +0 -0
  179. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  180. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  181. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/__init__.py +0 -0
  182. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/constants.py +0 -0
  183. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  184. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/model.py +0 -0
  185. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/reconciler.py +0 -0
  186. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/size.py +0 -0
  187. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/tasks.py +0 -0
  188. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/ipam/utilization.py +0 -0
  189. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/merge.py +0 -0
  190. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/__init__.py +0 -0
  191. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/__init__.py +0 -0
  192. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  193. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  194. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  195. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  196. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  197. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  198. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  199. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  200. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  201. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  202. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  203. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  204. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  205. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  206. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  207. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  208. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  209. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  210. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  211. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  212. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +0 -0
  213. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m022_add_generate_template_attr.py +0 -0
  214. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m023_deduplicate_cardinality_one_relationships.py +0 -0
  215. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +0 -0
  216. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m025_uniqueness_nulls.py +0 -0
  217. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/graph/m026_0000_prefix_fix.py +0 -0
  218. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  219. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  220. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  221. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  222. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  223. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  224. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  225. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  226. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  227. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/models.py +0 -0
  228. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  229. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  230. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  231. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  232. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  233. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  234. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/migrations/shared.py +0 -0
  235. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/models.py +0 -0
  236. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/base.py +0 -0
  237. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  238. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  239. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +0 -0
  240. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/constraints/interface.py +0 -0
  241. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/delete_validator.py +0 -0
  242. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/ipam.py +0 -0
  243. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/permissions.py +0 -0
  244. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  245. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  246. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  247. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  248. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/node/standard.py +0 -0
  249. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/path.py +0 -0
  250. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/property.py +0 -0
  251. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/protocols.py +0 -0
  252. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/protocols_base.py +0 -0
  253. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/__init__.py +0 -0
  254. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/attribute.py +0 -0
  255. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/branch.py +0 -0
  256. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/delete.py +0 -0
  257. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/diff.py +0 -0
  258. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/node.py +0 -0
  259. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/relationship.py +0 -0
  260. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/resource_manager.py +0 -0
  261. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/standard_node.py +0 -0
  262. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/subquery.py +0 -0
  263. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/task.py +0 -0
  264. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/task_log.py +0 -0
  265. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/query/utils.py +0 -0
  266. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/__init__.py +0 -0
  267. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  268. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  269. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  270. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  271. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  272. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/relationship/model.py +0 -0
  273. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/root.py +0 -0
  274. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/__init__.py +0 -0
  275. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  276. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  277. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  278. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/constants.py +0 -0
  279. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  280. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/__init__.py +0 -0
  281. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/account.py +0 -0
  282. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/artifact.py +0 -0
  283. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/builtin.py +0 -0
  284. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/check.py +0 -0
  285. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/core.py +0 -0
  286. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/generator.py +0 -0
  287. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/graphql_query.py +0 -0
  288. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/group.py +0 -0
  289. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/ipam.py +0 -0
  290. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/lineage.py +0 -0
  291. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/menu.py +0 -0
  292. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/permission.py +0 -0
  293. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/profile.py +0 -0
  294. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/propose_change.py +0 -0
  295. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/propose_change_comment.py +0 -0
  296. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/propose_change_validator.py +0 -0
  297. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/repository.py +0 -0
  298. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/resource_pool.py +0 -0
  299. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/template.py +0 -0
  300. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/transform.py +0 -0
  301. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/core/webhook.py +0 -0
  302. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  303. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  304. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/dropdown.py +0 -0
  305. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  306. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  307. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  308. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  309. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  310. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  311. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/generic_schema.py +0 -0
  312. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/manager.py +0 -0
  313. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/node_schema.py +0 -0
  314. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/profile_schema.py +0 -0
  315. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  316. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  317. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/schema/template_schema.py +0 -0
  318. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/task/__init__.py +0 -0
  319. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/task/task.py +0 -0
  320. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/task/task_log.py +0 -0
  321. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/task/user_task.py +0 -0
  322. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/timestamp.py +0 -0
  323. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/utils.py +0 -0
  324. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/__init__.py +0 -0
  325. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  326. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  327. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  328. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  329. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  330. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/length.py +0 -0
  331. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  332. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  333. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  334. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/checks_runner.py +0 -0
  335. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/determiner.py +0 -0
  336. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/interface.py +0 -0
  337. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/model.py +0 -0
  338. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/models/__init__.py +0 -0
  339. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  340. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/models/violation.py +0 -0
  341. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/__init__.py +0 -0
  342. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/attribute.py +0 -0
  343. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  344. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  345. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  346. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/node/relationship.py +0 -0
  347. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/query.py +0 -0
  348. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  349. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/relationship/count.py +0 -0
  350. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  351. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  352. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/shared.py +0 -0
  353. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/tasks.py +0 -0
  354. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  355. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  356. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  357. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  358. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/core/validators/uniqueness/query.py +0 -0
  359. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/constants.py +0 -0
  360. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/index.py +0 -0
  361. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/manager.py +0 -0
  362. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/memgraph.py +0 -0
  363. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/metrics.py +0 -0
  364. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/database/neo4j.py +0 -0
  365. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/__init__.py +0 -0
  366. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  367. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  368. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  369. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  370. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  371. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  372. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  373. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  374. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  375. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  376. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  377. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  378. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  379. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  380. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  381. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  382. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  383. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  384. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  385. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  386. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  387. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  388. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  389. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  390. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  391. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  392. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  393. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  394. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  395. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  396. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  397. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  398. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  399. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  400. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  401. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  402. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  403. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  404. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  405. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  406. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  407. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  408. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  409. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -0
  410. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  411. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  412. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  413. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  414. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  415. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  416. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  417. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/component/__init__.py +0 -0
  418. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  419. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/component/registry.py +0 -0
  420. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/interface.py +0 -0
  421. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/dependencies/registry.py +0 -0
  422. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/__init__.py +0 -0
  423. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/artifact_action.py +0 -0
  424. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/branch_action.py +0 -0
  425. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/constants.py +0 -0
  426. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/generator.py +0 -0
  427. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/group_action.py +0 -0
  428. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/models.py +0 -0
  429. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/node_action.py +0 -0
  430. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/repository_action.py +0 -0
  431. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/schema_action.py +0 -0
  432. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/utils.py +0 -0
  433. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/events/validator_action.py +0 -0
  434. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/exceptions.py +0 -0
  435. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/generators/__init__.py +0 -0
  436. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/generators/models.py +0 -0
  437. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/generators/tasks.py +0 -0
  438. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/__init__.py +0 -0
  439. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/base.py +0 -0
  440. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/constants.py +0 -0
  441. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/directory.py +0 -0
  442. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/integrator.py +0 -0
  443. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/models.py +0 -0
  444. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/repository.py +0 -0
  445. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/tasks.py +0 -0
  446. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/utils.py +0 -0
  447. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git/worktree.py +0 -0
  448. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git_credential/__init__.py +0 -0
  449. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git_credential/askpass.py +0 -0
  450. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/git_credential/helper.py +0 -0
  451. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/__init__.py +0 -0
  452. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/analyzer.py +0 -0
  453. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/api/__init__.py +0 -0
  454. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/api/dependencies.py +0 -0
  455. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/api/endpoints.py +0 -0
  456. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/app.py +0 -0
  457. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/__init__.py +0 -0
  458. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  459. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  460. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  461. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  462. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  463. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  464. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  465. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  466. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/constants.py +0 -0
  467. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/context.py +0 -0
  468. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/directives.py +0 -0
  469. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/enums.py +0 -0
  470. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/initialization.py +0 -0
  471. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  472. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/loaders/node.py +0 -0
  473. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/loaders/peers.py +0 -0
  474. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/loaders/shared.py +0 -0
  475. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/metrics.py +0 -0
  476. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/models.py +0 -0
  477. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  478. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/account.py +0 -0
  479. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  480. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  481. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/branch.py +0 -0
  482. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  483. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/diff.py +0 -0
  484. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  485. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/generator.py +0 -0
  486. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  487. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  488. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/menu.py +0 -0
  489. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/models.py +0 -0
  490. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  491. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  492. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  493. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  494. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  495. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  496. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  497. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/repository.py +0 -0
  498. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/schema.py +0 -0
  499. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  500. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/mutations/webhook.py +0 -0
  501. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/parser.py +0 -0
  502. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/permissions.py +0 -0
  503. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/__init__.py +0 -0
  504. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/account.py +0 -0
  505. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/branch.py +0 -0
  506. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  507. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  508. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/event.py +0 -0
  509. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/internal.py +0 -0
  510. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/ipam.py +0 -0
  511. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/relationship.py +0 -0
  512. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  513. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/search.py +0 -0
  514. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/status.py +0 -0
  515. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/queries/task.py +0 -0
  516. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  517. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/resolvers/many_relationship.py +0 -0
  518. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
  519. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  520. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/schema.py +0 -0
  521. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  522. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/subscription/events.py +0 -0
  523. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
  524. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/__init__.py +0 -0
  525. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/attribute.py +0 -0
  526. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/branch.py +0 -0
  527. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/common.py +0 -0
  528. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/context.py +0 -0
  529. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/enums.py +0 -0
  530. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/event.py +0 -0
  531. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/interface.py +0 -0
  532. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/node.py +0 -0
  533. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/permission.py +0 -0
  534. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/relationship.py +0 -0
  535. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/standard_node.py +0 -0
  536. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/task.py +0 -0
  537. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/types/task_log.py +0 -0
  538. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/graphql/utils.py +0 -0
  539. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/groups/__init__.py +0 -0
  540. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/groups/ancestors.py +0 -0
  541. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/groups/models.py +0 -0
  542. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/groups/parsers.py +0 -0
  543. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/groups/tasks.py +0 -0
  544. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/helpers.py +0 -0
  545. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/lock.py +0 -0
  546. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/log.py +0 -0
  547. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/__init__.py +0 -0
  548. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/constants.py +0 -0
  549. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/generator.py +0 -0
  550. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/menu.py +0 -0
  551. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/models.py +0 -0
  552. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/repository.py +0 -0
  553. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/menu/utils.py +0 -0
  554. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/__init__.py +0 -0
  555. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  556. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
  557. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
  558. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  559. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  560. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/proposed_change/__init__.py +0 -0
  561. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
  562. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
  563. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  564. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  565. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  566. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
  567. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
  568. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  569. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  570. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
  571. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
  572. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
  573. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
  574. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  575. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  576. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  577. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  578. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  579. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
  580. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
  581. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/requests/proposed_change.py +0 -0
  582. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  583. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  584. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/message_bus/types.py +0 -0
  585. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/middleware.py +0 -0
  586. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/models.py +0 -0
  587. {infrahub_server-1.2.5/backend/infrahub/pools → infrahub_server-1.2.7/backend/infrahub/patch}/__init__.py +0 -0
  588. {infrahub_server-1.2.5/backend/infrahub/prefect_server → infrahub_server-1.2.7/backend/infrahub/patch/queries}/__init__.py +0 -0
  589. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/__init__.py +0 -0
  590. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/backend.py +0 -0
  591. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/constants.py +0 -0
  592. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/globals.py +0 -0
  593. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/local_backend.py +0 -0
  594. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/manager.py +0 -0
  595. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/report.py +0 -0
  596. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/permissions/types.py +0 -0
  597. {infrahub_server-1.2.5/backend/infrahub/proposed_change → infrahub_server-1.2.7/backend/infrahub/pools}/__init__.py +0 -0
  598. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/pools/address.py +0 -0
  599. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/pools/number.py +0 -0
  600. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/pools/prefix.py +0 -0
  601. {infrahub_server-1.2.5/backend/infrahub/services/adapters → infrahub_server-1.2.7/backend/infrahub/prefect_server}/__init__.py +0 -0
  602. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/prefect_server/app.py +0 -0
  603. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/prefect_server/database.py +0 -0
  604. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/prefect_server/events.py +0 -0
  605. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/prefect_server/models.py +0 -0
  606. {infrahub_server-1.2.5/backend/infrahub/task_manager → infrahub_server-1.2.7/backend/infrahub/proposed_change}/__init__.py +0 -0
  607. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/proposed_change/branch_diff.py +0 -0
  608. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/proposed_change/constants.py +0 -0
  609. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/proposed_change/models.py +0 -0
  610. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/proposed_change/tasks.py +0 -0
  611. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/pytest_plugin.py +0 -0
  612. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/serve/__init__.py +0 -0
  613. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/serve/gunicorn_config.py +0 -0
  614. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/serve/log.py +0 -0
  615. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/serve/worker.py +0 -0
  616. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/server.py +0 -0
  617. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/__init__.py +0 -0
  618. {infrahub_server-1.2.5/backend/infrahub/tasks → infrahub_server-1.2.7/backend/infrahub/services/adapters}/__init__.py +0 -0
  619. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  620. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  621. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  622. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  623. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  624. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  625. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  626. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  627. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  628. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  629. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  630. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  631. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  632. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/component.py +0 -0
  633. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/protocols.py +0 -0
  634. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/services/scheduler.py +0 -0
  635. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/storage.py +0 -0
  636. {infrahub_server-1.2.5/backend/infrahub/telemetry → infrahub_server-1.2.7/backend/infrahub/task_manager}/__init__.py +0 -0
  637. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/task_manager/constants.py +0 -0
  638. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/task_manager/event.py +0 -0
  639. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/task_manager/models.py +0 -0
  640. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/task_manager/task.py +0 -0
  641. {infrahub_server-1.2.5/backend/infrahub/transformations → infrahub_server-1.2.7/backend/infrahub/tasks}/__init__.py +0 -0
  642. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/artifact.py +0 -0
  643. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/check.py +0 -0
  644. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/dummy.py +0 -0
  645. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/keepalive.py +0 -0
  646. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/tasks/recurring.py +0 -0
  647. {infrahub_server-1.2.5/backend/infrahub/trigger → infrahub_server-1.2.7/backend/infrahub/telemetry}/__init__.py +0 -0
  648. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/constants.py +0 -0
  649. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/database.py +0 -0
  650. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/models.py +0 -0
  651. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/task_manager.py +0 -0
  652. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/tasks.py +0 -0
  653. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/telemetry/utils.py +0 -0
  654. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trace.py +0 -0
  655. {infrahub_server-1.2.5/backend/infrahub/validators → infrahub_server-1.2.7/backend/infrahub/transformations}/__init__.py +0 -0
  656. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/transformations/constants.py +0 -0
  657. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/transformations/models.py +0 -0
  658. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/transformations/tasks.py +0 -0
  659. {infrahub_server-1.2.5/backend/infrahub/webhook → infrahub_server-1.2.7/backend/infrahub/trigger}/__init__.py +0 -0
  660. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trigger/catalogue.py +0 -0
  661. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trigger/constants.py +0 -0
  662. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trigger/models.py +0 -0
  663. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trigger/setup.py +0 -0
  664. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/trigger/tasks.py +0 -0
  665. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/types.py +0 -0
  666. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/utils.py +0 -0
  667. {infrahub_server-1.2.5/backend/infrahub/workers → infrahub_server-1.2.7/backend/infrahub/validators}/__init__.py +0 -0
  668. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/validators/events.py +0 -0
  669. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/validators/tasks.py +0 -0
  670. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/visuals.py +0 -0
  671. {infrahub_server-1.2.5/backend/infrahub/workflows → infrahub_server-1.2.7/backend/infrahub/webhook}/__init__.py +0 -0
  672. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/webhook/gather.py +0 -0
  673. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/webhook/models.py +0 -0
  674. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/webhook/tasks.py +0 -0
  675. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/webhook/triggers.py +0 -0
  676. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/worker.py +0 -0
  677. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/ctl → infrahub_server-1.2.7/backend/infrahub/workers}/__init__.py +0 -0
  678. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workers/infrahub_async.py +0 -0
  679. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workers/utils.py +0 -0
  680. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/pytest_plugin → infrahub_server-1.2.7/backend/infrahub/workflows}/__init__.py +0 -0
  681. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workflows/catalogue.py +0 -0
  682. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workflows/constants.py +0 -0
  683. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workflows/initialization.py +0 -0
  684. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workflows/models.py +0 -0
  685. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/backend/infrahub/workflows/utils.py +0 -0
  686. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/__init__.py +0 -0
  687. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/_importer.py +0 -0
  688. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  689. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  690. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/batch.py +0 -0
  691. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/branch.py +0 -0
  692. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/client.py +0 -0
  693. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/config.py +0 -0
  694. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/constants.py +0 -0
  695. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/context.py +0 -0
  696. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/spec → infrahub_server-1.2.7/python_sdk/infrahub_sdk/ctl}/__init__.py +0 -0
  697. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  698. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  699. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  700. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  701. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  702. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  703. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  704. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  705. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  706. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  707. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  708. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  709. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  710. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  711. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  712. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/data.py +0 -0
  713. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/diff.py +0 -0
  714. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/generator.py +0 -0
  715. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/graphql.py +0 -0
  716. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/groups.py +0 -0
  717. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  718. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/object_store.py +0 -0
  719. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/playback.py +0 -0
  720. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/protocols.py +0 -0
  721. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  722. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/testing → infrahub_server-1.2.7/python_sdk/infrahub_sdk/protocols_generator}/__init__.py +0 -0
  723. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/testing/schemas → infrahub_server-1.2.7/python_sdk/infrahub_sdk/pytest_plugin}/__init__.py +0 -0
  724. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  725. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  726. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  727. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  728. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  729. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  730. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  731. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  732. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  733. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  734. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  735. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/queries.py +0 -0
  736. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  737. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/recorder.py +0 -0
  738. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/repository.py +0 -0
  739. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/transfer → infrahub_server-1.2.7/python_sdk/infrahub_sdk/spec}/__init__.py +0 -0
  740. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/store.py +0 -0
  741. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/task/__init__.py +0 -0
  742. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/task/constants.py +0 -0
  743. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/task/exceptions.py +0 -0
  744. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/task/manager.py +0 -0
  745. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/task/models.py +0 -0
  746. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/template/__init__.py +0 -0
  747. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/template/exceptions.py +0 -0
  748. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/template/filters.py +0 -0
  749. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/template/models.py +0 -0
  750. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/transfer/exporter → infrahub_server-1.2.7/python_sdk/infrahub_sdk/testing}/__init__.py +0 -0
  751. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  752. {infrahub_server-1.2.5/python_sdk/infrahub_sdk/transfer/importer → infrahub_server-1.2.7/python_sdk/infrahub_sdk/testing/schemas}/__init__.py +0 -0
  753. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  754. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  755. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  756. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  757. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  758. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  759. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  760. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  761. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  762. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  763. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/transforms.py +0 -0
  764. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/types.py +0 -0
  765. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/utils.py +0 -0
  766. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  767. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  768. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/constants.py +0 -0
  769. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  770. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
  771. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/host.py +0 -0
  772. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/measurements.py +0 -0
  773. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/python_testcontainers/infrahub_testcontainers/models.py +0 -0
  774. {infrahub_server-1.2.5 → infrahub_server-1.2.7}/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.5
3
+ Version: 1.2.7
4
4
  Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
5
5
  Home-page: https://opsmill.com
6
6
  License: AGPL-3.0-only
@@ -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
 
@@ -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
@@ -167,49 +162,33 @@ async def trigger_update_python_computed_attributes(
167
162
  flow_run_name="Update value for computed attribute {attribute_name}",
168
163
  )
169
164
  async def update_computed_attribute_value_jinja2(
170
- branch_name: str, obj: CoreNode, attribute_name: str, template_value: str, service: InfrahubServices
165
+ branch_name: str,
166
+ obj: ComputedAttrJinja2GraphQLResponse,
167
+ node_kind: str,
168
+ attribute_name: str,
169
+ template: Jinja2Template,
170
+ service: InfrahubServices,
171
171
  ) -> None:
172
172
  log = get_run_logger()
173
173
 
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:
174
+ await add_tags(branches=[branch_name], nodes=[obj.node_id], db_change=True)
175
+
176
+ value = await template.render(variables=obj.variables)
177
+ if value == obj.computed_attribute_value:
199
178
  log.debug(f"Ignoring to update {obj} with existing value on {attribute_name}={value}")
200
179
  return
201
180
 
202
181
  await service.client.execute_graphql(
203
182
  query=UPDATE_ATTRIBUTE,
204
183
  variables={
205
- "id": obj.id,
206
- "kind": obj.get_kind(),
184
+ "id": obj.node_id,
185
+ "kind": node_kind,
207
186
  "attribute": attribute_name,
208
187
  "value": value,
209
188
  },
210
189
  branch_name=branch_name,
211
190
  )
212
- log.info(f"Updating computed attribute {obj.get_kind()}.{attribute_name}='{value}' ({obj.id})")
191
+ log.info(f"Updating computed attribute {node_kind}.{attribute_name}='{value}' ({obj.node_id})")
213
192
 
214
193
 
215
194
  @flow(
@@ -235,41 +214,43 @@ async def process_jinja2(
235
214
  branch_name if branch_name in registry.get_altered_schema_branches() else registry.default_branch
236
215
  )
237
216
  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
-
217
+ node_schema = schema_branch.get_node(name=computed_attribute_kind, duplicate=False)
240
218
  computed_macros = [
241
219
  attrib
242
220
  for attrib in schema_branch.computed_attributes.get_impacted_jinja2_targets(kind=node_kind, updates=updates)
243
221
  if attrib.kind == computed_attribute_kind and attrib.attribute.name == computed_attribute_name
244
222
  ]
245
223
  for computed_macro in computed_macros:
246
- found: list[CoreNode] = []
224
+ found: list[ComputedAttrJinja2GraphQLResponse] = []
225
+ template_string = "n/a"
226
+ if computed_macro.attribute.computed_attribute and computed_macro.attribute.computed_attribute.jinja2_template:
227
+ template_string = computed_macro.attribute.computed_attribute.jinja2_template
228
+
229
+ jinja_template = Jinja2Template(template=template_string)
230
+ variables = jinja_template.get_variables()
231
+
232
+ attribute_graphql = ComputedAttrJinja2GraphQL(
233
+ node_schema=node_schema, attribute_schema=computed_macro.attribute, variables=variables
234
+ )
235
+
247
236
  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)
237
+ query = attribute_graphql.render_graphql_query(query_filter=id_filter, filter_id=object_id)
238
+ response = await service.client.execute_graphql(query=query, branch_name=branch_name)
239
+ output = attribute_graphql.parse_response(response=response)
240
+ found.extend(output)
257
241
 
258
242
  if not found:
259
243
  log.debug("No nodes found that requires updates")
260
244
 
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
245
  batch = await service.client.create_batch()
266
246
  for node in found:
267
247
  batch.add(
268
248
  task=update_computed_attribute_value_jinja2,
269
249
  branch_name=branch_name,
270
250
  obj=node,
251
+ node_kind=node_schema.kind,
271
252
  attribute_name=computed_macro.attribute.name,
272
- template_value=template_string,
253
+ template=jinja_template,
273
254
  service=service,
274
255
  )
275
256
 
@@ -803,8 +803,21 @@ class NodeManager:
803
803
 
804
804
  hfid_str = " :: ".join(hfid)
805
805
 
806
- if not node_schema.human_friendly_id or len(node_schema.human_friendly_id) != len(hfid):
807
- raise NodeNotFoundError(branch_name=branch.name, node_type=kind_str, identifier=hfid_str)
806
+ if not node_schema.human_friendly_id:
807
+ raise NodeNotFoundError(
808
+ branch_name=branch.name,
809
+ node_type=kind_str,
810
+ identifier=hfid_str,
811
+ message=f"Unable to lookup node by HFID, schema '{node_schema.kind}' does not have a HFID defined.",
812
+ )
813
+
814
+ if len(node_schema.human_friendly_id) != len(hfid):
815
+ raise NodeNotFoundError(
816
+ branch_name=branch.name,
817
+ node_type=kind_str,
818
+ identifier=hfid_str,
819
+ message=f"Unable to lookup node by HFID, schema '{node_schema.kind}' HFID does not contain the same number of elements as {hfid}",
820
+ )
808
821
 
809
822
  filters = {}
810
823
  for key, item in zip(node_schema.human_friendly_id, hfid, strict=False):
@@ -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)
@@ -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,
@@ -222,7 +222,7 @@ class Registry:
222
222
 
223
223
  async def purge_inactive_branches(
224
224
  self, db: InfrahubDatabase, active_branches: list[Branch] | None = None
225
- ) -> list[str]:
225
+ ) -> set[str]:
226
226
  """Return a list of branches that were purged from the registry."""
227
227
  active_branches = active_branches or await self.branch_object.get_list(db=db)
228
228
  active_branch_names = [branch.name for branch in active_branches]
@@ -235,8 +235,7 @@ class Registry:
235
235
 
236
236
  purged_branches.update(self.schema.purge_inactive_branches(active_branches=active_branch_names))
237
237
  purged_branches.update(db.purge_inactive_schemas(active_branches=active_branch_names))
238
-
239
- return sorted(purged_branches)
238
+ return purged_branches
240
239
 
241
240
 
242
241
  registry = Registry()
@@ -1909,10 +1909,8 @@ class SchemaBranch:
1909
1909
 
1910
1910
  self.set(name=node_name, schema=node_schema)
1911
1911
 
1912
- def add_relationships_to_template(self, node: NodeSchema) -> None:
1912
+ def add_relationships_to_template(self, node: NodeSchema | GenericSchema) -> None:
1913
1913
  template_schema = self.get(name=self._get_object_template_kind(node_kind=node.kind), duplicate=False)
1914
- if template_schema.is_generic_schema:
1915
- return
1916
1914
 
1917
1915
  # Remove previous relationships to account for new ones
1918
1916
  template_schema.relationships = [
@@ -1954,6 +1952,7 @@ class SchemaBranch:
1954
1952
  label=f"{relationship.name} template".title()
1955
1953
  if relationship.kind in [RelationshipKind.COMPONENT, RelationshipKind.PARENT]
1956
1954
  else relationship.name.title(),
1955
+ inherited=relationship.inherited,
1957
1956
  )
1958
1957
  )
1959
1958
 
@@ -1983,9 +1982,6 @@ class SchemaBranch:
1983
1982
  need_template_kinds = [n.kind for n in need_templates]
1984
1983
 
1985
1984
  if node.is_generic_schema:
1986
- # When needing a template for a generic, we generate an empty shell mostly to make sure that schemas (including the GraphQL one) will
1987
- # look right. We don't really care about applying inheritance of fields as it was already processed and actual templates will have the
1988
- # correct attributes and relationships
1989
1985
  template = GenericSchema(
1990
1986
  name=node.kind,
1991
1987
  namespace="Template",
@@ -1994,43 +1990,44 @@ class SchemaBranch:
1994
1990
  generate_profile=False,
1995
1991
  branch=node.branch,
1996
1992
  include_in_menu=False,
1993
+ display_labels=["template_name__value"],
1994
+ human_friendly_id=["template_name__value"],
1995
+ uniqueness_constraints=[["template_name__value"]],
1997
1996
  attributes=[template_name_attr],
1998
1997
  )
1999
1998
 
2000
1999
  for used in node.used_by:
2001
2000
  if used in need_template_kinds:
2002
2001
  template.used_by.append(self._get_object_template_kind(node_kind=used))
2002
+ else:
2003
+ template = TemplateSchema(
2004
+ name=node.kind,
2005
+ namespace="Template",
2006
+ label=f"Object template {node.label}",
2007
+ description=f"Object template for {node.kind}",
2008
+ branch=node.branch,
2009
+ include_in_menu=False,
2010
+ display_labels=["template_name__value"],
2011
+ human_friendly_id=["template_name__value"],
2012
+ uniqueness_constraints=[["template_name__value"]],
2013
+ inherit_from=[InfrahubKind.LINEAGESOURCE, InfrahubKind.NODE, core_template_schema.kind],
2014
+ default_filter="template_name__value",
2015
+ attributes=[template_name_attr],
2016
+ relationships=[
2017
+ RelationshipSchema(
2018
+ name="related_nodes",
2019
+ identifier="node__objecttemplate",
2020
+ peer=node.kind,
2021
+ kind=RelationshipKind.TEMPLATE,
2022
+ cardinality=RelationshipCardinality.MANY,
2023
+ branch=BranchSupportType.AWARE,
2024
+ )
2025
+ ],
2026
+ )
2003
2027
 
2004
- return template
2005
-
2006
- template = TemplateSchema(
2007
- name=node.kind,
2008
- namespace="Template",
2009
- label=f"Object template {node.label}",
2010
- description=f"Object template for {node.kind}",
2011
- branch=node.branch,
2012
- include_in_menu=False,
2013
- display_labels=["template_name__value"],
2014
- human_friendly_id=["template_name__value"],
2015
- uniqueness_constraints=[["template_name__value"]],
2016
- inherit_from=[InfrahubKind.LINEAGESOURCE, InfrahubKind.NODE, core_template_schema.kind],
2017
- default_filter="template_name__value",
2018
- attributes=[template_name_attr],
2019
- relationships=[
2020
- RelationshipSchema(
2021
- name="related_nodes",
2022
- identifier="node__objecttemplate",
2023
- peer=node.kind,
2024
- kind=RelationshipKind.TEMPLATE,
2025
- cardinality=RelationshipCardinality.MANY,
2026
- branch=BranchSupportType.AWARE,
2027
- )
2028
- ],
2029
- )
2030
-
2031
- for inherited in node.inherit_from:
2032
- if inherited in need_template_kinds:
2033
- template.inherit_from.append(self._get_object_template_kind(node_kind=inherited))
2028
+ for inherited in node.inherit_from:
2029
+ if inherited in need_template_kinds:
2030
+ template.inherit_from.append(self._get_object_template_kind(node_kind=inherited))
2034
2031
 
2035
2032
  for node_attr in node.attributes:
2036
2033
  if node_attr.unique or node_attr.read_only:
@@ -2038,7 +2035,7 @@ class SchemaBranch:
2038
2035
 
2039
2036
  attr = AttributeSchema(
2040
2037
  optional=node_attr.optional if is_autogenerated_subtemplate else True,
2041
- **node_attr.model_dump(exclude=["id", "unique", "optional", "read_only", "inherited"]),
2038
+ **node_attr.model_dump(exclude=["id", "unique", "optional", "read_only"]),
2042
2039
  )
2043
2040
  template.attributes.append(attr)
2044
2041
 
@@ -394,8 +394,10 @@ class InfrahubDatabase:
394
394
  with QUERY_EXECUTION_METRICS.labels(**labels).time():
395
395
  response = await self.run_query(query=query, params=params, name=name)
396
396
  if response is None:
397
+ span.set_attribute("rows", "empty")
397
398
  return [], {}
398
399
  results = [item async for item in response]
400
+ span.set_attribute("rows", len(results))
399
401
  return results, response._metadata or {}
400
402
 
401
403
  async def run_query(
@@ -113,6 +113,16 @@ class GraphQLSchemaManager:
113
113
  def clear_cache(cls) -> None:
114
114
  cls._branch_details_by_name = {}
115
115
 
116
+ @classmethod
117
+ def purge_inactive(cls, active_branches: list[str]) -> set[str]:
118
+ """Return inactive branches that were purged"""
119
+ inactive_branches: set[str] = set()
120
+ for branch_name in list(cls._branch_details_by_name):
121
+ if branch_name not in active_branches:
122
+ inactive_branches.add(branch_name)
123
+ del cls._branch_details_by_name[branch_name]
124
+ return inactive_branches
125
+
116
126
  @classmethod
117
127
  def _cache_branch(
118
128
  cls, branch: Branch, schema_branch: SchemaBranch, schema_hash: str | None = None