infrahub-server 1.1.8__tar.gz → 1.1.9__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 (688) hide show
  1. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/PKG-INFO +1 -1
  2. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/config.py +6 -0
  3. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/merge.py +20 -17
  4. infrahub_server-1.1.9/backend/infrahub/core/graph/__init__.py +1 -0
  5. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/__init__.py +2 -0
  6. infrahub_server-1.1.9/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +51 -0
  7. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/node.py +3 -0
  8. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/__init__.py +9 -1
  9. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/metrics.py +7 -1
  10. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/initialization.py +3 -0
  11. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/loaders/node.py +2 -12
  12. infrahub_server-1.1.9/backend/infrahub/graphql/loaders/peers.py +77 -0
  13. infrahub_server-1.1.9/backend/infrahub/graphql/loaders/shared.py +13 -0
  14. infrahub_server-1.1.9/backend/infrahub/graphql/resolvers/many_relationship.py +264 -0
  15. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/resolvers/resolver.py +3 -103
  16. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/subscription/graphql_query.py +2 -0
  17. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/pyproject.toml +1 -1
  18. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_testcontainers/infrahub_testcontainers/container.py +11 -0
  19. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +3 -6
  20. infrahub_server-1.1.8/backend/infrahub/core/graph/__init__.py +0 -1
  21. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/LICENSE.txt +0 -0
  22. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/README.md +0 -0
  23. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/__init__.py +0 -0
  24. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/__init__.py +0 -0
  25. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/artifact.py +0 -0
  26. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/auth.py +0 -0
  27. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/dependencies.py +0 -0
  28. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/diff/__init__.py +0 -0
  29. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/diff/diff.py +0 -0
  30. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/diff/validation_models.py +0 -0
  31. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/exception_handlers.py +0 -0
  32. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/exceptions.py +0 -0
  33. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/file.py +0 -0
  34. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/internal.py +0 -0
  35. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/menu.py +0 -0
  36. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/oauth2.py +0 -0
  37. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/oidc.py +0 -0
  38. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/query.py +0 -0
  39. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/schema.py +0 -0
  40. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  41. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  42. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/static/swagger-ui.css +0 -0
  43. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/storage.py +0 -0
  44. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/api/transformation.py +0 -0
  45. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/auth.py +0 -0
  46. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/__init__.py +0 -0
  47. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/context.py +0 -0
  48. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/db.py +0 -0
  49. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/events.py +0 -0
  50. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/git_agent.py +0 -0
  51. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/server.py +0 -0
  52. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/cli/tasks.py +0 -0
  53. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/components.py +0 -0
  54. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/computed_attribute/__init__.py +0 -0
  55. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/computed_attribute/constants.py +0 -0
  56. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/computed_attribute/models.py +0 -0
  57. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/computed_attribute/tasks.py +0 -0
  58. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/__init__.py +0 -0
  59. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/account.py +0 -0
  60. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/attribute.py +0 -0
  61. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/branch/__init__.py +0 -0
  62. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/branch/constants.py +0 -0
  63. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/branch/flow_models.py +0 -0
  64. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/branch/models.py +0 -0
  65. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/branch/tasks.py +0 -0
  66. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constants/__init__.py +0 -0
  67. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constants/database.py +0 -0
  68. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  69. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constants/relationship_label.py +0 -0
  70. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constants/schema.py +0 -0
  71. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constraint/__init__.py +0 -0
  72. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  73. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/constraint/node/runner.py +0 -0
  74. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/__init__.py +0 -0
  75. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  76. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  77. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/branch_differ.py +0 -0
  78. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/calculator.py +0 -0
  79. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/combiner.py +0 -0
  80. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  81. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  82. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  83. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/coordinator.py +0 -0
  84. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  85. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  86. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  87. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  88. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  89. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  90. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  91. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  92. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/exceptions.py +0 -0
  93. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  94. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  95. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/merger/merger.py +0 -0
  96. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/merger/model.py +0 -0
  97. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  98. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/model/__init__.py +0 -0
  99. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/model/diff.py +0 -0
  100. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/model/path.py +0 -0
  101. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/models.py +0 -0
  102. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  103. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/payload_builder.py +0 -0
  104. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/__init__.py +0 -0
  105. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  106. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/artifact.py +0 -0
  107. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  108. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  109. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  110. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  111. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  112. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/filters.py +0 -0
  113. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  114. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  115. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  116. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  117. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/save.py +0 -0
  118. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  119. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  120. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  121. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/query_parser.py +0 -0
  122. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  123. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  124. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/repository/repository.py +0 -0
  125. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/diff/tasks.py +0 -0
  126. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/enums.py +0 -0
  127. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/graph/constraints.py +0 -0
  128. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/graph/index.py +0 -0
  129. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/graph/schema.py +0 -0
  130. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/initialization.py +0 -0
  131. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/integrity/__init__.py +0 -0
  132. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  133. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  134. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/__init__.py +0 -0
  135. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/constants.py +0 -0
  136. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  137. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/model.py +0 -0
  138. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/reconciler.py +0 -0
  139. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/size.py +0 -0
  140. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/tasks.py +0 -0
  141. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/ipam/utilization.py +0 -0
  142. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/manager.py +0 -0
  143. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/merge.py +0 -0
  144. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/__init__.py +0 -0
  145. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  146. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  147. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  148. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  149. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  150. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  151. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  152. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  153. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  154. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  155. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  156. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  157. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  158. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  159. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  160. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  161. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  162. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  163. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  164. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  165. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  166. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  167. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  168. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  169. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  170. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  171. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  172. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  173. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  174. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/models.py +0 -0
  175. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  176. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  177. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  178. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  179. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  180. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  181. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/migrations/shared.py +0 -0
  182. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/models.py +0 -0
  183. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/__init__.py +0 -0
  184. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/base.py +0 -0
  185. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  186. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  187. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +0 -0
  188. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/constraints/interface.py +0 -0
  189. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/delete_validator.py +0 -0
  190. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/ipam.py +0 -0
  191. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/permissions.py +0 -0
  192. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  193. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
  194. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
  195. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
  196. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/node/standard.py +0 -0
  197. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/path.py +0 -0
  198. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/property.py +0 -0
  199. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/protocols.py +0 -0
  200. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/protocols_base.py +0 -0
  201. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/__init__.py +0 -0
  202. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/attribute.py +0 -0
  203. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/branch.py +0 -0
  204. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/delete.py +0 -0
  205. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/diff.py +0 -0
  206. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/ipam.py +0 -0
  207. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/relationship.py +0 -0
  208. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/resource_manager.py +0 -0
  209. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/standard_node.py +0 -0
  210. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/subquery.py +0 -0
  211. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/task.py +0 -0
  212. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/task_log.py +0 -0
  213. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/query/utils.py +0 -0
  214. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/registry.py +0 -0
  215. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/__init__.py +0 -0
  216. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  217. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  218. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  219. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  220. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  221. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/relationship/model.py +0 -0
  222. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/root.py +0 -0
  223. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/__init__.py +0 -0
  224. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  225. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  226. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  227. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/constants.py +0 -0
  228. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  229. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/definitions/core.py +0 -0
  230. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  231. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  232. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/dropdown.py +0 -0
  233. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  234. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  235. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  236. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  237. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  238. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  239. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/generic_schema.py +0 -0
  240. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/manager.py +0 -0
  241. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/node_schema.py +0 -0
  242. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/profile_schema.py +0 -0
  243. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  244. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/schema_branch.py +0 -0
  245. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  246. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/task/__init__.py +0 -0
  247. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/task/task.py +0 -0
  248. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/task/task_log.py +0 -0
  249. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/task/user_task.py +0 -0
  250. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/timestamp.py +0 -0
  251. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/utils.py +0 -0
  252. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/__init__.py +0 -0
  253. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  254. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  255. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  256. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  257. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  258. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/length.py +0 -0
  259. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  260. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  261. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  262. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/determiner.py +0 -0
  263. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/interface.py +0 -0
  264. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/model.py +0 -0
  265. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/models/__init__.py +0 -0
  266. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  267. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/models/violation.py +0 -0
  268. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/__init__.py +0 -0
  269. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/attribute.py +0 -0
  270. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  271. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  272. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  273. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/node/relationship.py +0 -0
  274. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/query.py +0 -0
  275. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  276. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/relationship/count.py +0 -0
  277. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  278. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  279. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/shared.py +0 -0
  280. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/tasks.py +0 -0
  281. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  282. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  283. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  284. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  285. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/core/validators/uniqueness/query.py +0 -0
  286. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/constants.py +0 -0
  287. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/index.py +0 -0
  288. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/manager.py +0 -0
  289. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/memgraph.py +0 -0
  290. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/database/neo4j.py +0 -0
  291. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/__init__.py +0 -0
  292. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  293. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  294. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  295. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  296. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  297. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  298. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  299. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  300. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  301. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  302. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  303. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  304. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  305. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  306. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  307. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  308. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  309. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  310. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  311. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  312. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  313. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  314. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  315. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  316. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  317. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  318. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  319. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  320. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  321. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  322. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  323. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  324. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  325. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  326. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  327. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  328. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  329. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  330. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  331. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  332. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  333. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  334. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  335. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  336. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  337. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  338. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  339. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  340. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  341. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  342. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/component/__init__.py +0 -0
  343. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  344. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/component/registry.py +0 -0
  345. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/interface.py +0 -0
  346. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/dependencies/registry.py +0 -0
  347. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/__init__.py +0 -0
  348. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/branch_action.py +0 -0
  349. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/constants.py +0 -0
  350. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/models.py +0 -0
  351. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/node_action.py +0 -0
  352. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/repository_action.py +0 -0
  353. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/events/schema_action.py +0 -0
  354. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/exceptions.py +0 -0
  355. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/generators/__init__.py +0 -0
  356. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/generators/models.py +0 -0
  357. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/generators/tasks.py +0 -0
  358. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/__init__.py +0 -0
  359. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/base.py +0 -0
  360. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/constants.py +0 -0
  361. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/directory.py +0 -0
  362. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/integrator.py +0 -0
  363. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/models.py +0 -0
  364. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/repository.py +0 -0
  365. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/tasks.py +0 -0
  366. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git/worktree.py +0 -0
  367. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git_credential/__init__.py +0 -0
  368. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git_credential/askpass.py +0 -0
  369. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/git_credential/helper.py +0 -0
  370. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/__init__.py +0 -0
  371. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/analyzer.py +0 -0
  372. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/api/__init__.py +0 -0
  373. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/api/dependencies.py +0 -0
  374. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/api/endpoints.py +0 -0
  375. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/app.py +0 -0
  376. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/__init__.py +0 -0
  377. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  378. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  379. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  380. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  381. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  382. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  383. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  384. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  385. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/constants.py +0 -0
  386. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/directives.py +0 -0
  387. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/enums.py +0 -0
  388. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  389. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/manager.py +0 -0
  390. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/metrics.py +0 -0
  391. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/models.py +0 -0
  392. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  393. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/account.py +0 -0
  394. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  395. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  396. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/branch.py +0 -0
  397. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  398. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/diff.py +0 -0
  399. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  400. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  401. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  402. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/main.py +0 -0
  403. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/menu.py +0 -0
  404. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/models.py +0 -0
  405. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  406. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  407. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  408. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  409. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  410. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  411. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  412. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/repository.py +0 -0
  413. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  414. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/schema.py +0 -0
  415. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  416. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/parser.py +0 -0
  417. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/permissions.py +0 -0
  418. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/__init__.py +0 -0
  419. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/account.py +0 -0
  420. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/branch.py +0 -0
  421. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  422. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  423. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/internal.py +0 -0
  424. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/ipam.py +0 -0
  425. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/relationship.py +0 -0
  426. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  427. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/search.py +0 -0
  428. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/status.py +0 -0
  429. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/queries/task.py +0 -0
  430. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/query.py +0 -0
  431. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  432. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  433. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/schema.py +0 -0
  434. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  435. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/subscription/events.py +0 -0
  436. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/__init__.py +0 -0
  437. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/attribute.py +0 -0
  438. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/branch.py +0 -0
  439. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/common.py +0 -0
  440. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/enums.py +0 -0
  441. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/interface.py +0 -0
  442. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/node.py +0 -0
  443. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/permission.py +0 -0
  444. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/relationship.py +0 -0
  445. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/standard_node.py +0 -0
  446. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/task.py +0 -0
  447. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/types/task_log.py +0 -0
  448. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/graphql/utils.py +0 -0
  449. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/groups/__init__.py +0 -0
  450. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/groups/models.py +0 -0
  451. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/groups/tasks.py +0 -0
  452. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/helpers.py +0 -0
  453. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/lock.py +0 -0
  454. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/log.py +0 -0
  455. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/__init__.py +0 -0
  456. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/constants.py +0 -0
  457. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/generator.py +0 -0
  458. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/menu.py +0 -0
  459. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/models.py +0 -0
  460. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/menu/utils.py +0 -0
  461. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/__init__.py +0 -0
  462. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  463. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/check_artifact_create.py +0 -0
  464. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
  465. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/check_repository_checkdefinition.py +0 -0
  466. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/check_repository_mergeconflicts.py +0 -0
  467. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/check_repository_usercheck.py +0 -0
  468. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_branch_create.py +0 -0
  469. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_branch_delete.py +0 -0
  470. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_branch_merge.py +0 -0
  471. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_branch_rebased.py +0 -0
  472. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_node_mutated.py +0 -0
  473. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_schema_update.py +0 -0
  474. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/event_worker_newprimaryapi.py +0 -0
  475. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
  476. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  477. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  478. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/proposed_change/__init__.py +0 -0
  479. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
  480. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
  481. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  482. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  483. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  484. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/request_artifactdefinition_check.py +0 -0
  485. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
  486. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
  487. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/request_repository_checks.py +0 -0
  488. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/request_repository_userchecks.py +0 -0
  489. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  490. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  491. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
  492. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/check/artifact.py +0 -0
  493. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
  494. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/check/repository.py +0 -0
  495. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/event/__init__.py +0 -0
  496. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/event/branch.py +0 -0
  497. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/event/node.py +0 -0
  498. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/event/schema.py +0 -0
  499. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/event/worker.py +0 -0
  500. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
  501. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
  502. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  503. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  504. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  505. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  506. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  507. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
  508. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/requests/artifact_definition.py +0 -0
  509. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
  510. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/requests/proposed_change.py +0 -0
  511. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/requests/repository.py +0 -0
  512. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  513. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  514. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/message_bus/types.py +0 -0
  515. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/middleware.py +0 -0
  516. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/models.py +0 -0
  517. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/__init__.py +0 -0
  518. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/backend.py +0 -0
  519. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/constants.py +0 -0
  520. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/local_backend.py +0 -0
  521. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/manager.py +0 -0
  522. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/report.py +0 -0
  523. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/permissions/types.py +0 -0
  524. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/pools/__init__.py +0 -0
  525. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/pools/address.py +0 -0
  526. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/pools/number.py +0 -0
  527. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/pools/prefix.py +0 -0
  528. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/proposed_change/__init__.py +0 -0
  529. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/proposed_change/constants.py +0 -0
  530. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/proposed_change/models.py +0 -0
  531. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/proposed_change/tasks.py +0 -0
  532. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/pytest_plugin.py +0 -0
  533. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/schema/__init__.py +0 -0
  534. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/schema/constants.py +0 -0
  535. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/schema/tasks.py +0 -0
  536. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/serve/__init__.py +0 -0
  537. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/serve/gunicorn_config.py +0 -0
  538. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/serve/log.py +0 -0
  539. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/serve/worker.py +0 -0
  540. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/server.py +0 -0
  541. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/__init__.py +0 -0
  542. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/__init__.py +0 -0
  543. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  544. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  545. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  546. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/database/__init__.py +0 -0
  547. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  548. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  549. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  550. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  551. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  552. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  553. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  554. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  555. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  556. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  557. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/component.py +0 -0
  558. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/protocols.py +0 -0
  559. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/services/scheduler.py +0 -0
  560. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/storage.py +0 -0
  561. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/support/__init__.py +0 -0
  562. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/support/macro.py +0 -0
  563. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/task_manager/__init__.py +0 -0
  564. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/task_manager/constants.py +0 -0
  565. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/task_manager/models.py +0 -0
  566. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/task_manager/task.py +0 -0
  567. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/__init__.py +0 -0
  568. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/artifact.py +0 -0
  569. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/check.py +0 -0
  570. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/dummy.py +0 -0
  571. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/keepalive.py +0 -0
  572. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/recurring.py +0 -0
  573. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/registry.py +0 -0
  574. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/tasks/telemetry.py +0 -0
  575. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/trace.py +0 -0
  576. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/transformations/__init__.py +0 -0
  577. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/transformations/constants.py +0 -0
  578. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/transformations/models.py +0 -0
  579. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/transformations/tasks.py +0 -0
  580. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/types.py +0 -0
  581. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/utils.py +0 -0
  582. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/visuals.py +0 -0
  583. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/webhook/__init__.py +0 -0
  584. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/webhook/constants.py +0 -0
  585. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/webhook/models.py +0 -0
  586. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/webhook/tasks.py +0 -0
  587. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/worker.py +0 -0
  588. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workers/__init__.py +0 -0
  589. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workers/infrahub_async.py +0 -0
  590. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/__init__.py +0 -0
  591. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/catalogue.py +0 -0
  592. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/constants.py +0 -0
  593. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/initialization.py +0 -0
  594. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/models.py +0 -0
  595. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/backend/infrahub/workflows/utils.py +0 -0
  596. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/__init__.py +0 -0
  597. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/_importer.py +0 -0
  598. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  599. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  600. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/batch.py +0 -0
  601. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/branch.py +0 -0
  602. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/checks.py +0 -0
  603. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/client.py +0 -0
  604. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/code_generator.py +0 -0
  605. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/config.py +0 -0
  606. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/constants.py +0 -0
  607. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/__init__.py +0 -0
  608. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  609. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  610. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  611. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/cli_commands.py +0 -0
  612. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  613. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  614. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/constants.py +0 -0
  615. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  616. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  617. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  618. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  619. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
  620. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
  621. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  622. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  623. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  624. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  625. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  626. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
  627. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  628. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/data.py +0 -0
  629. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/diff.py +0 -0
  630. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/exceptions.py +0 -0
  631. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/generator.py +0 -0
  632. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/graphql.py +0 -0
  633. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/groups.py +0 -0
  634. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  635. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/node.py +0 -0
  636. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/object_store.py +0 -0
  637. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/playback.py +0 -0
  638. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/protocols.py +0 -0
  639. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  640. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/__init__.py +0 -0
  641. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  642. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  643. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  644. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  645. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  646. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  647. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  648. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  649. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  650. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  651. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  652. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/queries.py +0 -0
  653. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  654. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/recorder.py +0 -0
  655. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/repository.py +0 -0
  656. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
  657. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/schema/main.py +0 -0
  658. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
  659. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/spec/__init__.py +0 -0
  660. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
  661. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/spec/object.py +0 -0
  662. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/store.py +0 -0
  663. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/__init__.py +0 -0
  664. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
  665. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  666. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
  667. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
  668. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  669. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  670. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  671. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  672. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  673. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  674. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  675. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  676. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  677. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  678. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  679. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  680. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  681. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/transforms.py +0 -0
  682. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/types.py +0 -0
  683. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/utils.py +0 -0
  684. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  685. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_sdk/infrahub_sdk/yaml.py +0 -0
  686. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  687. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  688. {infrahub_server-1.1.8 → infrahub_server-1.1.9}/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.9
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 = 21
@@ -22,6 +22,7 @@ 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
25
26
 
26
27
  if TYPE_CHECKING:
27
28
  from infrahub.core.root import Root
@@ -49,6 +50,7 @@ MIGRATIONS: list[type[Union[GraphMigration, InternalSchemaMigration, ArbitraryMi
49
50
  Migration018,
50
51
  Migration019,
51
52
  Migration020,
53
+ Migration021,
52
54
  ]
53
55
 
54
56
 
@@ -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
@@ -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
 
@@ -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
+ )
@@ -8,6 +8,7 @@ from starlette.background import BackgroundTasks
8
8
  from infrahub.core import registry
9
9
  from infrahub.core.timestamp import Timestamp
10
10
  from infrahub.exceptions import InitializationError
11
+ from infrahub.graphql.resolvers.many_relationship import ManyRelationshipResolver
11
12
  from infrahub.graphql.resolvers.single_relationship import SingleRelationshipResolver
12
13
  from infrahub.permissions import PermissionManager
13
14
 
@@ -35,6 +36,7 @@ class GraphqlContext:
35
36
  branch: Branch
36
37
  types: dict
37
38
  single_relationship_resolver: SingleRelationshipResolver
39
+ many_relationship_resolver: ManyRelationshipResolver
38
40
  at: Timestamp | None = None
39
41
  related_node_ids: set | None = None
40
42
  service: InfrahubServices | None = None
@@ -107,6 +109,7 @@ async def prepare_graphql_params(
107
109
  db=db,
108
110
  branch=branch,
109
111
  single_relationship_resolver=SingleRelationshipResolver(),
112
+ many_relationship_resolver=ManyRelationshipResolver(),
110
113
  at=Timestamp(at),
111
114
  types=gqlm.get_graphql_types(),
112
115
  related_node_ids=set(),
@@ -10,6 +10,8 @@ from infrahub.core.node import Node
10
10
  from infrahub.core.timestamp import Timestamp
11
11
  from infrahub.database import InfrahubDatabase
12
12
 
13
+ from .shared import to_frozen_set
14
+
13
15
 
14
16
  @dataclass
15
17
  class GetManyParams:
@@ -68,15 +70,3 @@ class NodeDataLoader(DataLoader[str, Node | None]):
68
70
  for node_id in keys:
69
71
  results.append(nodes_by_id.get(node_id, None))
70
72
  return results
71
-
72
-
73
- def to_frozen_set(to_freeze: dict[str, Any]) -> frozenset:
74
- freezing_dict = {}
75
- for k, v in to_freeze.items():
76
- if isinstance(v, dict):
77
- freezing_dict[k] = to_frozen_set(v)
78
- elif isinstance(v, (list, set)):
79
- freezing_dict[k] = frozenset(v)
80
- else:
81
- freezing_dict[k] = v
82
- return frozenset(freezing_dict)
@@ -0,0 +1,77 @@
1
+ from dataclasses import dataclass
2
+ from typing import Any
3
+
4
+ from aiodataloader import DataLoader
5
+
6
+ from infrahub.core.branch.models import Branch
7
+ from infrahub.core.manager import NodeManager
8
+ from infrahub.core.relationship.model import Relationship
9
+ from infrahub.core.schema.relationship_schema import RelationshipSchema
10
+ from infrahub.core.timestamp import Timestamp
11
+ from infrahub.database import InfrahubDatabase
12
+
13
+ from .shared import to_frozen_set
14
+
15
+
16
+ @dataclass
17
+ class QueryPeerParams:
18
+ branch: Branch | str
19
+ source_kind: str
20
+ schema: RelationshipSchema
21
+ filters: dict[str, Any]
22
+ fields: dict | None = None
23
+ at: Timestamp | str | None = None
24
+ branch_agnostic: bool = False
25
+
26
+ def __hash__(self) -> int:
27
+ frozen_fields: frozenset | None = None
28
+ if self.fields:
29
+ frozen_fields = to_frozen_set(self.fields)
30
+ frozen_filters = to_frozen_set(self.filters)
31
+ timestamp = Timestamp(self.at)
32
+ branch = self.branch.name if isinstance(self.branch, Branch) else self.branch
33
+ hash_str = "|".join(
34
+ [
35
+ str(hash(frozen_fields)),
36
+ str(hash(frozen_filters)),
37
+ timestamp.to_string(),
38
+ branch,
39
+ self.schema.name,
40
+ str(self.source_kind),
41
+ str(self.branch_agnostic),
42
+ ]
43
+ )
44
+ return hash(hash_str)
45
+
46
+
47
+ class PeerRelationshipsDataLoader(DataLoader[str, list[Relationship]]):
48
+ def __init__(self, db: InfrahubDatabase, query_params: QueryPeerParams, *args: Any, **kwargs: Any) -> None:
49
+ super().__init__(*args, **kwargs)
50
+ self.query_params = query_params
51
+ self.db = db
52
+
53
+ async def batch_load_fn(self, keys: list[Any]) -> list[list[Relationship]]: # pylint: disable=method-hidden
54
+ async with self.db.start_session() as db:
55
+ peer_rels = await NodeManager.query_peers(
56
+ db=db,
57
+ ids=keys,
58
+ source_kind=self.query_params.source_kind,
59
+ schema=self.query_params.schema,
60
+ filters=self.query_params.filters,
61
+ fields=self.query_params.fields,
62
+ at=self.query_params.at,
63
+ branch=self.query_params.branch,
64
+ branch_agnostic=self.query_params.branch_agnostic,
65
+ fetch_peers=True,
66
+ )
67
+ peer_rels_by_node_id: dict[str, list[Relationship]] = {}
68
+ for rel in peer_rels:
69
+ node_id = rel.node_id
70
+ if node_id not in peer_rels_by_node_id:
71
+ peer_rels_by_node_id[node_id] = []
72
+ peer_rels_by_node_id[node_id].append(rel)
73
+
74
+ results = []
75
+ for node_id in keys:
76
+ results.append(peer_rels_by_node_id.get(node_id, []))
77
+ return results
@@ -0,0 +1,13 @@
1
+ from typing import Any
2
+
3
+
4
+ def to_frozen_set(to_freeze: dict[str, Any]) -> frozenset:
5
+ freezing_dict = {}
6
+ for k, v in to_freeze.items():
7
+ if isinstance(v, dict):
8
+ freezing_dict[k] = to_frozen_set(v)
9
+ elif isinstance(v, (list, set)):
10
+ freezing_dict[k] = frozenset(v)
11
+ else:
12
+ freezing_dict[k] = v
13
+ return frozenset(freezing_dict)
@@ -0,0 +1,264 @@
1
+ from typing import TYPE_CHECKING, Any
2
+
3
+ from graphql import GraphQLResolveInfo
4
+ from infrahub_sdk.utils import deep_merge_dict, extract_fields
5
+
6
+ from infrahub.core.branch.models import Branch
7
+ from infrahub.core.constants import BranchSupportType, RelationshipHierarchyDirection
8
+ from infrahub.core.manager import NodeManager
9
+ from infrahub.core.query.node import NodeGetHierarchyQuery
10
+ from infrahub.core.schema.node_schema import NodeSchema
11
+ from infrahub.core.schema.relationship_schema import RelationshipSchema
12
+ from infrahub.core.timestamp import Timestamp
13
+ from infrahub.database import InfrahubDatabase
14
+
15
+ from ..loaders.peers import PeerRelationshipsDataLoader, QueryPeerParams
16
+ from ..types import RELATIONS_PROPERTY_MAP, RELATIONS_PROPERTY_MAP_REVERSED
17
+
18
+ if TYPE_CHECKING:
19
+ from infrahub.core.schema import MainSchemaTypes
20
+
21
+ from ..initialization import GraphqlContext
22
+
23
+
24
+ class ManyRelationshipResolver:
25
+ def __init__(self) -> None:
26
+ self._data_loader_instances: dict[QueryPeerParams, PeerRelationshipsDataLoader] = {}
27
+
28
+ async def get_descendant_ids(
29
+ self,
30
+ db: InfrahubDatabase,
31
+ branch: Branch,
32
+ at: Timestamp | None,
33
+ parent_id: str,
34
+ node_schema: NodeSchema,
35
+ ) -> list[str]:
36
+ async with db.start_session() as dbs:
37
+ query = await NodeGetHierarchyQuery.init(
38
+ db=dbs,
39
+ direction=RelationshipHierarchyDirection.DESCENDANTS,
40
+ node_id=parent_id,
41
+ node_schema=node_schema,
42
+ at=at,
43
+ branch=branch,
44
+ )
45
+ await query.execute(db=dbs)
46
+ return list(query.get_peer_ids())
47
+
48
+ async def get_peer_count(
49
+ self,
50
+ db: InfrahubDatabase,
51
+ branch: Branch,
52
+ at: Timestamp | None,
53
+ ids: list[str],
54
+ source_kind: str,
55
+ rel_schema: RelationshipSchema,
56
+ filters: dict[str, Any],
57
+ ) -> int:
58
+ async with db.start_session() as dbs:
59
+ return await NodeManager.count_peers(
60
+ db=dbs,
61
+ ids=ids,
62
+ source_kind=source_kind,
63
+ schema=rel_schema,
64
+ filters=filters,
65
+ at=at,
66
+ branch=branch,
67
+ branch_agnostic=rel_schema.branch is BranchSupportType.AGNOSTIC,
68
+ )
69
+
70
+ async def resolve(
71
+ self,
72
+ parent: dict,
73
+ info: GraphQLResolveInfo,
74
+ include_descendants: bool = False,
75
+ offset: int | None = None,
76
+ limit: int | None = None,
77
+ **kwargs: Any,
78
+ ) -> dict[str, Any]:
79
+ """Resolver for relationships of cardinality=one for Edged responses
80
+
81
+ This resolver is used for paginated responses and as such we redefined the requested
82
+ fields by only reusing information below the 'node' key.
83
+ """
84
+ # Extract the InfraHub schema by inspecting the GQL Schema
85
+
86
+ node_schema: MainSchemaTypes = info.parent_type.graphene_type._meta.schema # type: ignore[attr-defined]
87
+
88
+ context: GraphqlContext = info.context
89
+
90
+ # Extract the name of the fields in the GQL query
91
+ fields = await extract_fields(info.field_nodes[0].selection_set)
92
+ edges = fields.get("edges", {})
93
+ node_fields = edges.get("node", {})
94
+ property_fields = edges.get("properties", {})
95
+ for key, value in property_fields.items():
96
+ mapped_name = RELATIONS_PROPERTY_MAP[key]
97
+ node_fields[mapped_name] = value
98
+
99
+ filters = {
100
+ f"{info.field_name}__{key}": value
101
+ for key, value in kwargs.items()
102
+ if "__" in key and value or key in ["id", "ids"]
103
+ }
104
+
105
+ response: dict[str, Any] = {"edges": [], "count": None}
106
+
107
+ # Extract the schema of the node on the other end of the relationship from the GQL Schema
108
+ node_rel = node_schema.get_relationship(info.field_name)
109
+ source_kind = node_schema.kind
110
+ ids = [parent["id"]]
111
+ if isinstance(node_schema, NodeSchema):
112
+ if node_schema.hierarchy:
113
+ source_kind = node_schema.hierarchy
114
+
115
+ if include_descendants:
116
+ descendant_ids = await self.get_descendant_ids(
117
+ db=context.db,
118
+ branch=context.branch,
119
+ at=context.at,
120
+ parent_id=ids[0],
121
+ node_schema=node_schema,
122
+ )
123
+ ids.extend(descendant_ids)
124
+
125
+ if "count" in fields:
126
+ peer_count = await self.get_peer_count(
127
+ db=context.db,
128
+ branch=context.branch,
129
+ at=context.at,
130
+ ids=ids,
131
+ source_kind=source_kind,
132
+ rel_schema=node_rel,
133
+ filters=filters,
134
+ )
135
+ response["count"] = peer_count
136
+
137
+ if not node_fields:
138
+ return response
139
+
140
+ if offset or limit:
141
+ node_graph = await self._get_entities_simple(
142
+ db=context.db,
143
+ branch=context.branch,
144
+ ids=ids,
145
+ at=context.at,
146
+ related_node_ids=context.related_node_ids,
147
+ source_kind=source_kind,
148
+ rel_schema=node_rel,
149
+ filters=filters,
150
+ node_fields=node_fields,
151
+ offset=offset,
152
+ limit=limit,
153
+ )
154
+ else:
155
+ node_graph = await self._get_entities_with_data_loader(
156
+ db=context.db,
157
+ branch=context.branch,
158
+ ids=ids,
159
+ at=context.at,
160
+ related_node_ids=context.related_node_ids,
161
+ source_kind=source_kind,
162
+ rel_schema=node_rel,
163
+ filters=filters,
164
+ node_fields=node_fields,
165
+ )
166
+
167
+ if not node_graph:
168
+ return response
169
+
170
+ entries = []
171
+ for node in node_graph:
172
+ entry: dict[str, dict[str, Any]] = {"node": {}, "properties": {}}
173
+ for key, mapped in RELATIONS_PROPERTY_MAP_REVERSED.items():
174
+ value = node.pop(key, None)
175
+ if value:
176
+ entry["properties"][mapped] = value
177
+ entry["node"] = node
178
+ entries.append(entry)
179
+
180
+ response["edges"] = entries
181
+ return response
182
+
183
+ async def _get_entities_simple(
184
+ self,
185
+ db: InfrahubDatabase,
186
+ branch: Branch,
187
+ ids: list[str],
188
+ at: Timestamp | None,
189
+ related_node_ids: set[str] | None,
190
+ source_kind: str,
191
+ rel_schema: RelationshipSchema,
192
+ filters: dict[str, Any],
193
+ node_fields: dict[str, Any],
194
+ offset: int | None = None,
195
+ limit: int | None = None,
196
+ ) -> list[dict[str, Any]] | None:
197
+ async with db.start_session() as dbs:
198
+ objs = await NodeManager.query_peers(
199
+ db=dbs,
200
+ ids=ids,
201
+ source_kind=source_kind,
202
+ schema=rel_schema,
203
+ filters=filters,
204
+ fields=node_fields,
205
+ offset=offset,
206
+ limit=limit,
207
+ at=at,
208
+ branch=branch,
209
+ branch_agnostic=rel_schema.branch is BranchSupportType.AGNOSTIC,
210
+ fetch_peers=True,
211
+ )
212
+ if not objs:
213
+ return None
214
+ return [await obj.to_graphql(db=dbs, fields=node_fields, related_node_ids=related_node_ids) for obj in objs]
215
+
216
+ async def _get_entities_with_data_loader(
217
+ self,
218
+ db: InfrahubDatabase,
219
+ branch: Branch,
220
+ ids: list[str],
221
+ at: Timestamp | None,
222
+ related_node_ids: set[str] | None,
223
+ source_kind: str,
224
+ rel_schema: RelationshipSchema,
225
+ filters: dict[str, Any],
226
+ node_fields: dict[str, Any],
227
+ ) -> list[dict[str, Any]] | None:
228
+ if node_fields and "display_label" in node_fields:
229
+ schema_branch = db.schema.get_schema_branch(name=branch.name)
230
+ display_label_fields = schema_branch.generate_fields_for_display_label(name=rel_schema.peer)
231
+ if display_label_fields:
232
+ node_fields = deep_merge_dict(dicta=node_fields, dictb=display_label_fields)
233
+
234
+ if node_fields and "hfid" in node_fields:
235
+ peer_schema = db.schema.get(name=rel_schema.peer, branch=branch, duplicate=False)
236
+ hfid_fields = peer_schema.generate_fields_for_hfid()
237
+ if hfid_fields:
238
+ node_fields = deep_merge_dict(dicta=node_fields, dictb=hfid_fields)
239
+
240
+ query_params = QueryPeerParams(
241
+ branch=branch,
242
+ source_kind=source_kind,
243
+ schema=rel_schema,
244
+ filters=filters,
245
+ fields=node_fields,
246
+ at=at,
247
+ branch_agnostic=rel_schema.branch is BranchSupportType.AGNOSTIC,
248
+ )
249
+ if query_params in self._data_loader_instances:
250
+ loader = self._data_loader_instances[query_params]
251
+ else:
252
+ loader = PeerRelationshipsDataLoader(db=db, query_params=query_params)
253
+ self._data_loader_instances[query_params] = loader
254
+ all_peer_rels = []
255
+ for node_id in ids:
256
+ node_peer_rels = await loader.load(key=node_id)
257
+ all_peer_rels.extend(node_peer_rels)
258
+ if not all_peer_rels:
259
+ return None
260
+ async with db.start_session() as dbs:
261
+ return [
262
+ await obj.to_graphql(db=dbs, fields=node_fields, related_node_ids=related_node_ids)
263
+ for obj in all_peer_rels
264
+ ]