infrahub-server 1.3.1__tar.gz → 1.3.2__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 (807) hide show
  1. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/PKG-INFO +1 -1
  2. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/calculator.py +4 -1
  3. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query_parser.py +23 -32
  4. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +88 -132
  5. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/uniqueness/model.py +17 -0
  6. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/uniqueness/query.py +212 -1
  7. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/main.py +18 -2
  8. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/pyproject.toml +1 -1
  9. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/node.py +22 -10
  10. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/related_node.py +7 -0
  11. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/LICENSE.txt +0 -0
  12. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/README.md +0 -0
  13. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/__init__.py +0 -0
  14. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/__init__.py +0 -0
  15. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/constants.py +0 -0
  16. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/gather.py +0 -0
  17. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/models.py +0 -0
  18. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/parsers.py +0 -0
  19. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/schema.py +0 -0
  20. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/tasks.py +0 -0
  21. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/actions/triggers.py +0 -0
  22. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/__init__.py +0 -0
  23. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/artifact.py +0 -0
  24. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/auth.py +0 -0
  25. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/dependencies.py +0 -0
  26. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/diff/__init__.py +0 -0
  27. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/diff/diff.py +0 -0
  28. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/diff/validation_models.py +0 -0
  29. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/exception_handlers.py +0 -0
  30. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/exceptions.py +0 -0
  31. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/file.py +0 -0
  32. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/internal.py +0 -0
  33. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/menu.py +0 -0
  34. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/oauth2.py +0 -0
  35. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/oidc.py +0 -0
  36. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/query.py +0 -0
  37. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/schema.py +0 -0
  38. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  39. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  40. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/static/swagger-ui.css +0 -0
  41. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/storage.py +0 -0
  42. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/api/transformation.py +0 -0
  43. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/artifacts/__init__.py +0 -0
  44. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/artifacts/models.py +0 -0
  45. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/artifacts/tasks.py +0 -0
  46. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/auth.py +0 -0
  47. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/branch/__init__.py +0 -0
  48. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/branch/tasks.py +0 -0
  49. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/branch/triggers.py +0 -0
  50. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/__init__.py +0 -0
  51. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/constants.py +0 -0
  52. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/context.py +0 -0
  53. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/db.py +0 -0
  54. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/events.py +0 -0
  55. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/git_agent.py +0 -0
  56. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/patch.py +0 -0
  57. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/server.py +0 -0
  58. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/tasks.py +0 -0
  59. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/cli/upgrade.py +0 -0
  60. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/components.py +0 -0
  61. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/__init__.py +0 -0
  62. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/constants.py +0 -0
  63. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/gather.py +0 -0
  64. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/models.py +0 -0
  65. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/tasks.py +0 -0
  66. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/computed_attribute/triggers.py +0 -0
  67. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/config.py +0 -0
  68. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/constants/__init__.py +0 -0
  69. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/constants/database.py +0 -0
  70. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/context.py +0 -0
  71. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/__init__.py +0 -0
  72. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/account.py +0 -0
  73. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/attribute.py +0 -0
  74. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/branch/__init__.py +0 -0
  75. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/branch/models.py +0 -0
  76. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/branch/tasks.py +0 -0
  77. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/changelog/__init__.py +0 -0
  78. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/changelog/diff.py +0 -0
  79. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/changelog/models.py +0 -0
  80. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constants/__init__.py +0 -0
  81. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constants/database.py +0 -0
  82. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  83. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constants/relationship_label.py +0 -0
  84. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constants/schema.py +0 -0
  85. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constraint/__init__.py +0 -0
  86. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  87. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/constraint/node/runner.py +0 -0
  88. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/convert_object_type/__init__.py +0 -0
  89. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/convert_object_type/conversion.py +0 -0
  90. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/convert_object_type/schema_mapping.py +0 -0
  91. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/__init__.py +0 -0
  92. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  93. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  94. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/branch_differ.py +0 -0
  95. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/combiner.py +0 -0
  96. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  97. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  98. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  99. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/coordinator.py +0 -0
  100. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  101. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  102. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  103. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  104. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  105. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  106. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  107. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  108. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/enricher/summary_counts.py +0 -0
  109. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/exceptions.py +0 -0
  110. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  111. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  112. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/merger/merger.py +0 -0
  113. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/merger/model.py +0 -0
  114. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  115. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/model/__init__.py +0 -0
  116. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/model/diff.py +0 -0
  117. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/model/field_specifiers_map.py +0 -0
  118. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/model/path.py +0 -0
  119. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/models.py +0 -0
  120. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  121. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/payload_builder.py +0 -0
  122. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/__init__.py +0 -0
  123. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  124. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/artifact.py +0 -0
  125. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  126. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  127. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  128. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/drop_nodes.py +0 -0
  129. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  130. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  131. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/filters.py +0 -0
  132. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  133. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  134. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/merge.py +0 -0
  135. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  136. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  137. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/save.py +0 -0
  138. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  139. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  140. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  141. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  142. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  143. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/repository/repository.py +0 -0
  144. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/diff/tasks.py +0 -0
  145. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/enums.py +0 -0
  146. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/graph/__init__.py +0 -0
  147. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/graph/constraints.py +0 -0
  148. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/graph/index.py +0 -0
  149. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/graph/schema.py +0 -0
  150. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/initialization.py +0 -0
  151. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/integrity/__init__.py +0 -0
  152. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  153. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  154. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/__init__.py +0 -0
  155. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/constants.py +0 -0
  156. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  157. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/model.py +0 -0
  158. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/reconciler.py +0 -0
  159. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/size.py +0 -0
  160. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/tasks.py +0 -0
  161. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/ipam/utilization.py +0 -0
  162. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/manager.py +0 -0
  163. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/merge.py +0 -0
  164. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/__init__.py +0 -0
  165. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/__init__.py +0 -0
  166. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  167. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  168. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  169. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  170. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  171. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  172. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  173. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  174. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  175. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  176. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  177. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  178. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  179. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  180. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  181. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  182. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  183. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  184. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  185. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  186. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +0 -0
  187. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m022_add_generate_template_attr.py +0 -0
  188. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m023_deduplicate_cardinality_one_relationships.py +0 -0
  189. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +0 -0
  190. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m025_uniqueness_nulls.py +0 -0
  191. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m026_0000_prefix_fix.py +0 -0
  192. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m027_delete_isolated_nodes.py +0 -0
  193. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m028_delete_diffs.py +0 -0
  194. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m029_duplicates_cleanup.py +0 -0
  195. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m030_illegal_edges.py +0 -0
  196. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/graph/m031_check_number_attributes.py +0 -0
  197. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  198. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  199. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  200. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  201. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  202. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  203. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  204. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  205. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  206. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/models.py +0 -0
  207. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  208. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  209. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  210. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  211. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  212. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  213. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/migrations/shared.py +0 -0
  214. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/models.py +0 -0
  215. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/__init__.py +0 -0
  216. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/base.py +0 -0
  217. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  218. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  219. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/constraints/interface.py +0 -0
  220. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/create.py +0 -0
  221. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/delete_validator.py +0 -0
  222. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/ipam.py +0 -0
  223. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/permissions.py +0 -0
  224. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  225. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  226. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  227. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  228. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/node/standard.py +0 -0
  229. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/path.py +0 -0
  230. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/property.py +0 -0
  231. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/protocols.py +0 -0
  232. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/protocols_base.py +0 -0
  233. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/__init__.py +0 -0
  234. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/attribute.py +0 -0
  235. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/branch.py +0 -0
  236. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/delete.py +0 -0
  237. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/diff.py +0 -0
  238. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/ipam.py +0 -0
  239. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/node.py +0 -0
  240. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/relationship.py +0 -0
  241. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/resource_manager.py +0 -0
  242. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/standard_node.py +0 -0
  243. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/subquery.py +0 -0
  244. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/task.py +0 -0
  245. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/task_log.py +0 -0
  246. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/query/utils.py +0 -0
  247. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/registry.py +0 -0
  248. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/__init__.py +0 -0
  249. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  250. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  251. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  252. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  253. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/peer_parent.py +0 -0
  254. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/peer_relatives.py +0 -0
  255. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  256. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/relationship/model.py +0 -0
  257. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/root.py +0 -0
  258. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/__init__.py +0 -0
  259. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/attribute_parameters.py +0 -0
  260. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  261. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  262. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  263. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/constants.py +0 -0
  264. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  265. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/__init__.py +0 -0
  266. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/account.py +0 -0
  267. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/artifact.py +0 -0
  268. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/builtin.py +0 -0
  269. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/check.py +0 -0
  270. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/core.py +0 -0
  271. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/generator.py +0 -0
  272. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/graphql_query.py +0 -0
  273. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/group.py +0 -0
  274. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/ipam.py +0 -0
  275. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/lineage.py +0 -0
  276. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/menu.py +0 -0
  277. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/permission.py +0 -0
  278. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/profile.py +0 -0
  279. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/propose_change.py +0 -0
  280. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/propose_change_comment.py +0 -0
  281. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/propose_change_validator.py +0 -0
  282. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/repository.py +0 -0
  283. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/resource_pool.py +0 -0
  284. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/template.py +0 -0
  285. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/transform.py +0 -0
  286. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/core/webhook.py +0 -0
  287. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  288. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  289. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/dropdown.py +0 -0
  290. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  291. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  292. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  293. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  294. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  295. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  296. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/generic_schema.py +0 -0
  297. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/manager.py +0 -0
  298. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/node_schema.py +0 -0
  299. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/profile_schema.py +0 -0
  300. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  301. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/schema_branch.py +0 -0
  302. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  303. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/schema/template_schema.py +0 -0
  304. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/task/__init__.py +0 -0
  305. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/task/task.py +0 -0
  306. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/task/task_log.py +0 -0
  307. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/task/user_task.py +0 -0
  308. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/timestamp.py +0 -0
  309. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/utils.py +0 -0
  310. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/__init__.py +0 -0
  311. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  312. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  313. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  314. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  315. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  316. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/length.py +0 -0
  317. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/min_max.py +0 -0
  318. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/number_pool.py +0 -0
  319. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  320. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  321. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  322. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/checks_runner.py +0 -0
  323. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/determiner.py +0 -0
  324. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/enum.py +0 -0
  325. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/interface.py +0 -0
  326. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/model.py +0 -0
  327. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/models/__init__.py +0 -0
  328. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  329. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/models/violation.py +0 -0
  330. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/__init__.py +0 -0
  331. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/attribute.py +0 -0
  332. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  333. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  334. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  335. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/node/relationship.py +0 -0
  336. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/query.py +0 -0
  337. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  338. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/relationship/count.py +0 -0
  339. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  340. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  341. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/shared.py +0 -0
  342. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/tasks.py +0 -0
  343. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  344. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  345. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  346. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/__init__.py +0 -0
  347. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/index.py +0 -0
  348. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/memgraph.py +0 -0
  349. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/metrics.py +0 -0
  350. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/neo4j.py +0 -0
  351. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/database/validation.py +0 -0
  352. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/__init__.py +0 -0
  353. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  354. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  355. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  356. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  357. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  358. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  359. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  360. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  361. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  362. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_parent.py +0 -0
  363. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_relatives.py +0 -0
  364. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  365. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  366. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  367. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  368. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  369. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  370. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  371. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  372. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  373. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  374. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  375. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  376. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  377. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  378. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  379. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  380. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/relationship_peer.py +0 -0
  381. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  382. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  383. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  384. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  385. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  386. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  387. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  388. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  389. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  390. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  391. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  392. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  393. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  394. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  395. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  396. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  397. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  398. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  399. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -0
  400. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  401. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  402. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  403. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  404. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  405. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  406. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  407. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/component/__init__.py +0 -0
  408. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  409. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/component/registry.py +0 -0
  410. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/interface.py +0 -0
  411. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/dependencies/registry.py +0 -0
  412. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/__init__.py +0 -0
  413. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/artifact_action.py +0 -0
  414. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/branch_action.py +0 -0
  415. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/constants.py +0 -0
  416. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/generator.py +0 -0
  417. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/group_action.py +0 -0
  418. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/models.py +0 -0
  419. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/node_action.py +0 -0
  420. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/repository_action.py +0 -0
  421. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/schema_action.py +0 -0
  422. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/utils.py +0 -0
  423. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/events/validator_action.py +0 -0
  424. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/exceptions.py +0 -0
  425. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/generators/__init__.py +0 -0
  426. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/generators/models.py +0 -0
  427. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/generators/tasks.py +0 -0
  428. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/__init__.py +0 -0
  429. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/base.py +0 -0
  430. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/constants.py +0 -0
  431. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/directory.py +0 -0
  432. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/integrator.py +0 -0
  433. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/models.py +0 -0
  434. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/repository.py +0 -0
  435. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/tasks.py +0 -0
  436. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/utils.py +0 -0
  437. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git/worktree.py +0 -0
  438. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git_credential/__init__.py +0 -0
  439. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git_credential/askpass.py +0 -0
  440. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/git_credential/helper.py +0 -0
  441. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/__init__.py +0 -0
  442. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/analyzer.py +0 -0
  443. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/api/__init__.py +0 -0
  444. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/api/dependencies.py +0 -0
  445. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/api/endpoints.py +0 -0
  446. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/app.py +0 -0
  447. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/__init__.py +0 -0
  448. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  449. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  450. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  451. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  452. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  453. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  454. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  455. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  456. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/constants.py +0 -0
  457. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/context.py +0 -0
  458. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/directives.py +0 -0
  459. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/enums.py +0 -0
  460. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/initialization.py +0 -0
  461. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  462. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/loaders/node.py +0 -0
  463. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/loaders/peers.py +0 -0
  464. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/loaders/shared.py +0 -0
  465. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/manager.py +0 -0
  466. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/metrics.py +0 -0
  467. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/models.py +0 -0
  468. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  469. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/account.py +0 -0
  470. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/action.py +0 -0
  471. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  472. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  473. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/branch.py +0 -0
  474. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  475. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/convert_object_type.py +0 -0
  476. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/diff.py +0 -0
  477. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  478. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/generator.py +0 -0
  479. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  480. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  481. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/menu.py +0 -0
  482. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/models.py +0 -0
  483. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  484. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  485. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  486. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  487. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  488. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  489. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  490. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/repository.py +0 -0
  491. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  492. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/schema.py +0 -0
  493. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  494. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/mutations/webhook.py +0 -0
  495. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/parser.py +0 -0
  496. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/permissions.py +0 -0
  497. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/__init__.py +0 -0
  498. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/account.py +0 -0
  499. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/branch.py +0 -0
  500. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/convert_object_type_mapping.py +0 -0
  501. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  502. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  503. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/event.py +0 -0
  504. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/internal.py +0 -0
  505. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/ipam.py +0 -0
  506. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/relationship.py +0 -0
  507. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  508. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/search.py +0 -0
  509. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/status.py +0 -0
  510. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/queries/task.py +0 -0
  511. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  512. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/resolvers/many_relationship.py +0 -0
  513. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
  514. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  515. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/schema.py +0 -0
  516. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  517. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/subscription/events.py +0 -0
  518. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
  519. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/__init__.py +0 -0
  520. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/attribute.py +0 -0
  521. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/branch.py +0 -0
  522. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/common.py +0 -0
  523. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/context.py +0 -0
  524. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/enums.py +0 -0
  525. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/event.py +0 -0
  526. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/interface.py +0 -0
  527. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/node.py +0 -0
  528. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/permission.py +0 -0
  529. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/relationship.py +0 -0
  530. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/standard_node.py +0 -0
  531. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/task.py +0 -0
  532. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/types/task_log.py +0 -0
  533. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/graphql/utils.py +0 -0
  534. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/groups/__init__.py +0 -0
  535. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/groups/ancestors.py +0 -0
  536. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/groups/models.py +0 -0
  537. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/groups/parsers.py +0 -0
  538. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/groups/tasks.py +0 -0
  539. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/helpers.py +0 -0
  540. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/lock.py +0 -0
  541. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/log.py +0 -0
  542. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/__init__.py +0 -0
  543. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/constants.py +0 -0
  544. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/generator.py +0 -0
  545. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/menu.py +0 -0
  546. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/models.py +0 -0
  547. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/repository.py +0 -0
  548. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/menu/utils.py +0 -0
  549. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/__init__.py +0 -0
  550. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  551. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  552. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  553. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  554. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  555. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  556. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  557. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  558. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  559. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  560. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  561. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  562. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  563. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  564. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  565. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/message_bus/types.py +0 -0
  566. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/middleware.py +0 -0
  567. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/models.py +0 -0
  568. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/__init__.py +0 -0
  569. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/constants.py +0 -0
  570. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/edge_adder.py +0 -0
  571. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/edge_deleter.py +0 -0
  572. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/edge_updater.py +0 -0
  573. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/models.py +0 -0
  574. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/plan_reader.py +0 -0
  575. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/plan_writer.py +0 -0
  576. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/queries/__init__.py +0 -0
  577. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/queries/base.py +0 -0
  578. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/queries/delete_duplicated_edges.py +0 -0
  579. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/runner.py +0 -0
  580. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/vertex_adder.py +0 -0
  581. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/vertex_deleter.py +0 -0
  582. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/patch/vertex_updater.py +0 -0
  583. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/__init__.py +0 -0
  584. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/backend.py +0 -0
  585. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/constants.py +0 -0
  586. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/globals.py +0 -0
  587. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/local_backend.py +0 -0
  588. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/manager.py +0 -0
  589. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/report.py +0 -0
  590. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/permissions/types.py +0 -0
  591. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/__init__.py +0 -0
  592. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/address.py +0 -0
  593. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/models.py +0 -0
  594. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/number.py +0 -0
  595. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/prefix.py +0 -0
  596. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/registration.py +0 -0
  597. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pools/tasks.py +0 -0
  598. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/prefect_server/__init__.py +0 -0
  599. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/prefect_server/app.py +0 -0
  600. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/prefect_server/database.py +0 -0
  601. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/prefect_server/events.py +0 -0
  602. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/prefect_server/models.py +0 -0
  603. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/proposed_change/__init__.py +0 -0
  604. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/proposed_change/branch_diff.py +0 -0
  605. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/proposed_change/constants.py +0 -0
  606. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/proposed_change/models.py +0 -0
  607. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/proposed_change/tasks.py +0 -0
  608. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/pytest_plugin.py +0 -0
  609. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/schema/__init__.py +0 -0
  610. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/schema/tasks.py +0 -0
  611. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/schema/triggers.py +0 -0
  612. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/serve/__init__.py +0 -0
  613. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/serve/gunicorn_config.py +0 -0
  614. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/serve/log.py +0 -0
  615. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/serve/worker.py +0 -0
  616. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/server.py +0 -0
  617. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/__init__.py +0 -0
  618. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/__init__.py +0 -0
  619. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  620. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  621. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  622. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  623. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  624. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  625. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  626. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  627. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  628. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  629. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  630. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  631. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  632. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/component.py +0 -0
  633. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/protocols.py +0 -0
  634. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/services/scheduler.py +0 -0
  635. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/storage.py +0 -0
  636. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/task_manager/__init__.py +0 -0
  637. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/task_manager/constants.py +0 -0
  638. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/task_manager/event.py +0 -0
  639. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/task_manager/models.py +0 -0
  640. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/task_manager/task.py +0 -0
  641. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/__init__.py +0 -0
  642. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/artifact.py +0 -0
  643. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/check.py +0 -0
  644. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/dummy.py +0 -0
  645. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/keepalive.py +0 -0
  646. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/recurring.py +0 -0
  647. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/tasks/registry.py +0 -0
  648. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/__init__.py +0 -0
  649. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/constants.py +0 -0
  650. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/database.py +0 -0
  651. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/models.py +0 -0
  652. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/task_manager.py +0 -0
  653. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/tasks.py +0 -0
  654. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/telemetry/utils.py +0 -0
  655. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trace.py +0 -0
  656. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/transformations/__init__.py +0 -0
  657. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/transformations/constants.py +0 -0
  658. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/transformations/models.py +0 -0
  659. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/transformations/tasks.py +0 -0
  660. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/__init__.py +0 -0
  661. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/catalogue.py +0 -0
  662. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/constants.py +0 -0
  663. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/models.py +0 -0
  664. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/setup.py +0 -0
  665. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/trigger/tasks.py +0 -0
  666. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/types.py +0 -0
  667. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/utils.py +0 -0
  668. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/validators/__init__.py +0 -0
  669. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/validators/events.py +0 -0
  670. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/validators/tasks.py +0 -0
  671. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/visuals.py +0 -0
  672. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/webhook/__init__.py +0 -0
  673. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/webhook/gather.py +0 -0
  674. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/webhook/models.py +0 -0
  675. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/webhook/tasks.py +0 -0
  676. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/webhook/triggers.py +0 -0
  677. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/worker.py +0 -0
  678. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workers/__init__.py +0 -0
  679. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workers/infrahub_async.py +0 -0
  680. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workers/utils.py +0 -0
  681. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/__init__.py +0 -0
  682. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/catalogue.py +0 -0
  683. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/constants.py +0 -0
  684. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/initialization.py +0 -0
  685. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/models.py +0 -0
  686. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/backend/infrahub/workflows/utils.py +0 -0
  687. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/__init__.py +0 -0
  688. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/_importer.py +0 -0
  689. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  690. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  691. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/batch.py +0 -0
  692. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/branch.py +0 -0
  693. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/checks.py +0 -0
  694. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/client.py +0 -0
  695. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/config.py +0 -0
  696. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/constants.py +0 -0
  697. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/context.py +0 -0
  698. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/__init__.py +0 -0
  699. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  700. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  701. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  702. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/cli_commands.py +0 -0
  703. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  704. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  705. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  706. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  707. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  708. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  709. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
  710. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
  711. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  712. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  713. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  714. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  715. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  716. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
  717. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  718. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/data.py +0 -0
  719. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/diff.py +0 -0
  720. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/exceptions.py +0 -0
  721. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/generator.py +0 -0
  722. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/graphql.py +0 -0
  723. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/groups.py +0 -0
  724. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  725. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/__init__.py +0 -0
  726. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/attribute.py +0 -0
  727. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/constants.py +0 -0
  728. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/parsers.py +0 -0
  729. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/property.py +0 -0
  730. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/node/relationship.py +0 -0
  731. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/object_store.py +0 -0
  732. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/operation.py +0 -0
  733. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/playback.py +0 -0
  734. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols.py +0 -0
  735. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  736. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols_generator/__init__.py +0 -0
  737. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols_generator/constants.py +0 -0
  738. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols_generator/generator.py +0 -0
  739. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/protocols_generator/template.j2 +0 -0
  740. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/__init__.py +0 -0
  741. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  742. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  743. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  744. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  745. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  746. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  747. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  748. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  749. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  750. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  751. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  752. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/queries.py +0 -0
  753. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  754. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/recorder.py +0 -0
  755. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/repository.py +0 -0
  756. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
  757. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/schema/main.py +0 -0
  758. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
  759. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/spec/__init__.py +0 -0
  760. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
  761. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/spec/object.py +0 -0
  762. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/store.py +0 -0
  763. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/task/__init__.py +0 -0
  764. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/task/constants.py +0 -0
  765. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/task/exceptions.py +0 -0
  766. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/task/manager.py +0 -0
  767. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/task/models.py +0 -0
  768. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/template/__init__.py +0 -0
  769. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/template/exceptions.py +0 -0
  770. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/template/filters.py +0 -0
  771. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/template/models.py +0 -0
  772. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/__init__.py +0 -0
  773. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
  774. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  775. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
  776. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
  777. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  778. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  779. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  780. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  781. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  782. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  783. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  784. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  785. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  786. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  787. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  788. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  789. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  790. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/transforms.py +0 -0
  791. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/types.py +0 -0
  792. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/utils.py +0 -0
  793. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  794. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_sdk/infrahub_sdk/yaml.py +0 -0
  795. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  796. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/constants.py +0 -0
  797. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/container.py +0 -0
  798. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/docker-compose-cluster.test.yml +0 -0
  799. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +0 -0
  800. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  801. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
  802. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/host.py +0 -0
  803. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/measurements.py +0 -0
  804. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/models.py +0 -0
  805. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/performance_test.py +0 -0
  806. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/plugin.py +0 -0
  807. {infrahub_server-1.3.1 → infrahub_server-1.3.2}/python_testcontainers/infrahub_testcontainers/prometheus.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: infrahub-server
3
- Version: 1.3.1
3
+ Version: 1.3.2
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
  License: AGPL-3.0-only
6
6
  Author: OpsMill
@@ -181,8 +181,11 @@ class DiffCalculator:
181
181
  log.info("Diff property-level calculation queries for branch complete")
182
182
 
183
183
  if base_branch.name != diff_branch.name:
184
- current_node_field_specifiers = diff_parser.get_current_node_field_specifiers()
185
184
  new_node_field_specifiers = diff_parser.get_new_node_field_specifiers()
185
+ current_node_field_specifiers = None
186
+ if previous_node_specifiers is not None:
187
+ current_node_field_specifiers = previous_node_specifiers - new_node_field_specifiers
188
+
186
189
  base_calculation_request = DiffCalculationRequest(
187
190
  base_branch=base_branch,
188
191
  diff_branch=base_branch,
@@ -486,6 +486,7 @@ class DiffQueryParser:
486
486
  self._previous_node_field_specifiers = previous_node_field_specifiers or NodeFieldSpecifierMap()
487
487
  self._new_node_field_specifiers: NodeFieldSpecifierMap | None = None
488
488
  self._current_node_field_specifiers: NodeFieldSpecifierMap | None = None
489
+ self._diff_node_field_specifiers: NodeFieldSpecifierMap = NodeFieldSpecifierMap()
489
490
 
490
491
  def get_branches(self) -> set[str]:
491
492
  return set(self._final_diff_root_by_branch.keys())
@@ -497,33 +498,17 @@ class DiffQueryParser:
497
498
  return self._final_diff_root_by_branch[branch]
498
499
  return DiffRoot(from_time=self.from_time, to_time=self.to_time, uuid=str(uuid4()), branch=branch, nodes=[])
499
500
 
500
- def get_diff_node_field_specifiers(self) -> NodeFieldSpecifierMap:
501
- node_field_specifiers_map = NodeFieldSpecifierMap()
502
- if self.diff_branch_name not in self._diff_root_by_branch:
503
- return node_field_specifiers_map
504
- diff_root = self._diff_root_by_branch[self.diff_branch_name]
505
- for node in diff_root.nodes_by_identifier.values():
506
- for attribute_name in node.attributes_by_name:
507
- node_field_specifiers_map.add_entry(node_uuid=node.uuid, kind=node.kind, field_name=attribute_name)
508
- for relationship_diff in node.relationships_by_identifier.values():
509
- node_field_specifiers_map.add_entry(
510
- node_uuid=node.uuid, kind=node.kind, field_name=relationship_diff.identifier
511
- )
512
- return node_field_specifiers_map
513
-
514
501
  def get_new_node_field_specifiers(self) -> NodeFieldSpecifierMap:
515
- if self._new_node_field_specifiers is not None:
516
- return self._new_node_field_specifiers
517
- branch_node_specifiers = self.get_diff_node_field_specifiers()
518
- self._new_node_field_specifiers = branch_node_specifiers - self._previous_node_field_specifiers
519
- return self._new_node_field_specifiers
520
-
521
- def get_current_node_field_specifiers(self) -> NodeFieldSpecifierMap:
522
- if self._current_node_field_specifiers is not None:
523
- return self._current_node_field_specifiers
524
- new_node_field_specifiers = self.get_new_node_field_specifiers()
525
- self._current_node_field_specifiers = self._previous_node_field_specifiers - new_node_field_specifiers
526
- return self._current_node_field_specifiers
502
+ return self._diff_node_field_specifiers - self._previous_node_field_specifiers
503
+
504
+ def is_new_node_field_specifier(self, node_uuid: str, kind: str, field_name: str) -> bool:
505
+ if not self._diff_node_field_specifiers.has_entry(node_uuid=node_uuid, kind=kind, field_name=field_name):
506
+ return False
507
+ if self._previous_node_field_specifiers and self._previous_node_field_specifiers.has_entry(
508
+ node_uuid=node_uuid, kind=kind, field_name=field_name
509
+ ):
510
+ return False
511
+ return True
527
512
 
528
513
  def read_result(self, query_result: QueryResult) -> None:
529
514
  try:
@@ -533,8 +518,6 @@ class DiffQueryParser:
533
518
  return
534
519
  database_path = DatabasePath.from_cypher_path(cypher_path=path)
535
520
  self._parse_path(database_path=database_path)
536
- self._current_node_field_specifiers = None
537
- self._new_node_field_specifiers = None
538
521
 
539
522
  def parse(self, include_unchanged: bool = False) -> None:
540
523
  self._new_node_field_specifiers = None
@@ -617,11 +600,15 @@ class DiffQueryParser:
617
600
  branch_name = database_path.deepest_branch
618
601
  from_time = self.from_time
619
602
  if branch_name == self.base_branch_name:
620
- new_node_field_specifiers = self.get_new_node_field_specifiers()
621
- if new_node_field_specifiers.has_entry(
603
+ if self.is_new_node_field_specifier(
622
604
  node_uuid=diff_node.uuid, kind=diff_node.kind, field_name=attribute_name
623
605
  ):
624
606
  from_time = self.diff_branched_from_time
607
+ else:
608
+ # Add to diff node field specifiers if this is the diff branch
609
+ self._diff_node_field_specifiers.add_entry(
610
+ node_uuid=diff_node.uuid, kind=diff_node.kind, field_name=attribute_name
611
+ )
625
612
  if attribute_name not in diff_node.attributes_by_name:
626
613
  diff_node.attributes_by_name[attribute_name] = DiffAttributeIntermediate(
627
614
  uuid=database_path.attribute_id,
@@ -663,11 +650,15 @@ class DiffQueryParser:
663
650
  branch_name = database_path.deepest_branch
664
651
  from_time = self.from_time
665
652
  if branch_name == self.base_branch_name:
666
- new_node_field_specifiers = self.get_new_node_field_specifiers()
667
- if new_node_field_specifiers.has_entry(
653
+ if self.is_new_node_field_specifier(
668
654
  node_uuid=diff_node.uuid, kind=diff_node.kind, field_name=relationship_schema.get_identifier()
669
655
  ):
670
656
  from_time = self.diff_branched_from_time
657
+ else:
658
+ # Add to diff node field specifiers if this is the diff branch
659
+ self._diff_node_field_specifiers.add_entry(
660
+ node_uuid=diff_node.uuid, kind=diff_node.kind, field_name=relationship_schema.get_identifier()
661
+ )
671
662
  diff_relationship = DiffRelationshipIntermediate(
672
663
  name=relationship_schema.name,
673
664
  cardinality=relationship_schema.cardinality,
@@ -1,26 +1,19 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Iterable
3
+ from typing import TYPE_CHECKING
4
4
 
5
5
  from infrahub.core import registry
6
6
  from infrahub.core.constants import NULL_VALUE
7
- from infrahub.core.schema import (
8
- MainSchemaTypes,
9
- SchemaAttributePath,
10
- SchemaAttributePathValue,
11
- )
12
7
  from infrahub.core.schema.basenode_schema import (
13
- SchemaUniquenessConstraintPath,
14
8
  UniquenessConstraintType,
15
9
  UniquenessConstraintViolation,
16
10
  )
17
- from infrahub.core.validators.uniqueness.index import UniquenessQueryResultsIndex
18
11
  from infrahub.core.validators.uniqueness.model import (
19
- NodeUniquenessQueryRequest,
20
- QueryAttributePath,
21
- QueryRelationshipAttributePath,
12
+ NodeUniquenessQueryRequestValued,
13
+ QueryAttributePathValued,
14
+ QueryRelationshipPathValued,
22
15
  )
23
- from infrahub.core.validators.uniqueness.query import NodeUniqueAttributeConstraintQuery
16
+ from infrahub.core.validators.uniqueness.query import UniquenessValidationQuery
24
17
  from infrahub.exceptions import HFIDViolatedError, ValidationError
25
18
 
26
19
  from .interface import NodeConstraintInterface
@@ -28,8 +21,11 @@ from .interface import NodeConstraintInterface
28
21
  if TYPE_CHECKING:
29
22
  from infrahub.core.branch import Branch
30
23
  from infrahub.core.node import Node
31
- from infrahub.core.query import QueryResult
32
24
  from infrahub.core.relationship.model import RelationshipManager
25
+ from infrahub.core.schema import (
26
+ MainSchemaTypes,
27
+ SchemaAttributePath,
28
+ )
33
29
  from infrahub.core.timestamp import Timestamp
34
30
  from infrahub.database import InfrahubDatabase
35
31
 
@@ -40,72 +36,38 @@ class NodeGroupedUniquenessConstraint(NodeConstraintInterface):
40
36
  self.branch = branch
41
37
  self.schema_branch = registry.schema.get_schema_branch(branch.name)
42
38
 
43
- async def _build_query_request(
44
- self,
45
- updated_node: Node,
46
- node_schema: MainSchemaTypes,
47
- uniqueness_constraint_paths: list[SchemaUniquenessConstraintPath],
48
- filters: list[str] | None = None,
49
- ) -> NodeUniquenessQueryRequest:
50
- query_request = NodeUniquenessQueryRequest(kind=node_schema.kind)
51
- for uniqueness_constraint_path in uniqueness_constraint_paths:
52
- include_in_query = not filters
53
- query_relationship_paths: set[QueryRelationshipAttributePath] = set()
54
- query_attribute_paths: set[QueryAttributePath] = set()
55
- for attribute_path in uniqueness_constraint_path.attributes_paths:
56
- if attribute_path.related_schema and attribute_path.relationship_schema:
57
- if filters and attribute_path.relationship_schema.name in filters:
58
- include_in_query = True
59
-
60
- relationship_manager: RelationshipManager = getattr(
61
- updated_node, attribute_path.relationship_schema.name
62
- )
63
- related_node = await relationship_manager.get_peer(db=self.db)
64
- related_node_id = related_node.get_id() if related_node else None
65
- query_relationship_paths.add(
66
- QueryRelationshipAttributePath(
67
- identifier=attribute_path.relationship_schema.get_identifier(),
68
- value=related_node_id,
69
- )
70
- )
71
- continue
72
- if attribute_path.attribute_schema:
73
- if filters and attribute_path.attribute_schema.name in filters:
74
- include_in_query = True
75
- attribute_name = attribute_path.attribute_schema.name
76
- attribute = getattr(updated_node, attribute_name)
77
- if attribute.is_enum and attribute.value:
78
- attribute_value = attribute.value.value
79
- else:
80
- attribute_value = attribute.value
81
- if attribute_value is None:
82
- attribute_value = NULL_VALUE
83
- query_attribute_paths.add(
84
- QueryAttributePath(
85
- attribute_name=attribute_name,
86
- property_name=attribute_path.attribute_property_name or "value",
87
- value=attribute_value,
88
- )
89
- )
90
- if include_in_query:
91
- query_request.relationship_attribute_paths |= query_relationship_paths
92
- query_request.unique_attribute_paths |= query_attribute_paths
93
- return query_request
94
-
95
- async def _get_node_attribute_path_values(
39
+ async def _get_unique_valued_paths(
96
40
  self,
97
41
  updated_node: Node,
98
42
  path_group: list[SchemaAttributePath],
99
- ) -> list[SchemaAttributePathValue]:
100
- node_value_combination = []
43
+ filters: list[str],
44
+ ) -> list[QueryAttributePathValued | QueryRelationshipPathValued]:
45
+ # if filters are provided, we need to check if the path group is relevant to the filters
46
+ if filters:
47
+ field_names: list[str] = []
48
+ for schema_attribute_path in path_group:
49
+ if schema_attribute_path.relationship_schema:
50
+ field_names.append(schema_attribute_path.relationship_schema.name)
51
+ elif schema_attribute_path.attribute_schema:
52
+ field_names.append(schema_attribute_path.attribute_schema.name)
53
+
54
+ if not set(field_names) & set(filters):
55
+ return []
56
+
57
+ valued_paths: list[QueryAttributePathValued | QueryRelationshipPathValued] = []
101
58
  for schema_attribute_path in path_group:
102
59
  if schema_attribute_path.relationship_schema:
103
60
  relationship_name = schema_attribute_path.relationship_schema.name
104
61
  relationship_manager: RelationshipManager = getattr(updated_node, relationship_name)
105
62
  related_node = await relationship_manager.get_peer(db=self.db)
106
63
  related_node_id = related_node.get_id() if related_node else None
107
- node_value_combination.append(
108
- SchemaAttributePathValue.from_schema_attribute_path(schema_attribute_path, value=related_node_id)
64
+ valued_paths.append(
65
+ QueryRelationshipPathValued(
66
+ relationship_schema=schema_attribute_path.relationship_schema,
67
+ peer_id=related_node_id,
68
+ attribute_name=None,
69
+ attribute_value=None,
70
+ )
109
71
  )
110
72
  elif schema_attribute_path.attribute_schema:
111
73
  attribute_name = schema_attribute_path.attribute_schema.name
@@ -115,86 +77,79 @@ class NodeGroupedUniquenessConstraint(NodeConstraintInterface):
115
77
  attribute_value = attribute_value.value
116
78
  elif attribute_value is None:
117
79
  attribute_value = NULL_VALUE
118
- node_value_combination.append(
119
- SchemaAttributePathValue.from_schema_attribute_path(
120
- schema_attribute_path,
80
+ valued_paths.append(
81
+ QueryAttributePathValued(
82
+ attribute_name=attribute_name,
121
83
  value=attribute_value,
122
84
  )
123
85
  )
124
- return node_value_combination
86
+ return valued_paths
125
87
 
126
- async def _get_violations(
88
+ async def _get_single_schema_violations(
127
89
  self,
128
- updated_node: Node,
129
- uniqueness_constraint_paths: list[SchemaUniquenessConstraintPath],
130
- query_results: Iterable[QueryResult],
90
+ node: Node,
91
+ node_schema: MainSchemaTypes,
92
+ filters: list[str],
93
+ at: Timestamp | None = None,
131
94
  ) -> list[UniquenessConstraintViolation]:
132
- results_index = UniquenessQueryResultsIndex(
133
- query_results=query_results, exclude_node_ids={updated_node.get_id()}
95
+ schema_branch = self.db.schema.get_schema_branch(name=self.branch.name)
96
+
97
+ uniqueness_constraint_paths = node_schema.get_unique_constraint_schema_attribute_paths(
98
+ schema_branch=schema_branch
134
99
  )
135
- violations = []
100
+
101
+ violations: list[UniquenessConstraintViolation] = []
136
102
  for uniqueness_constraint_path in uniqueness_constraint_paths:
137
- # path_group = one constraint (that can contain multiple items)
138
- schema_attribute_path_values = await self._get_node_attribute_path_values(
139
- updated_node=updated_node, path_group=uniqueness_constraint_path.attributes_paths
103
+ valued_paths = await self._get_unique_valued_paths(
104
+ updated_node=node,
105
+ path_group=uniqueness_constraint_path.attributes_paths,
106
+ filters=filters,
140
107
  )
141
108
 
142
- # constraint cannot be violated if this node is missing any values
143
- if any(sapv.value is None for sapv in schema_attribute_path_values):
109
+ if not valued_paths:
144
110
  continue
145
111
 
146
- matching_node_ids = results_index.get_node_ids_for_value_group(schema_attribute_path_values)
147
- if not matching_node_ids:
112
+ # Create the valued query request for this constraint
113
+ valued_query_request = NodeUniquenessQueryRequestValued(
114
+ kind=node_schema.kind,
115
+ unique_valued_paths=valued_paths,
116
+ )
117
+
118
+ # Execute the query
119
+ query = await UniquenessValidationQuery.init(
120
+ db=self.db,
121
+ branch=self.branch,
122
+ at=at,
123
+ query_request=valued_query_request,
124
+ node_ids_to_exclude=[node.get_id()],
125
+ )
126
+ await query.execute(db=self.db)
127
+
128
+ # Get violation nodes from the query results
129
+ violation_nodes = query.get_violation_nodes()
130
+ if not violation_nodes:
148
131
  continue
149
132
 
133
+ # Create violation object
150
134
  uniqueness_constraint_fields = []
151
- for sapv in schema_attribute_path_values:
152
- if sapv.relationship_schema:
153
- uniqueness_constraint_fields.append(sapv.relationship_schema.name)
154
- elif sapv.attribute_schema:
155
- uniqueness_constraint_fields.append(sapv.attribute_schema.name)
156
-
157
- violations.append(
158
- UniquenessConstraintViolation(
159
- nodes_ids=matching_node_ids,
160
- fields=uniqueness_constraint_fields,
161
- typ=uniqueness_constraint_path.typ,
135
+ for valued_path in valued_paths:
136
+ if isinstance(valued_path, QueryRelationshipPathValued):
137
+ uniqueness_constraint_fields.append(valued_path.relationship_schema.name)
138
+ elif isinstance(valued_path, QueryAttributePathValued):
139
+ uniqueness_constraint_fields.append(valued_path.attribute_name)
140
+
141
+ matching_node_ids = {node_id for node_id, _ in violation_nodes}
142
+ if matching_node_ids:
143
+ violations.append(
144
+ UniquenessConstraintViolation(
145
+ nodes_ids=matching_node_ids,
146
+ fields=uniqueness_constraint_fields,
147
+ typ=uniqueness_constraint_path.typ,
148
+ )
162
149
  )
163
- )
164
150
 
165
151
  return violations
166
152
 
167
- async def _get_single_schema_violations(
168
- self,
169
- node: Node,
170
- node_schema: MainSchemaTypes,
171
- at: Timestamp | None = None,
172
- filters: list[str] | None = None,
173
- ) -> list[UniquenessConstraintViolation]:
174
- schema_branch = self.db.schema.get_schema_branch(name=self.branch.name)
175
-
176
- uniqueness_constraint_paths = node_schema.get_unique_constraint_schema_attribute_paths(
177
- schema_branch=schema_branch
178
- )
179
- query_request = await self._build_query_request(
180
- updated_node=node,
181
- node_schema=node_schema,
182
- uniqueness_constraint_paths=uniqueness_constraint_paths,
183
- filters=filters,
184
- )
185
- if not query_request:
186
- return []
187
-
188
- query = await NodeUniqueAttributeConstraintQuery.init(
189
- db=self.db, branch=self.branch, at=at, query_request=query_request, min_count_required=0
190
- )
191
- await query.execute(db=self.db)
192
- return await self._get_violations(
193
- updated_node=node,
194
- uniqueness_constraint_paths=uniqueness_constraint_paths,
195
- query_results=query.get_results(),
196
- )
197
-
198
153
  async def check(self, node: Node, at: Timestamp | None = None, filters: list[str] | None = None) -> None:
199
154
  def _frozen_constraints(schema: MainSchemaTypes) -> frozenset[frozenset[str]]:
200
155
  if not schema.uniqueness_constraints:
@@ -218,7 +173,8 @@ class NodeGroupedUniquenessConstraint(NodeConstraintInterface):
218
173
  if include_node_schema:
219
174
  schemas_to_check.append(node_schema)
220
175
 
221
- violations = []
176
+ violations: list[UniquenessConstraintViolation] = []
177
+
222
178
  for schema in schemas_to_check:
223
179
  schema_filters = list(filters) if filters is not None else []
224
180
  for attr_schema in schema.attributes:
@@ -59,6 +59,23 @@ class NodeUniquenessQueryRequest(BaseModel):
59
59
  )
60
60
 
61
61
 
62
+ class QueryRelationshipPathValued(BaseModel):
63
+ relationship_schema: RelationshipSchema
64
+ peer_id: str | None
65
+ attribute_name: str | None
66
+ attribute_value: str | bool | int | float | None
67
+
68
+
69
+ class QueryAttributePathValued(BaseModel):
70
+ attribute_name: str
71
+ value: str | bool | int | float
72
+
73
+
74
+ class NodeUniquenessQueryRequestValued(BaseModel):
75
+ kind: str
76
+ unique_valued_paths: list[QueryAttributePathValued | QueryRelationshipPathValued]
77
+
78
+
62
79
  class NonUniqueRelatedAttribute(BaseModel):
63
80
  relationship: RelationshipSchema
64
81
  attribute_name: str
@@ -5,10 +5,12 @@ from typing import TYPE_CHECKING, Any
5
5
  from infrahub.core.constants.relationship_label import RELATIONSHIP_TO_VALUE_LABEL
6
6
  from infrahub.core.query import Query, QueryType
7
7
 
8
+ from .model import QueryAttributePathValued, QueryRelationshipPathValued
9
+
8
10
  if TYPE_CHECKING:
9
11
  from infrahub.database import InfrahubDatabase
10
12
 
11
- from .model import NodeUniquenessQueryRequest
13
+ from .model import NodeUniquenessQueryRequest, NodeUniquenessQueryRequestValued
12
14
 
13
15
 
14
16
  class NodeUniqueAttributeConstraintQuery(Query):
@@ -244,3 +246,212 @@ class NodeUniqueAttributeConstraintQuery(Query):
244
246
  "attr_value",
245
247
  "relationship_identifier",
246
248
  ]
249
+
250
+
251
+ class UniquenessValidationQuery(Query):
252
+ name = "uniqueness_constraint_validation"
253
+ type = QueryType.READ
254
+
255
+ def __init__(
256
+ self,
257
+ query_request: NodeUniquenessQueryRequestValued,
258
+ node_ids_to_exclude: list[str] | None = None,
259
+ **kwargs: Any,
260
+ ) -> None:
261
+ self.query_request = query_request
262
+ self.node_ids_to_exclude = node_ids_to_exclude
263
+ super().__init__(**kwargs)
264
+
265
+ def _build_attr_subquery(
266
+ self, node_kind: str, attr_path: QueryAttributePathValued, index: int, branch_filter: str, is_first_query: bool
267
+ ) -> tuple[str, dict[str, str | int | float | bool]]:
268
+ attr_name_var = f"attr_name_{index}"
269
+ attr_value_var = f"attr_value_{index}"
270
+ if is_first_query:
271
+ first_query_filter = "WHERE $node_ids_to_exclude IS NULL OR NOT node.uuid IN $node_ids_to_exclude"
272
+ else:
273
+ first_query_filter = ""
274
+ attribute_query = """
275
+ MATCH (node:%(node_kind)s)-[:HAS_ATTRIBUTE]->(attr:Attribute {name: $%(attr_name_var)s})-[:HAS_VALUE]->(:AttributeValue {value: $%(attr_value_var)s})
276
+ %(first_query_filter)s
277
+ WITH DISTINCT node
278
+ CALL (node) {
279
+ MATCH (node)-[r:HAS_ATTRIBUTE]->(attr:Attribute {name: $%(attr_name_var)s})
280
+ WHERE %(branch_filter)s
281
+ WITH attr, r.status = "active" AS is_active
282
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
283
+ WITH attr, is_active
284
+ LIMIT 1
285
+ WITH attr, is_active
286
+ WHERE is_active = TRUE
287
+ MATCH (attr)-[r:HAS_VALUE]->(:AttributeValue {value: $%(attr_value_var)s})
288
+ WHERE %(branch_filter)s
289
+ WITH r
290
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
291
+ LIMIT 1
292
+ WITH r
293
+ WHERE r.status = "active"
294
+ RETURN 1 AS is_match_%(index)s
295
+ }
296
+ """ % {
297
+ "first_query_filter": first_query_filter,
298
+ "node_kind": node_kind,
299
+ "attr_name_var": attr_name_var,
300
+ "attr_value_var": attr_value_var,
301
+ "branch_filter": branch_filter,
302
+ "index": index,
303
+ }
304
+ params: dict[str, str | int | float | bool] = {
305
+ attr_name_var: attr_path.attribute_name,
306
+ attr_value_var: attr_path.value,
307
+ }
308
+ return attribute_query, params
309
+
310
+ def _build_rel_subquery(
311
+ self,
312
+ node_kind: str,
313
+ rel_path: QueryRelationshipPathValued,
314
+ index: int,
315
+ branch_filter: str,
316
+ is_first_query: bool,
317
+ ) -> tuple[str, dict[str, str | int | float | bool]]:
318
+ params: dict[str, str | int | float | bool] = {}
319
+ rel_attr_query = ""
320
+ rel_attr_match = ""
321
+ if rel_path.attribute_name and rel_path.attribute_value:
322
+ attr_name_var = f"attr_name_{index}"
323
+ attr_value_var = f"attr_value_{index}"
324
+ rel_attr_query = """
325
+ MATCH (peer)-[r:HAS_ATTRIBUTE]->(attr:Attribute {name: $%(attr_name_var)s})
326
+ WHERE %(branch_filter)s
327
+ WITH attr, r.status = "active" AS is_active
328
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
329
+ WITH attr, is_active
330
+ LIMIT 1
331
+ WITH attr, is_active
332
+ WHERE is_active = TRUE
333
+ MATCH (attr)-[r:HAS_VALUE]->(:AttributeValue {value: $%(attr_value_var)s})
334
+ WHERE %(branch_filter)s
335
+ WITH r
336
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
337
+ LIMIT 1
338
+ WITH r
339
+ WHERE r.status = "active"
340
+ """ % {"attr_name_var": attr_name_var, "attr_value_var": attr_value_var, "branch_filter": branch_filter}
341
+ rel_attr_match = (
342
+ "-[r:HAS_ATTRIBUTE]->(attr:Attribute {name: $%(attr_name_var)s})-[:HAS_VALUE]->(:AttributeValue {value: $%(attr_value_var)s})"
343
+ % {
344
+ "attr_name_var": attr_name_var,
345
+ "attr_value_var": attr_value_var,
346
+ }
347
+ )
348
+ params[attr_name_var] = rel_path.attribute_name
349
+ params[attr_value_var] = rel_path.attribute_value
350
+ query_arrows = rel_path.relationship_schema.get_query_arrows()
351
+ rel_name_var = f"rel_name_{index}"
352
+ # long path MATCH is required to hit an index on the peer or AttributeValue of the peer
353
+ first_match = (
354
+ "MATCH (node:%(node_kind)s)%(lstart)s[:IS_RELATED]%(lend)s(:Relationship {name: $%(rel_name_var)s})%(rstart)s[:IS_RELATED]%(rend)s"
355
+ % {
356
+ "node_kind": node_kind,
357
+ "lstart": query_arrows.left.start,
358
+ "lend": query_arrows.left.end,
359
+ "rstart": query_arrows.right.start,
360
+ "rend": query_arrows.right.end,
361
+ "rel_name_var": rel_name_var,
362
+ }
363
+ )
364
+ peer_where = f"WHERE {branch_filter}"
365
+ if rel_path.peer_id:
366
+ peer_id_var = f"peer_id_{index}"
367
+ peer_where += f" AND peer.uuid = ${peer_id_var}"
368
+ params[peer_id_var] = rel_path.peer_id
369
+ first_match += "(:Node {uuid: $%(peer_id_var)s})" % {"peer_id_var": peer_id_var}
370
+ else:
371
+ peer_where += " AND peer.uuid <> node.uuid"
372
+ first_match += "(:Node)"
373
+ if rel_attr_match:
374
+ first_match += rel_attr_match
375
+ if is_first_query:
376
+ first_query_filter = "WHERE $node_ids_to_exclude IS NULL OR NOT node.uuid IN $node_ids_to_exclude"
377
+ else:
378
+ first_query_filter = ""
379
+ relationship_query = f"""
380
+ {first_match}
381
+ {first_query_filter}
382
+ WITH DISTINCT node
383
+ """
384
+ relationship_query += """
385
+ CALL (node) {
386
+ MATCH (node)%(lstart)s[r:IS_RELATED]%(lend)s(rel:Relationship {name: $%(rel_name_var)s})
387
+ WHERE %(branch_filter)s
388
+ WITH rel, r.status = "active" AS is_active
389
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
390
+ WITH rel, is_active
391
+ LIMIT 1
392
+ WITH rel, is_active
393
+ WHERE is_active = TRUE
394
+ MATCH (rel)%(rstart)s[r:IS_RELATED]%(rend)s(peer:Node)
395
+ %(peer_where)s
396
+ WITH peer, r.status = "active" AS is_active
397
+ ORDER BY r.branch_level DESC, r.from DESC, r.status ASC
398
+ WITH peer, is_active
399
+ LIMIT 1
400
+ WITH peer, is_active
401
+ WHERE is_active = TRUE
402
+ %(rel_attr_query)s
403
+ RETURN 1 AS is_match_%(index)s
404
+ LIMIT 1
405
+ }
406
+ """ % {
407
+ "rel_name_var": rel_name_var,
408
+ "lstart": query_arrows.left.start,
409
+ "lend": query_arrows.left.end,
410
+ "rstart": query_arrows.right.start,
411
+ "rend": query_arrows.right.end,
412
+ "peer_where": peer_where,
413
+ "rel_attr_query": rel_attr_query,
414
+ "branch_filter": branch_filter,
415
+ "index": index,
416
+ }
417
+ params[rel_name_var] = rel_path.relationship_schema.get_identifier()
418
+ return relationship_query, params
419
+
420
+ async def query_init(self, db: InfrahubDatabase, **kwargs: Any) -> None: # noqa: ARG002
421
+ self.params["node_ids_to_exclude"] = self.node_ids_to_exclude
422
+ branch_filter, branch_params = self.branch.get_query_filter_path(at=self.at.to_string(), is_isolated=False)
423
+ self.params.update(branch_params)
424
+
425
+ subqueries = []
426
+ for index, schema_path in enumerate(self.query_request.unique_valued_paths):
427
+ is_first_query = index == 0
428
+ if isinstance(schema_path, QueryAttributePathValued):
429
+ subquery, params = self._build_attr_subquery(
430
+ node_kind=self.query_request.kind,
431
+ attr_path=schema_path,
432
+ index=index,
433
+ branch_filter=branch_filter,
434
+ is_first_query=is_first_query,
435
+ )
436
+ else:
437
+ subquery, params = self._build_rel_subquery(
438
+ node_kind=self.query_request.kind,
439
+ rel_path=schema_path,
440
+ index=index,
441
+ branch_filter=branch_filter,
442
+ is_first_query=is_first_query,
443
+ )
444
+ subqueries.append(subquery)
445
+ self.params.update(params)
446
+
447
+ full_query = "\n".join(subqueries)
448
+ self.add_to_query(full_query)
449
+ self.return_labels = ["node.uuid AS node_uuid", "node.kind AS node_kind"]
450
+
451
+ def get_violation_nodes(self) -> list[tuple[str, str]]:
452
+ violation_tuples = []
453
+ for result in self.results:
454
+ violation_tuples.append(
455
+ (result.get_as_type("node_uuid", return_type=str), result.get_as_type("node_kind", return_type=str))
456
+ )
457
+ return violation_tuples