infrahub-server 1.1.8__tar.gz → 1.1.10__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 (689) hide show
  1. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/PKG-INFO +1 -1
  2. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/config.py +6 -0
  3. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/merge.py +20 -17
  4. infrahub_server-1.1.10/backend/infrahub/core/graph/__init__.py +1 -0
  5. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/__init__.py +1 -0
  6. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/__init__.py +4 -0
  7. infrahub_server-1.1.10/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +51 -0
  8. infrahub_server-1.1.10/backend/infrahub/core/migrations/graph/m022_missing_hierarchy_backfill.py +69 -0
  9. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/node_duplicate.py +18 -21
  10. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/models.py +15 -0
  11. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/node.py +3 -0
  12. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/interface.py +6 -2
  13. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/model.py +2 -0
  14. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/hierarchy.py +1 -3
  15. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/inherit_from.py +25 -3
  16. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/tasks.py +8 -0
  17. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/uniqueness/checker.py +10 -9
  18. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/__init__.py +9 -1
  19. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/metrics.py +7 -1
  20. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/initialization.py +3 -0
  21. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/loaders/node.py +2 -12
  22. infrahub_server-1.1.10/backend/infrahub/graphql/loaders/peers.py +77 -0
  23. infrahub_server-1.1.10/backend/infrahub/graphql/loaders/shared.py +13 -0
  24. infrahub_server-1.1.10/backend/infrahub/graphql/resolvers/many_relationship.py +264 -0
  25. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/resolvers/resolver.py +3 -103
  26. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/subscription/graphql_query.py +2 -0
  27. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/pyproject.toml +1 -1
  28. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_testcontainers/infrahub_testcontainers/container.py +11 -0
  29. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +3 -6
  30. infrahub_server-1.1.8/backend/infrahub/core/graph/__init__.py +0 -1
  31. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/LICENSE.txt +0 -0
  32. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/README.md +0 -0
  33. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/__init__.py +0 -0
  34. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/__init__.py +0 -0
  35. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/artifact.py +0 -0
  36. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/auth.py +0 -0
  37. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/dependencies.py +0 -0
  38. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/diff/__init__.py +0 -0
  39. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/diff/diff.py +0 -0
  40. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/diff/validation_models.py +0 -0
  41. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/exception_handlers.py +0 -0
  42. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/exceptions.py +0 -0
  43. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/file.py +0 -0
  44. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/internal.py +0 -0
  45. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/menu.py +0 -0
  46. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/oauth2.py +0 -0
  47. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/oidc.py +0 -0
  48. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/query.py +0 -0
  49. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/schema.py +0 -0
  50. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  51. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  52. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/static/swagger-ui.css +0 -0
  53. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/storage.py +0 -0
  54. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/api/transformation.py +0 -0
  55. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/auth.py +0 -0
  56. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/__init__.py +0 -0
  57. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/context.py +0 -0
  58. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/db.py +0 -0
  59. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/events.py +0 -0
  60. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/git_agent.py +0 -0
  61. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/server.py +0 -0
  62. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/cli/tasks.py +0 -0
  63. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/components.py +0 -0
  64. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/computed_attribute/__init__.py +0 -0
  65. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/computed_attribute/constants.py +0 -0
  66. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/computed_attribute/models.py +0 -0
  67. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/computed_attribute/tasks.py +0 -0
  68. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/__init__.py +0 -0
  69. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/account.py +0 -0
  70. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/attribute.py +0 -0
  71. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/branch/__init__.py +0 -0
  72. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/branch/constants.py +0 -0
  73. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/branch/flow_models.py +0 -0
  74. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/branch/models.py +0 -0
  75. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/branch/tasks.py +0 -0
  76. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constants/__init__.py +0 -0
  77. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constants/database.py +0 -0
  78. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  79. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constants/relationship_label.py +0 -0
  80. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constants/schema.py +0 -0
  81. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constraint/__init__.py +0 -0
  82. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  83. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/constraint/node/runner.py +0 -0
  84. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/__init__.py +0 -0
  85. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  86. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  87. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/branch_differ.py +0 -0
  88. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/calculator.py +0 -0
  89. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/combiner.py +0 -0
  90. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  91. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  92. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  93. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/coordinator.py +0 -0
  94. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  95. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  96. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  97. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  98. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  99. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  100. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  101. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  102. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/exceptions.py +0 -0
  103. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  104. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  105. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/merger/merger.py +0 -0
  106. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/merger/model.py +0 -0
  107. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  108. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/model/__init__.py +0 -0
  109. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/model/diff.py +0 -0
  110. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/model/path.py +0 -0
  111. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/models.py +0 -0
  112. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  113. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/payload_builder.py +0 -0
  114. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/__init__.py +0 -0
  115. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  116. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/artifact.py +0 -0
  117. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  118. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  119. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  120. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  121. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  122. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/filters.py +0 -0
  123. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  124. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  125. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  126. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  127. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/save.py +0 -0
  128. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  129. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  130. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  131. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/query_parser.py +0 -0
  132. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  133. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  134. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/repository/repository.py +0 -0
  135. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/diff/tasks.py +0 -0
  136. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/enums.py +0 -0
  137. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/graph/constraints.py +0 -0
  138. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/graph/index.py +0 -0
  139. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/graph/schema.py +0 -0
  140. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/initialization.py +0 -0
  141. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/integrity/__init__.py +0 -0
  142. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  143. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  144. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/__init__.py +0 -0
  145. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/constants.py +0 -0
  146. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  147. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/model.py +0 -0
  148. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/reconciler.py +0 -0
  149. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/size.py +0 -0
  150. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/tasks.py +0 -0
  151. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/ipam/utilization.py +0 -0
  152. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/manager.py +0 -0
  153. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/merge.py +0 -0
  154. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  155. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  156. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  157. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  158. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  159. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  160. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  161. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  162. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  163. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  164. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  165. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  166. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  167. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  168. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  169. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  170. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  171. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  172. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  173. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  174. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  175. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  176. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  177. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  178. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  179. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  180. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  181. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  182. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/models.py +0 -0
  183. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  184. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  185. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  186. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  187. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  188. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  189. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/migrations/shared.py +0 -0
  190. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/__init__.py +0 -0
  191. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/base.py +0 -0
  192. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  193. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  194. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +0 -0
  195. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/constraints/interface.py +0 -0
  196. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/delete_validator.py +0 -0
  197. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/ipam.py +0 -0
  198. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/permissions.py +0 -0
  199. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  200. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  201. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  202. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  203. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/node/standard.py +0 -0
  204. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/path.py +0 -0
  205. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/property.py +0 -0
  206. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/protocols.py +0 -0
  207. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/protocols_base.py +0 -0
  208. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/__init__.py +0 -0
  209. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/attribute.py +0 -0
  210. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/branch.py +0 -0
  211. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/delete.py +0 -0
  212. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/diff.py +0 -0
  213. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/ipam.py +0 -0
  214. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/relationship.py +0 -0
  215. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/resource_manager.py +0 -0
  216. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/standard_node.py +0 -0
  217. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/subquery.py +0 -0
  218. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/task.py +0 -0
  219. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/task_log.py +0 -0
  220. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/query/utils.py +0 -0
  221. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/registry.py +0 -0
  222. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/__init__.py +0 -0
  223. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  224. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  225. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  226. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  227. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  228. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/relationship/model.py +0 -0
  229. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/root.py +0 -0
  230. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/__init__.py +0 -0
  231. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  232. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  233. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  234. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/constants.py +0 -0
  235. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  236. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/definitions/core.py +0 -0
  237. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  238. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  239. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/dropdown.py +0 -0
  240. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  241. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  242. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  243. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  244. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  245. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  246. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/generic_schema.py +0 -0
  247. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/manager.py +0 -0
  248. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/node_schema.py +0 -0
  249. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/profile_schema.py +0 -0
  250. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  251. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/schema_branch.py +0 -0
  252. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  253. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/task/__init__.py +0 -0
  254. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/task/task.py +0 -0
  255. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/task/task_log.py +0 -0
  256. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/task/user_task.py +0 -0
  257. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/timestamp.py +0 -0
  258. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/utils.py +0 -0
  259. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/__init__.py +0 -0
  260. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  261. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  262. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  263. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  264. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  265. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/length.py +0 -0
  266. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  267. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  268. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  269. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/determiner.py +0 -0
  270. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/models/__init__.py +0 -0
  271. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  272. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/models/violation.py +0 -0
  273. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/__init__.py +0 -0
  274. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/attribute.py +0 -0
  275. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  276. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/node/relationship.py +0 -0
  277. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/query.py +0 -0
  278. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  279. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/relationship/count.py +0 -0
  280. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  281. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  282. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/shared.py +0 -0
  283. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  284. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  285. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  286. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/core/validators/uniqueness/query.py +0 -0
  287. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/constants.py +0 -0
  288. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/index.py +0 -0
  289. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/manager.py +0 -0
  290. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/memgraph.py +0 -0
  291. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/database/neo4j.py +0 -0
  292. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/__init__.py +0 -0
  293. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  294. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  295. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  296. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  297. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  298. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  299. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  300. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  301. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  302. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  303. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  304. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  305. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  306. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  307. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  308. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  309. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  310. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  311. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  312. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  313. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  314. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  315. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  316. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  317. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  318. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  319. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  320. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  321. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  322. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  323. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  324. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  325. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  326. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  327. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  328. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  329. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  330. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  331. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  332. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  333. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  334. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  335. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  336. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  337. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  338. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  339. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  340. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  341. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  342. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  343. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/component/__init__.py +0 -0
  344. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  345. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/component/registry.py +0 -0
  346. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/interface.py +0 -0
  347. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/dependencies/registry.py +0 -0
  348. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/__init__.py +0 -0
  349. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/branch_action.py +0 -0
  350. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/constants.py +0 -0
  351. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/models.py +0 -0
  352. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/node_action.py +0 -0
  353. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/repository_action.py +0 -0
  354. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/events/schema_action.py +0 -0
  355. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/exceptions.py +0 -0
  356. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/generators/__init__.py +0 -0
  357. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/generators/models.py +0 -0
  358. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/generators/tasks.py +0 -0
  359. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/__init__.py +0 -0
  360. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/base.py +0 -0
  361. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/constants.py +0 -0
  362. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/directory.py +0 -0
  363. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/integrator.py +0 -0
  364. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/models.py +0 -0
  365. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/repository.py +0 -0
  366. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/tasks.py +0 -0
  367. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git/worktree.py +0 -0
  368. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git_credential/__init__.py +0 -0
  369. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git_credential/askpass.py +0 -0
  370. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/git_credential/helper.py +0 -0
  371. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/__init__.py +0 -0
  372. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/analyzer.py +0 -0
  373. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/api/__init__.py +0 -0
  374. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/api/dependencies.py +0 -0
  375. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/api/endpoints.py +0 -0
  376. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/app.py +0 -0
  377. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/__init__.py +0 -0
  378. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  379. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  380. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  381. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  382. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  383. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  384. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  385. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  386. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/constants.py +0 -0
  387. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/directives.py +0 -0
  388. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/enums.py +0 -0
  389. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  390. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/manager.py +0 -0
  391. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/metrics.py +0 -0
  392. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/models.py +0 -0
  393. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  394. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/account.py +0 -0
  395. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  396. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  397. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/branch.py +0 -0
  398. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  399. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/diff.py +0 -0
  400. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  401. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  402. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  403. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/main.py +0 -0
  404. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/menu.py +0 -0
  405. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/models.py +0 -0
  406. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  407. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  408. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  409. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  410. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  411. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  412. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  413. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/repository.py +0 -0
  414. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  415. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/schema.py +0 -0
  416. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  417. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/parser.py +0 -0
  418. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/permissions.py +0 -0
  419. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/__init__.py +0 -0
  420. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/account.py +0 -0
  421. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/branch.py +0 -0
  422. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  423. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  424. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/internal.py +0 -0
  425. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/ipam.py +0 -0
  426. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/relationship.py +0 -0
  427. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  428. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/search.py +0 -0
  429. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/status.py +0 -0
  430. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/queries/task.py +0 -0
  431. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/query.py +0 -0
  432. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  433. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  434. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/schema.py +0 -0
  435. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  436. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/subscription/events.py +0 -0
  437. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/__init__.py +0 -0
  438. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/attribute.py +0 -0
  439. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/branch.py +0 -0
  440. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/common.py +0 -0
  441. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/enums.py +0 -0
  442. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/interface.py +0 -0
  443. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/node.py +0 -0
  444. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/permission.py +0 -0
  445. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/relationship.py +0 -0
  446. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/standard_node.py +0 -0
  447. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/task.py +0 -0
  448. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/types/task_log.py +0 -0
  449. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/graphql/utils.py +0 -0
  450. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/groups/__init__.py +0 -0
  451. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/groups/models.py +0 -0
  452. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/groups/tasks.py +0 -0
  453. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/helpers.py +0 -0
  454. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/lock.py +0 -0
  455. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/log.py +0 -0
  456. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/__init__.py +0 -0
  457. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/constants.py +0 -0
  458. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/generator.py +0 -0
  459. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/menu.py +0 -0
  460. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/models.py +0 -0
  461. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/menu/utils.py +0 -0
  462. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/__init__.py +0 -0
  463. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  464. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/check_artifact_create.py +0 -0
  465. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
  466. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/check_repository_checkdefinition.py +0 -0
  467. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/check_repository_mergeconflicts.py +0 -0
  468. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/check_repository_usercheck.py +0 -0
  469. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_branch_create.py +0 -0
  470. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_branch_delete.py +0 -0
  471. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_branch_merge.py +0 -0
  472. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_branch_rebased.py +0 -0
  473. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_node_mutated.py +0 -0
  474. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_schema_update.py +0 -0
  475. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/event_worker_newprimaryapi.py +0 -0
  476. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
  477. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  478. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  479. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/proposed_change/__init__.py +0 -0
  480. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
  481. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
  482. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  483. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  484. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  485. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/request_artifactdefinition_check.py +0 -0
  486. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
  487. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
  488. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/request_repository_checks.py +0 -0
  489. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/request_repository_userchecks.py +0 -0
  490. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  491. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  492. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
  493. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/check/artifact.py +0 -0
  494. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
  495. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/check/repository.py +0 -0
  496. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/event/__init__.py +0 -0
  497. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/event/branch.py +0 -0
  498. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/event/node.py +0 -0
  499. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/event/schema.py +0 -0
  500. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/event/worker.py +0 -0
  501. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
  502. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
  503. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  504. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  505. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  506. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  507. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  508. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
  509. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/requests/artifact_definition.py +0 -0
  510. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
  511. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/requests/proposed_change.py +0 -0
  512. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/requests/repository.py +0 -0
  513. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  514. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  515. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/message_bus/types.py +0 -0
  516. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/middleware.py +0 -0
  517. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/models.py +0 -0
  518. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/__init__.py +0 -0
  519. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/backend.py +0 -0
  520. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/constants.py +0 -0
  521. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/local_backend.py +0 -0
  522. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/manager.py +0 -0
  523. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/report.py +0 -0
  524. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/permissions/types.py +0 -0
  525. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/pools/__init__.py +0 -0
  526. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/pools/address.py +0 -0
  527. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/pools/number.py +0 -0
  528. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/pools/prefix.py +0 -0
  529. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/proposed_change/__init__.py +0 -0
  530. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/proposed_change/constants.py +0 -0
  531. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/proposed_change/models.py +0 -0
  532. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/proposed_change/tasks.py +0 -0
  533. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/pytest_plugin.py +0 -0
  534. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/schema/__init__.py +0 -0
  535. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/schema/constants.py +0 -0
  536. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/schema/tasks.py +0 -0
  537. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/serve/__init__.py +0 -0
  538. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/serve/gunicorn_config.py +0 -0
  539. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/serve/log.py +0 -0
  540. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/serve/worker.py +0 -0
  541. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/server.py +0 -0
  542. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/__init__.py +0 -0
  543. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/__init__.py +0 -0
  544. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  545. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  546. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  547. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/database/__init__.py +0 -0
  548. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  549. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  550. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  551. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  552. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  553. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  554. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  555. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  556. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  557. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  558. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/component.py +0 -0
  559. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/protocols.py +0 -0
  560. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/services/scheduler.py +0 -0
  561. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/storage.py +0 -0
  562. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/support/__init__.py +0 -0
  563. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/support/macro.py +0 -0
  564. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/task_manager/__init__.py +0 -0
  565. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/task_manager/constants.py +0 -0
  566. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/task_manager/models.py +0 -0
  567. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/task_manager/task.py +0 -0
  568. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/__init__.py +0 -0
  569. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/artifact.py +0 -0
  570. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/check.py +0 -0
  571. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/dummy.py +0 -0
  572. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/keepalive.py +0 -0
  573. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/recurring.py +0 -0
  574. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/registry.py +0 -0
  575. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/tasks/telemetry.py +0 -0
  576. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/trace.py +0 -0
  577. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/transformations/__init__.py +0 -0
  578. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/transformations/constants.py +0 -0
  579. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/transformations/models.py +0 -0
  580. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/transformations/tasks.py +0 -0
  581. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/types.py +0 -0
  582. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/utils.py +0 -0
  583. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/visuals.py +0 -0
  584. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/webhook/__init__.py +0 -0
  585. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/webhook/constants.py +0 -0
  586. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/webhook/models.py +0 -0
  587. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/webhook/tasks.py +0 -0
  588. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/worker.py +0 -0
  589. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workers/__init__.py +0 -0
  590. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workers/infrahub_async.py +0 -0
  591. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/__init__.py +0 -0
  592. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/catalogue.py +0 -0
  593. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/constants.py +0 -0
  594. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/initialization.py +0 -0
  595. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/models.py +0 -0
  596. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/backend/infrahub/workflows/utils.py +0 -0
  597. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/__init__.py +0 -0
  598. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/_importer.py +0 -0
  599. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  600. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  601. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/batch.py +0 -0
  602. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/branch.py +0 -0
  603. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/checks.py +0 -0
  604. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/client.py +0 -0
  605. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/code_generator.py +0 -0
  606. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/config.py +0 -0
  607. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/constants.py +0 -0
  608. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/__init__.py +0 -0
  609. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  610. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  611. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  612. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/cli_commands.py +0 -0
  613. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  614. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  615. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/constants.py +0 -0
  616. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  617. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  618. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  619. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  620. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
  621. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
  622. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  623. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  624. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  625. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  626. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  627. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
  628. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  629. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/data.py +0 -0
  630. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/diff.py +0 -0
  631. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/exceptions.py +0 -0
  632. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/generator.py +0 -0
  633. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/graphql.py +0 -0
  634. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/groups.py +0 -0
  635. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  636. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/node.py +0 -0
  637. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/object_store.py +0 -0
  638. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/playback.py +0 -0
  639. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/protocols.py +0 -0
  640. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  641. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/__init__.py +0 -0
  642. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  643. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  644. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  645. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  646. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  647. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  648. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  649. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  650. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  651. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  652. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  653. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/queries.py +0 -0
  654. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  655. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/recorder.py +0 -0
  656. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/repository.py +0 -0
  657. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
  658. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/schema/main.py +0 -0
  659. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
  660. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/spec/__init__.py +0 -0
  661. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
  662. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/spec/object.py +0 -0
  663. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/store.py +0 -0
  664. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/__init__.py +0 -0
  665. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
  666. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  667. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
  668. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
  669. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  670. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  671. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  672. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  673. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  674. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  675. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  676. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  677. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  678. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  679. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  680. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  681. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  682. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/transforms.py +0 -0
  683. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/types.py +0 -0
  684. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/utils.py +0 -0
  685. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  686. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_sdk/infrahub_sdk/yaml.py +0 -0
  687. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  688. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  689. {infrahub_server-1.1.8 → infrahub_server-1.1.10}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: infrahub-server
3
- Version: 1.1.8
3
+ Version: 1.1.10
4
4
  Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
5
5
  Home-page: https://opsmill.com
6
6
  License: AGPL-3.0-only
@@ -249,6 +249,12 @@ class DatabaseSettings(BaseSettings):
249
249
  retry_limit: int = Field(
250
250
  default=3, description="Maximum number of times a transient issue in a transaction should be retried."
251
251
  )
252
+ max_concurrent_queries: int = Field(
253
+ default=0, ge=0, description="Maximum number of concurrent queries that can run (0 means unlimited)."
254
+ )
255
+ max_concurrent_queries_delay: float = Field(
256
+ default=0.01, ge=0, description="Delay to add when max_concurrent_queries is reached."
257
+ )
252
258
 
253
259
  @property
254
260
  def database_name(self) -> str:
@@ -36,6 +36,7 @@ class DiffMergeQuery(Query):
36
36
  "target_branch": self.target_branch.name,
37
37
  "source_branch": self.source_branch_name,
38
38
  }
39
+ # ruff: noqa: E501
39
40
  query = """
40
41
  UNWIND $node_diff_dicts AS node_diff_map
41
42
  CALL {
@@ -242,9 +243,11 @@ CALL {
242
243
  CASE
243
244
  WHEN startNode(source_r_rel_2).uuid = r.uuid THEN "r"
244
245
  ELSE "l"
245
- END AS r2_dir
246
+ END AS r2_dir,
247
+ source_r_rel_1.hierarchy AS r1_hierarchy,
248
+ source_r_rel_2.hierarchy AS r2_hierarchy
246
249
  }
247
- WITH n, r, r1_dir, r2_dir, rel_name, rel_peer_id, related_rel_status
250
+ WITH n, r, r1_dir, r2_dir, r1_hierarchy, r2_hierarchy, rel_name, rel_peer_id, related_rel_status
248
251
  CALL {
249
252
  WITH n, rel_name, rel_peer_id, related_rel_status
250
253
  OPTIONAL MATCH (n)
@@ -258,12 +261,12 @@ CALL {
258
261
  SET target_r_rel_1.to = $at
259
262
  SET target_r_rel_2.to = $at
260
263
  }
261
- WITH n, r, r1_dir, r2_dir, rel_name, rel_peer_id, related_rel_status
264
+ WITH n, r, r1_dir, r2_dir, r1_hierarchy, r2_hierarchy, rel_name, rel_peer_id, related_rel_status
262
265
  // ------------------------------
263
266
  // conditionally create new IS_RELATED relationships on target_branch, if necessary
264
267
  // ------------------------------
265
268
  CALL {
266
- WITH n, r, r1_dir, r2_dir, rel_name, rel_peer_id, related_rel_status
269
+ WITH n, r, r1_dir, r2_dir, r1_hierarchy, r2_hierarchy, rel_name, rel_peer_id, related_rel_status
267
270
  MATCH (p:Node {uuid: rel_peer_id})
268
271
  OPTIONAL MATCH (n)
269
272
  -[r_rel_1:IS_RELATED {branch: $target_branch, status: related_rel_status}]
@@ -274,42 +277,42 @@ CALL {
274
277
  AND (r_rel_1.to >= $at OR r_rel_1.to IS NULL)
275
278
  AND r_rel_2.from <= $at
276
279
  AND (r_rel_2.to >= $at OR r_rel_2.to IS NULL)
277
- WITH n, r, r1_dir, r2_dir, p, related_rel_status, r_rel_1, r_rel_2
280
+ WITH n, r, r1_dir, r2_dir, r1_hierarchy, r2_hierarchy, p, related_rel_status, r_rel_1, r_rel_2
278
281
  WHERE r_rel_1 IS NULL
279
282
  AND r_rel_2 IS NULL
280
283
  // ------------------------------
281
284
  // create IS_RELATED relationships with directions maintained from source
282
285
  // ------------------------------
283
286
  CALL {
284
- WITH n, r, r1_dir, related_rel_status
285
- WITH n, r, r1_dir, related_rel_status
287
+ WITH n, r, r1_dir, r1_hierarchy, related_rel_status
288
+ WITH n, r, r1_dir, r1_hierarchy, related_rel_status
286
289
  WHERE r1_dir = "r"
287
290
  CREATE (n)
288
- -[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status}]
291
+ -[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status, hierarchy: r1_hierarchy}]
289
292
  ->(r)
290
293
  }
291
294
  CALL {
292
- WITH n, r, r1_dir, related_rel_status
293
- WITH n, r, r1_dir, related_rel_status
295
+ WITH n, r, r1_dir, r1_hierarchy, related_rel_status
296
+ WITH n, r, r1_dir, r1_hierarchy, related_rel_status
294
297
  WHERE r1_dir = "l"
295
298
  CREATE (n)
296
- <-[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status}]
299
+ <-[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status, hierarchy: r1_hierarchy}]
297
300
  -(r)
298
301
  }
299
302
  CALL {
300
- WITH r, p, r2_dir, related_rel_status
301
- WITH r, p, r2_dir, related_rel_status
303
+ WITH r, p, r2_dir, r2_hierarchy, related_rel_status
304
+ WITH r, p, r2_dir, r2_hierarchy, related_rel_status
302
305
  WHERE r2_dir = "r"
303
306
  CREATE (r)
304
- -[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status}]
307
+ -[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status, hierarchy: r2_hierarchy}]
305
308
  ->(p)
306
309
  }
307
310
  CALL {
308
- WITH r, p, r2_dir, related_rel_status
309
- WITH r, p, r2_dir, related_rel_status
311
+ WITH r, p, r2_dir, r2_hierarchy, related_rel_status
312
+ WITH r, p, r2_dir, r2_hierarchy, related_rel_status
310
313
  WHERE r2_dir = "l"
311
314
  CREATE (r)
312
- <-[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status}]
315
+ <-[:IS_RELATED {branch: $target_branch, branch_level: $branch_level, from: $at, status: related_rel_status, hierarchy: r2_hierarchy}]
313
316
  -(p)
314
317
  }
315
318
  }
@@ -0,0 +1 @@
1
+ GRAPH_VERSION = 22
@@ -13,6 +13,7 @@ MIGRATION_MAP: dict[str, Optional[type[SchemaMigration]]] = {
13
13
  "node.branch.update": None,
14
14
  "node.attribute.add": NodeAttributeAddMigration,
15
15
  "node.attribute.remove": NodeAttributeRemoveMigration,
16
+ "node.inherit_from.update": NodeKindUpdateMigration,
16
17
  "node.name.update": NodeKindUpdateMigration,
17
18
  "node.namespace.update": NodeKindUpdateMigration,
18
19
  "node.relationship.remove": PlaceholderDummyMigration,
@@ -22,6 +22,8 @@ from .m017_add_core_profile import Migration017
22
22
  from .m018_uniqueness_nulls import Migration018
23
23
  from .m019_restore_rels_to_time import Migration019
24
24
  from .m020_duplicate_edges import Migration020
25
+ from .m021_missing_hierarchy_merge import Migration021
26
+ from .m022_missing_hierarchy_backfill import Migration022
25
27
 
26
28
  if TYPE_CHECKING:
27
29
  from infrahub.core.root import Root
@@ -49,6 +51,8 @@ MIGRATIONS: list[type[Union[GraphMigration, InternalSchemaMigration, ArbitraryMi
49
51
  Migration018,
50
52
  Migration019,
51
53
  Migration020,
54
+ Migration021,
55
+ Migration022,
52
56
  ]
53
57
 
54
58
 
@@ -0,0 +1,51 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any, Sequence
4
+
5
+ from infrahub.core.migrations.shared import GraphMigration, MigrationResult
6
+ from infrahub.log import get_logger
7
+
8
+ from ...query import Query, QueryType
9
+
10
+ if TYPE_CHECKING:
11
+ from infrahub.database import InfrahubDatabase
12
+
13
+ log = get_logger()
14
+
15
+
16
+ class SetMissingHierarchyQuery(Query):
17
+ name = "set_missing_hierarchy"
18
+ type = QueryType.WRITE
19
+ insert_return = False
20
+
21
+ async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None:
22
+ query = """
23
+ MATCH (r:Root)
24
+ WITH r.default_branch AS default_branch
25
+ MATCH (n:Node)-[main_e:IS_RELATED {branch: default_branch}]-(rel:Relationship)
26
+ WHERE main_e.hierarchy IS NULL
27
+ CALL {
28
+ WITH n, main_e, rel
29
+ MATCH (n)-[branch_e:IS_RELATED]-(rel)
30
+ WHERE branch_e.hierarchy IS NOT NULL
31
+ AND branch_e.branch <> main_e.branch
32
+ AND branch_e.from < main_e.from
33
+ SET main_e.hierarchy = branch_e.hierarchy
34
+ }
35
+ """
36
+ self.add_to_query(query)
37
+
38
+
39
+ class Migration021(GraphMigration):
40
+ """
41
+ A bug in diff merge logic caused the hierarchy information on IS_RELATED edges to be lost when merged into
42
+ main. This migration sets the missing hierarchy data.
43
+ """
44
+
45
+ name: str = "021_replace_hierarchy"
46
+ minimum_version: int = 20
47
+ queries: Sequence[type[Query]] = [SetMissingHierarchyQuery]
48
+
49
+ async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult:
50
+ result = MigrationResult()
51
+ return result
@@ -0,0 +1,69 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any, Sequence
4
+
5
+ from infrahub.core import registry
6
+ from infrahub.core.initialization import initialization
7
+ from infrahub.core.migrations.shared import GraphMigration, MigrationResult
8
+ from infrahub.lock import initialize_lock
9
+ from infrahub.log import get_logger
10
+
11
+ from ...query import Query, QueryType
12
+
13
+ if TYPE_CHECKING:
14
+ from infrahub.database import InfrahubDatabase
15
+
16
+ log = get_logger()
17
+
18
+
19
+ class BackfillMissingHierarchyQuery(Query):
20
+ name = "backfill_missing_hierarchy"
21
+ type = QueryType.WRITE
22
+ insert_return = False
23
+
24
+ async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
25
+ # load schemas from database into registry
26
+ initialize_lock()
27
+ await initialization(db=db)
28
+ kind_hierarchy_map: dict[str, str] = {}
29
+ schema_branch = await registry.schema.load_schema_from_db(db=db)
30
+ for node_schema_kind in schema_branch.node_names:
31
+ node_schema = schema_branch.get_node(name=node_schema_kind, duplicate=False)
32
+ if node_schema.hierarchy:
33
+ kind_hierarchy_map[node_schema.kind] = node_schema.hierarchy
34
+
35
+ self.params = {"hierarchy_map": kind_hierarchy_map}
36
+ query = """
37
+ MATCH (r:Root)
38
+ WITH r.default_branch AS default_branch
39
+ MATCH (rel:Relationship {name: "parent__child"})-[e:IS_RELATED]-(n:Node)
40
+ WHERE e.hierarchy IS NULL
41
+ WITH DISTINCT rel, n, default_branch
42
+ CALL {
43
+ WITH rel, n, default_branch
44
+ MATCH (rel)-[e:IS_RELATED {branch: default_branch}]-(n)
45
+ RETURN e
46
+ ORDER BY e.from DESC
47
+ LIMIT 1
48
+ }
49
+ WITH rel, n, e
50
+ WHERE e.status = "active" AND e.hierarchy IS NULL
51
+ SET e.hierarchy = $hierarchy_map[n.kind]
52
+ """
53
+ self.add_to_query(query)
54
+
55
+
56
+ class Migration022(GraphMigration):
57
+ """
58
+ A bug in diff merge logic caused the hierarchy information on IS_RELATED edges to be lost when merged into
59
+ main. This migration backfills the missing hierarchy data and accounts for the case when the branch that
60
+ created the data has been deleted.
61
+ """
62
+
63
+ name: str = "022_backfill_hierarchy"
64
+ minimum_version: int = 21
65
+ queries: Sequence[type[Query]] = [BackfillMissingHierarchyQuery]
66
+
67
+ async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
68
+ result = MigrationResult()
69
+ return result
@@ -9,8 +9,6 @@ from infrahub.core.graph.schema import GraphNodeRelationships, GraphRelDirection
9
9
  from infrahub.core.query import Query, QueryType
10
10
 
11
11
  if TYPE_CHECKING:
12
- from pydantic.fields import FieldInfo
13
-
14
12
  from infrahub.database import InfrahubDatabase
15
13
 
16
14
 
@@ -47,37 +45,37 @@ class NodeDuplicateQuery(Query):
47
45
  return query
48
46
 
49
47
  @staticmethod
50
- def _render_sub_query_per_rel_type(
51
- rel_name: str,
52
- rel_type: str,
53
- rel_def: FieldInfo,
54
- ) -> str:
48
+ def _render_sub_query_per_rel_type(rel_name: str, rel_type: str, rel_dir: GraphRelDirection) -> str:
55
49
  subquery = [
56
50
  f"WITH peer_node, {rel_name}, active_node, new_node",
57
51
  f"WITH peer_node, {rel_name}, active_node, new_node",
58
52
  f'WHERE type({rel_name}) = "{rel_type}"',
59
53
  ]
60
- if rel_def.default.direction in [GraphRelDirection.OUTBOUND, GraphRelDirection.EITHER]:
54
+ if rel_dir in [GraphRelDirection.OUTBOUND, GraphRelDirection.EITHER]:
61
55
  subquery.append(f"""
62
56
  CREATE (new_node)-[new_active_edge:{rel_type} $rel_props_new ]->(peer_node)
63
57
  SET new_active_edge.branch = CASE WHEN {rel_name}.branch = "-global-" THEN "-global-" ELSE $branch END
64
58
  SET new_active_edge.branch_level = CASE WHEN {rel_name}.branch = "-global-" THEN {rel_name}.branch_level ELSE $branch_level END
59
+ SET new_active_edge.hierarchy = COALESCE({rel_name}.hierarchy, NULL)
65
60
  """)
66
61
  subquery.append(f"""
67
62
  CREATE (active_node)-[deleted_edge:{rel_type} $rel_props_prev ]->(peer_node)
68
63
  SET deleted_edge.branch = CASE WHEN {rel_name}.branch = "-global-" THEN "-global-" ELSE $branch END
69
64
  SET deleted_edge.branch_level = CASE WHEN {rel_name}.branch = "-global-" THEN {rel_name}.branch_level ELSE $branch_level END
65
+ SET deleted_edge.hierarchy = COALESCE({rel_name}.hierarchy, NULL)
70
66
  """)
71
- elif rel_def.default.direction in [GraphRelDirection.INBOUND, GraphRelDirection.EITHER]:
67
+ elif rel_dir in [GraphRelDirection.INBOUND, GraphRelDirection.EITHER]:
72
68
  subquery.append(f"""
73
69
  CREATE (new_node)<-[new_active_edge:{rel_type} $rel_props_new ]-(peer_node)
74
70
  SET new_active_edge.branch = CASE WHEN {rel_name}.branch = "-global-" THEN "-global-" ELSE $branch END
75
71
  SET new_active_edge.branch_level = CASE WHEN {rel_name}.branch = "-global-" THEN {rel_name}.branch_level ELSE $branch_level END
72
+ SET new_active_edge.hierarchy = COALESCE({rel_name}.hierarchy, NULL)
76
73
  """)
77
74
  subquery.append(f"""
78
75
  CREATE (active_node)<-[deleted_edge:{rel_type} $rel_props_prev ]-(peer_node)
79
- SET new_active_edge.branch = CASE WHEN {rel_name}.branch = "-global-" THEN "-global-" ELSE $branch END
80
- SET new_active_edge.branch_level = CASE WHEN {rel_name}.branch = "-global-" THEN {rel_name}.branch_level ELSE $branch_level END
76
+ SET deleted_edge.branch = CASE WHEN {rel_name}.branch = "-global-" THEN "-global-" ELSE $branch END
77
+ SET deleted_edge.branch_level = CASE WHEN {rel_name}.branch = "-global-" THEN {rel_name}.branch_level ELSE $branch_level END
78
+ SET deleted_edge.hierarchy = COALESCE({rel_name}.hierarchy, NULL)
81
79
  """)
82
80
  subquery.append("RETURN peer_node as p2")
83
81
  return "\n".join(subquery)
@@ -86,11 +84,10 @@ class NodeDuplicateQuery(Query):
86
84
  def _render_sub_query_out(cls) -> str:
87
85
  sub_queries_out = [
88
86
  cls._render_sub_query_per_rel_type(
89
- rel_name="rel_outband",
90
- rel_type=rel_type,
91
- rel_def=rel_def,
87
+ rel_name="rel_outband", rel_type=rel_type, rel_dir=GraphRelDirection.OUTBOUND
92
88
  )
93
- for rel_type, rel_def in GraphNodeRelationships.model_fields.items()
89
+ for rel_type, field_info in GraphNodeRelationships.model_fields.items()
90
+ if field_info.default.direction in (GraphRelDirection.OUTBOUND, GraphRelDirection.EITHER)
94
91
  ]
95
92
  sub_query_out = "\nUNION\n".join(sub_queries_out)
96
93
  return sub_query_out
@@ -99,11 +96,10 @@ class NodeDuplicateQuery(Query):
99
96
  def _render_sub_query_in(cls) -> str:
100
97
  sub_queries_in = [
101
98
  cls._render_sub_query_per_rel_type(
102
- rel_name="rel_inband",
103
- rel_type=rel_type,
104
- rel_def=rel_def,
99
+ rel_name="rel_inband", rel_type=rel_type, rel_dir=GraphRelDirection.INBOUND
105
100
  )
106
- for rel_type, rel_def in GraphNodeRelationships.model_fields.items()
101
+ for rel_type, field_info in GraphNodeRelationships.model_fields.items()
102
+ if field_info.default.direction in (GraphRelDirection.INBOUND, GraphRelDirection.EITHER)
107
103
  ]
108
104
  sub_query_in = "\nUNION\n".join(sub_queries_in)
109
105
  return sub_query_in
@@ -168,11 +164,12 @@ class NodeDuplicateQuery(Query):
168
164
  FOREACH (i in CASE WHEN rel_outband.branch IN ["-global-", $branch] THEN [1] ELSE [] END |
169
165
  SET rel_outband.to = $current_time
170
166
  )
171
- WITH active_node, new_node
167
+ WITH DISTINCT active_node, new_node
168
+ // Process Inbound Relationship
172
169
  MATCH (active_node)<-[]-(peer)
173
170
  CALL {
174
171
  WITH active_node, peer
175
- MATCH (active_node)-[r]->(peer)
172
+ MATCH (active_node)<-[r]-(peer)
176
173
  WHERE %(branch_filter)s
177
174
  RETURN active_node as n1, r as rel_inband1, peer as p1
178
175
  ORDER BY r.branch_level DESC, r.from DESC
@@ -19,6 +19,8 @@ if TYPE_CHECKING:
19
19
  from infrahub.core.schema import MainSchemaTypes
20
20
  from infrahub.core.schema.schema_branch import SchemaBranch
21
21
 
22
+ GENERIC_ATTRIBUTES_TO_IGNORE = ["namespace", "name", "branch"]
23
+
22
24
 
23
25
  class NodeKind(BaseModel):
24
26
  namespace: str
@@ -182,6 +184,15 @@ class SchemaUpdateValidationResult(BaseModel):
182
184
 
183
185
  for schema_name, schema_diff in self.diff.changed.items():
184
186
  schema_node = schema.get(name=schema_name, duplicate=False)
187
+ if "inherit_from" in schema_diff.changed:
188
+ self.migrations.append(
189
+ SchemaUpdateMigrationInfo(
190
+ path=SchemaPath( # type: ignore[call-arg]
191
+ schema_kind=schema_name, path_type=SchemaPathType.NODE
192
+ ),
193
+ migration_name="node.inherit_from.update",
194
+ )
195
+ )
185
196
 
186
197
  # Nothing to do today if we add a new attribute to a node in the schema
187
198
  # for node_field_name, _ in schema_diff.added.items():
@@ -262,6 +273,10 @@ class SchemaUpdateValidationResult(BaseModel):
262
273
  field_info = schema.model_fields[node_field_name]
263
274
  field_update = str(field_info.json_schema_extra.get("update")) # type: ignore[union-attr]
264
275
 
276
+ # No need to execute a migration for generic nodes attributes because they are not stored in the database
277
+ if schema.is_generic_schema and node_field_name in GENERIC_ATTRIBUTES_TO_IGNORE:
278
+ return
279
+
265
280
  schema_path = SchemaPath( # type: ignore[call-arg]
266
281
  schema_kind=schema.kind,
267
282
  path_type=SchemaPathType.NODE,
@@ -666,18 +666,21 @@ class NodeListGetRelationshipsQuery(Query):
666
666
  MATCH paths_in = ((n)<-[r1:IS_RELATED]-(rel:Relationship)<-[r2:IS_RELATED]-(peer))
667
667
  WHERE ($relationship_identifiers IS NULL OR rel.name in $relationship_identifiers)
668
668
  AND all(r IN relationships(paths_in) WHERE (%(filters)s))
669
+ AND n.uuid <> peer.uuid
669
670
  RETURN n, rel, peer, r1, r2, "inbound" as direction
670
671
  UNION
671
672
  MATCH (n:Node) WHERE n.uuid IN $ids
672
673
  MATCH paths_out = ((n)-[r1:IS_RELATED]->(rel:Relationship)-[r2:IS_RELATED]->(peer))
673
674
  WHERE ($relationship_identifiers IS NULL OR rel.name in $relationship_identifiers)
674
675
  AND all(r IN relationships(paths_out) WHERE (%(filters)s))
676
+ AND n.uuid <> peer.uuid
675
677
  RETURN n, rel, peer, r1, r2, "outbound" as direction
676
678
  UNION
677
679
  MATCH (n:Node) WHERE n.uuid IN $ids
678
680
  MATCH paths_bidir = ((n)-[r1:IS_RELATED]->(rel:Relationship)<-[r2:IS_RELATED]-(peer))
679
681
  WHERE ($relationship_identifiers IS NULL OR rel.name in $relationship_identifiers)
680
682
  AND all(r IN relationships(paths_bidir) WHERE (%(filters)s))
683
+ AND n.uuid <> peer.uuid
681
684
  RETURN n, rel, peer, r1, r2, "bidirectional" as direction
682
685
  """ % {"filters": rels_filter}
683
686
 
@@ -1,8 +1,12 @@
1
+ from __future__ import annotations
2
+
1
3
  from abc import ABC, abstractmethod
4
+ from typing import TYPE_CHECKING
2
5
 
3
- from infrahub.core.path import GroupedDataPaths
6
+ if TYPE_CHECKING:
7
+ from infrahub.core.path import GroupedDataPaths
4
8
 
5
- from .model import SchemaConstraintValidatorRequest
9
+ from .model import SchemaConstraintValidatorRequest
6
10
 
7
11
 
8
12
  class ConstraintCheckerInterface(ABC):
@@ -5,6 +5,7 @@ from pydantic import BaseModel, Field
5
5
  from infrahub.core.branch import Branch
6
6
  from infrahub.core.path import SchemaPath
7
7
  from infrahub.core.schema import GenericSchema, NodeSchema
8
+ from infrahub.core.schema.schema_branch import SchemaBranch
8
9
 
9
10
 
10
11
  class SchemaConstraintValidatorRequest(BaseModel):
@@ -12,6 +13,7 @@ class SchemaConstraintValidatorRequest(BaseModel):
12
13
  constraint_name: str = Field(..., description="The name of the constraint to validate")
13
14
  node_schema: Union[NodeSchema, GenericSchema] = Field(..., description="Schema of Node or Generic to validate")
14
15
  schema_path: SchemaPath = Field(..., description="SchemaPath to the element of the schema to validate")
16
+ schema_branch: SchemaBranch = Field(..., description="SchemaBranch of the element to validate")
15
17
 
16
18
 
17
19
  class SchemaViolation(BaseModel):
@@ -7,9 +7,7 @@ from infrahub.core.path import DataPath, GroupedDataPaths
7
7
  from infrahub.core.schema import NodeSchema
8
8
 
9
9
  from ..interface import ConstraintCheckerInterface
10
- from ..shared import (
11
- SchemaValidatorQuery,
12
- )
10
+ from ..shared import SchemaValidatorQuery
13
11
 
14
12
  if TYPE_CHECKING:
15
13
  from infrahub.core.branch import Branch
@@ -6,7 +6,8 @@ from infrahub_sdk.utils import compare_lists
6
6
 
7
7
  from infrahub.core.constants import PathType
8
8
  from infrahub.core.path import DataPath, GroupedDataPaths
9
- from infrahub.core.schema import NodeSchema
9
+ from infrahub.core.schema import MainSchemaTypes, NodeSchema
10
+ from infrahub.exceptions import SchemaNotFoundError
10
11
 
11
12
  from ..interface import ConstraintCheckerInterface
12
13
 
@@ -41,8 +42,29 @@ class NodeInheritFromChecker(ConstraintCheckerInterface):
41
42
  return grouped_data_paths_list
42
43
 
43
44
  _, removed, _ = compare_lists(list1=current_schema.inherit_from, list2=request.node_schema.inherit_from)
44
-
45
- if removed:
45
+ current_inherit_from_ids = {
46
+ g.id: g.kind
47
+ for g in [
48
+ self.db.schema.get(name=n, branch=request.branch, duplicate=False) for n in current_schema.inherit_from
49
+ ]
50
+ }
51
+
52
+ # Gather IDs for each inherited node in use for candidate schema
53
+ request_inherited: list[MainSchemaTypes] = []
54
+ for n in request.node_schema.inherit_from:
55
+ try:
56
+ schema = request.schema_branch.get(name=n, duplicate=False)
57
+ except SchemaNotFoundError:
58
+ schema = self.db.schema.get(name=n, branch=request.branch, duplicate=False)
59
+ request_inherited.append(schema)
60
+ request_inherit_from_ids = {g.id: g.kind for g in request_inherited}
61
+
62
+ # Compare IDs to find out if some inherited nodes were removed
63
+ # Comparing IDs helps us in understanding if a node was renamed or really removed
64
+ _, removed_ids, _ = compare_lists(
65
+ list1=list(current_inherit_from_ids.keys()), list2=list(request_inherit_from_ids.keys())
66
+ )
67
+ if removed := [current_inherit_from_ids[k] for k in removed_ids]:
46
68
  group_data_path.add_data_path(
47
69
  DataPath(
48
70
  branch=str(request.branch.name),
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from typing import TYPE_CHECKING
4
+
3
5
  from infrahub_sdk.batch import InfrahubBatch
4
6
  from prefect import flow, task
5
7
  from prefect.cache_policies import NONE
@@ -18,6 +20,9 @@ from infrahub.workflows.utils import add_tags
18
20
 
19
21
  from .models.validate_migration import SchemaValidateMigrationData, SchemaValidatorPathResponseData
20
22
 
23
+ if TYPE_CHECKING:
24
+ from infrahub.core.schema.schema_branch import SchemaBranch
25
+
21
26
 
22
27
  @flow(name="schema_validate_migrations", flow_run_name="Validate schema migrations", persist_result=True)
23
28
  async def schema_validate_migrations(message: SchemaValidateMigrationData) -> list[SchemaValidatorPathResponseData]:
@@ -41,6 +46,7 @@ async def schema_validate_migrations(message: SchemaValidateMigrationData) -> li
41
46
  constraint_name=constraint.constraint_name,
42
47
  node_schema=schema,
43
48
  schema_path=constraint.path,
49
+ schema_branch=message.schema_branch,
44
50
  )
45
51
 
46
52
  results = [result async for _, result in batch.execute()]
@@ -59,6 +65,7 @@ async def schema_path_validate(
59
65
  constraint_name: str,
60
66
  node_schema: NodeSchema | GenericSchema,
61
67
  schema_path: SchemaPath,
68
+ schema_branch: SchemaBranch,
62
69
  ) -> SchemaValidatorPathResponseData:
63
70
  service = services.service
64
71
 
@@ -68,6 +75,7 @@ async def schema_path_validate(
68
75
  constraint_name=constraint_name,
69
76
  node_schema=node_schema,
70
77
  schema_path=schema_path,
78
+ schema_branch=schema_branch,
71
79
  )
72
80
 
73
81
  component_registry = get_component_registry()
@@ -1,21 +1,16 @@
1
+ from __future__ import annotations
2
+
1
3
  import asyncio
2
4
  from itertools import chain
3
- from typing import Optional, Union
5
+ from typing import TYPE_CHECKING, Optional, Union
4
6
 
5
7
  from infrahub.core import registry
6
8
  from infrahub.core.branch import Branch
7
9
  from infrahub.core.path import DataPath, GroupedDataPaths
8
- from infrahub.core.query import QueryResult
9
- from infrahub.core.schema import (
10
- AttributeSchema,
11
- MainSchemaTypes,
12
- RelationshipSchema,
13
- )
10
+ from infrahub.core.schema import AttributeSchema, MainSchemaTypes, RelationshipSchema
14
11
  from infrahub.core.validators.uniqueness.index import UniquenessQueryResultsIndex
15
- from infrahub.database import InfrahubDatabase
16
12
 
17
13
  from ..interface import ConstraintCheckerInterface
18
- from ..model import SchemaConstraintValidatorRequest
19
14
  from .model import (
20
15
  NodeUniquenessQueryRequest,
21
16
  NonUniqueAttribute,
@@ -26,6 +21,12 @@ from .model import (
26
21
  )
27
22
  from .query import NodeUniqueAttributeConstraintQuery
28
23
 
24
+ if TYPE_CHECKING:
25
+ from infrahub.core.query import QueryResult
26
+ from infrahub.database import InfrahubDatabase
27
+
28
+ from ..model import SchemaConstraintValidatorRequest
29
+
29
30
 
30
31
  def get_attribute_path_from_string(
31
32
  path: str, schema: MainSchemaTypes
@@ -34,7 +34,7 @@ from infrahub.utils import InfrahubStringEnum
34
34
 
35
35
  from .constants import DatabaseType, Neo4jRuntime
36
36
  from .memgraph import DatabaseManagerMemgraph
37
- from .metrics import QUERY_EXECUTION_METRICS, TRANSACTION_RETRIES
37
+ from .metrics import CONNECTION_POOL_USAGE, QUERY_EXECUTION_METRICS, TRANSACTION_RETRIES
38
38
  from .neo4j import DatabaseManagerNeo4j
39
39
 
40
40
  if TYPE_CHECKING:
@@ -335,6 +335,14 @@ class InfrahubDatabase:
335
335
  context: dict[str, str] | None = None,
336
336
  type: QueryType | None = None, # pylint: disable=redefined-builtin
337
337
  ) -> tuple[list[Record], dict[str, Any]]:
338
+ connpool_usage = self._driver._pool.in_use_connection_count(self._driver._pool.address)
339
+ CONNECTION_POOL_USAGE.labels(self._driver._pool.address).set(float(connpool_usage))
340
+
341
+ if config.SETTINGS.database.max_concurrent_queries:
342
+ while connpool_usage > config.SETTINGS.database.max_concurrent_queries: # noqa: ASYNC110
343
+ await asyncio.sleep(config.SETTINGS.database.max_concurrent_queries_delay)
344
+ connpool_usage = self._driver._pool.in_use_connection_count(self._driver._pool.address)
345
+
338
346
  with trace.get_tracer(__name__).start_as_current_span("execute_db_query_with_metadata") as span:
339
347
  span.set_attribute("query", query)
340
348
  if name:
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from prometheus_client import Counter, Histogram
3
+ from prometheus_client import Counter, Gauge, Histogram
4
4
 
5
5
  METRIC_PREFIX = "infrahub_db"
6
6
 
@@ -16,3 +16,9 @@ TRANSACTION_RETRIES = Counter(
16
16
  "Number of transaction that have been retried due to transcient error",
17
17
  labelnames=["name"],
18
18
  )
19
+
20
+ CONNECTION_POOL_USAGE = Gauge(
21
+ f"{METRIC_PREFIX}_last_connection_pool_usage",
22
+ "Number of last known active connections in the pool",
23
+ labelnames=["address"],
24
+ )