infrahub-server 1.3.6__tar.gz → 1.3.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (818) hide show
  1. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/PKG-INFO +1 -1
  2. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/schema.py +3 -7
  3. infrahub_server-1.3.7/backend/infrahub/core/graph/__init__.py +1 -0
  4. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/__init__.py +2 -0
  5. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m033_deduplicate_relationship_vertices.py +1 -1
  6. infrahub_server-1.3.7/backend/infrahub/core/migrations/graph/m035_orphan_relationships.py +43 -0
  7. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +50 -48
  8. infrahub_server-1.3.7/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +124 -0
  9. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/resource_manager/number_pool.py +20 -18
  10. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/branch.py +37 -20
  11. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/node.py +13 -11
  12. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/context.py +1 -1
  13. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/schema.py +14 -1
  14. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/schema.py +3 -14
  15. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/__init__.py +2 -0
  16. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/pyproject.toml +1 -1
  17. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/utils.py +9 -5
  18. infrahub_server-1.3.6/backend/infrahub/core/graph/__init__.py +0 -1
  19. infrahub_server-1.3.6/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -122
  20. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/LICENSE.txt +0 -0
  21. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/README.md +0 -0
  22. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/__init__.py +0 -0
  23. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/__init__.py +0 -0
  24. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/constants.py +0 -0
  25. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/gather.py +0 -0
  26. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/models.py +0 -0
  27. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/parsers.py +0 -0
  28. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/schema.py +0 -0
  29. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/tasks.py +0 -0
  30. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/actions/triggers.py +0 -0
  31. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/__init__.py +0 -0
  32. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/artifact.py +0 -0
  33. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/auth.py +0 -0
  34. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/dependencies.py +0 -0
  35. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/diff/__init__.py +0 -0
  36. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/diff/diff.py +0 -0
  37. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/diff/validation_models.py +0 -0
  38. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/exception_handlers.py +0 -0
  39. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/exceptions.py +0 -0
  40. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/file.py +0 -0
  41. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/internal.py +0 -0
  42. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/menu.py +0 -0
  43. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/oauth2.py +0 -0
  44. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/oidc.py +0 -0
  45. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/query.py +0 -0
  46. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/static/redoc.standalone.js +0 -0
  47. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
  48. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/static/swagger-ui.css +0 -0
  49. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/storage.py +0 -0
  50. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/api/transformation.py +0 -0
  51. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/artifacts/__init__.py +0 -0
  52. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/artifacts/models.py +0 -0
  53. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/artifacts/tasks.py +0 -0
  54. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/auth.py +0 -0
  55. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/branch/__init__.py +0 -0
  56. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/branch/tasks.py +0 -0
  57. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/branch/triggers.py +0 -0
  58. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/__init__.py +0 -0
  59. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/constants.py +0 -0
  60. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/context.py +0 -0
  61. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/db.py +0 -0
  62. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/db_commands/__init__.py +0 -0
  63. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/db_commands/check_inheritance.py +0 -0
  64. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/events.py +0 -0
  65. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/git_agent.py +0 -0
  66. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/patch.py +0 -0
  67. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/server.py +0 -0
  68. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/tasks.py +0 -0
  69. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/cli/upgrade.py +0 -0
  70. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/components.py +0 -0
  71. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/__init__.py +0 -0
  72. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/constants.py +0 -0
  73. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/gather.py +0 -0
  74. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/models.py +0 -0
  75. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/tasks.py +0 -0
  76. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/computed_attribute/triggers.py +0 -0
  77. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/config.py +0 -0
  78. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/constants/__init__.py +0 -0
  79. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/constants/database.py +0 -0
  80. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/context.py +0 -0
  81. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/__init__.py +0 -0
  82. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/account.py +0 -0
  83. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/attribute.py +0 -0
  84. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/branch/__init__.py +0 -0
  85. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/branch/enums.py +0 -0
  86. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/branch/models.py +0 -0
  87. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/branch/tasks.py +0 -0
  88. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/changelog/__init__.py +0 -0
  89. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/changelog/diff.py +0 -0
  90. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/changelog/models.py +0 -0
  91. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constants/__init__.py +0 -0
  92. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constants/database.py +0 -0
  93. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constants/infrahubkind.py +0 -0
  94. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constants/relationship_label.py +0 -0
  95. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constants/schema.py +0 -0
  96. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constraint/__init__.py +0 -0
  97. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constraint/node/__init__.py +0 -0
  98. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/constraint/node/runner.py +0 -0
  99. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/convert_object_type/__init__.py +0 -0
  100. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/convert_object_type/conversion.py +0 -0
  101. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/convert_object_type/schema_mapping.py +0 -0
  102. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/__init__.py +0 -0
  103. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
  104. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
  105. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/branch_differ.py +0 -0
  106. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/calculator.py +0 -0
  107. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/combiner.py +0 -0
  108. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
  109. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
  110. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
  111. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/coordinator.py +0 -0
  112. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/data_check_synchronizer.py +0 -0
  113. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/diff_locker.py +0 -0
  114. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
  115. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/aggregated.py +0 -0
  116. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/cardinality_one.py +0 -0
  117. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
  118. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/interface.py +0 -0
  119. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/labels.py +0 -0
  120. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/path_identifier.py +0 -0
  121. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/enricher/summary_counts.py +0 -0
  122. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/exceptions.py +0 -0
  123. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/ipam_diff_parser.py +0 -0
  124. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/merger/__init__.py +0 -0
  125. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/merger/merger.py +0 -0
  126. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/merger/model.py +0 -0
  127. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/merger/serializer.py +0 -0
  128. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/model/__init__.py +0 -0
  129. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/model/diff.py +0 -0
  130. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/model/field_specifiers_map.py +0 -0
  131. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/model/path.py +0 -0
  132. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/models.py +0 -0
  133. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/parent_node_adder.py +0 -0
  134. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/payload_builder.py +0 -0
  135. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/__init__.py +0 -0
  136. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/all_conflicts.py +0 -0
  137. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/artifact.py +0 -0
  138. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/delete_query.py +0 -0
  139. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/diff_get.py +0 -0
  140. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
  141. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/drop_nodes.py +0 -0
  142. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/field_specifiers.py +0 -0
  143. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/field_summary.py +0 -0
  144. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/filters.py +0 -0
  145. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
  146. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/has_conflicts_query.py +0 -0
  147. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/merge.py +0 -0
  148. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/merge_tracking_id.py +0 -0
  149. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/roots_metadata.py +0 -0
  150. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/save.py +0 -0
  151. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/summary_counts_enricher.py +0 -0
  152. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/time_range_query.py +0 -0
  153. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
  154. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/query_parser.py +0 -0
  155. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/repository/__init__.py +0 -0
  156. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/repository/deserializer.py +0 -0
  157. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/repository/repository.py +0 -0
  158. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/diff/tasks.py +0 -0
  159. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/enums.py +0 -0
  160. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/graph/constraints.py +0 -0
  161. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/graph/index.py +0 -0
  162. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/graph/schema.py +0 -0
  163. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/initialization.py +0 -0
  164. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/integrity/__init__.py +0 -0
  165. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
  166. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
  167. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/__init__.py +0 -0
  168. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/constants.py +0 -0
  169. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
  170. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/model.py +0 -0
  171. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/reconciler.py +0 -0
  172. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/size.py +0 -0
  173. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/tasks.py +0 -0
  174. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/ipam/utilization.py +0 -0
  175. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/manager.py +0 -0
  176. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/merge.py +0 -0
  177. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/__init__.py +0 -0
  178. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
  179. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
  180. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
  181. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
  182. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
  183. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
  184. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
  185. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
  186. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
  187. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
  188. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
  189. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
  190. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
  191. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
  192. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
  193. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
  194. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
  195. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
  196. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m019_restore_rels_to_time.py +0 -0
  197. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m020_duplicate_edges.py +0 -0
  198. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +0 -0
  199. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m022_add_generate_template_attr.py +0 -0
  200. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m023_deduplicate_cardinality_one_relationships.py +0 -0
  201. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +0 -0
  202. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m025_uniqueness_nulls.py +0 -0
  203. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m026_0000_prefix_fix.py +0 -0
  204. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m027_delete_isolated_nodes.py +0 -0
  205. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m028_delete_diffs.py +0 -0
  206. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m029_duplicates_cleanup.py +0 -0
  207. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m030_illegal_edges.py +0 -0
  208. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m031_check_number_attributes.py +0 -0
  209. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m032_cleanup_orphaned_branch_relationships.py +0 -0
  210. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/graph/m034_find_orphaned_schema_fields.py +0 -0
  211. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/__init__.py +0 -0
  212. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
  213. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
  214. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
  215. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
  216. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
  217. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
  218. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
  219. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
  220. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/models.py +0 -0
  221. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
  222. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
  223. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
  224. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
  225. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
  226. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
  227. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/migrations/shared.py +0 -0
  228. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/models.py +0 -0
  229. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/__init__.py +0 -0
  230. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/base.py +0 -0
  231. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/constraints/__init__.py +0 -0
  232. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
  233. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +0 -0
  234. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/constraints/interface.py +0 -0
  235. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/create.py +0 -0
  236. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/delete_validator.py +0 -0
  237. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/ipam.py +0 -0
  238. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/permissions.py +0 -0
  239. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
  240. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/node/standard.py +0 -0
  241. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/path.py +0 -0
  242. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/property.py +0 -0
  243. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/protocols.py +0 -0
  244. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/protocols_base.py +0 -0
  245. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/__init__.py +0 -0
  246. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/attribute.py +0 -0
  247. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/delete.py +0 -0
  248. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/diff.py +0 -0
  249. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/ipam.py +0 -0
  250. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/relationship.py +0 -0
  251. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/resource_manager.py +0 -0
  252. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/standard_node.py +0 -0
  253. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/subquery.py +0 -0
  254. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/task.py +0 -0
  255. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/task_log.py +0 -0
  256. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/query/utils.py +0 -0
  257. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/registry.py +0 -0
  258. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/__init__.py +0 -0
  259. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
  260. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/count.py +0 -0
  261. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
  262. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
  263. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/peer_parent.py +0 -0
  264. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/peer_relatives.py +0 -0
  265. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
  266. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/relationship/model.py +0 -0
  267. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/root.py +0 -0
  268. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/__init__.py +0 -0
  269. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/attribute_parameters.py +0 -0
  270. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/attribute_schema.py +0 -0
  271. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/basenode_schema.py +0 -0
  272. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/computed_attribute.py +0 -0
  273. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/constants.py +0 -0
  274. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
  275. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/__init__.py +0 -0
  276. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/account.py +0 -0
  277. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/artifact.py +0 -0
  278. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/builtin.py +0 -0
  279. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/check.py +0 -0
  280. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/core.py +0 -0
  281. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/generator.py +0 -0
  282. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/graphql_query.py +0 -0
  283. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/group.py +0 -0
  284. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/ipam.py +0 -0
  285. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/lineage.py +0 -0
  286. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/menu.py +0 -0
  287. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/permission.py +0 -0
  288. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/profile.py +0 -0
  289. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/propose_change.py +0 -0
  290. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/propose_change_comment.py +0 -0
  291. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/propose_change_validator.py +0 -0
  292. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/repository.py +0 -0
  293. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/resource_pool.py +0 -0
  294. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/template.py +0 -0
  295. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/transform.py +0 -0
  296. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/core/webhook.py +0 -0
  297. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
  298. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/definitions/internal.py +0 -0
  299. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/dropdown.py +0 -0
  300. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/__init__.py +0 -0
  301. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
  302. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
  303. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
  304. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
  305. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
  306. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/generic_schema.py +0 -0
  307. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/manager.py +0 -0
  308. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/node_schema.py +0 -0
  309. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/profile_schema.py +0 -0
  310. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/relationship_schema.py +0 -0
  311. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/schema_branch.py +0 -0
  312. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
  313. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/schema/template_schema.py +0 -0
  314. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/task/__init__.py +0 -0
  315. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/task/task.py +0 -0
  316. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/task/task_log.py +0 -0
  317. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/task/user_task.py +0 -0
  318. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/timestamp.py +0 -0
  319. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/utils.py +0 -0
  320. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/__init__.py +0 -0
  321. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
  322. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
  323. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/choices.py +0 -0
  324. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/enum.py +0 -0
  325. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/kind.py +0 -0
  326. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/length.py +0 -0
  327. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/min_max.py +0 -0
  328. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/number_pool.py +0 -0
  329. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/optional.py +0 -0
  330. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/regex.py +0 -0
  331. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/attribute/unique.py +0 -0
  332. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/checks_runner.py +0 -0
  333. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/determiner.py +0 -0
  334. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/enum.py +0 -0
  335. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/interface.py +0 -0
  336. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/model.py +0 -0
  337. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/models/__init__.py +0 -0
  338. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
  339. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/models/violation.py +0 -0
  340. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/__init__.py +0 -0
  341. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/attribute.py +0 -0
  342. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
  343. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
  344. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
  345. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/node/relationship.py +0 -0
  346. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/query.py +0 -0
  347. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
  348. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/relationship/count.py +0 -0
  349. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/relationship/optional.py +0 -0
  350. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/relationship/peer.py +0 -0
  351. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/shared.py +0 -0
  352. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/tasks.py +0 -0
  353. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
  354. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
  355. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
  356. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
  357. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/core/validators/uniqueness/query.py +0 -0
  358. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/__init__.py +0 -0
  359. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/index.py +0 -0
  360. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/memgraph.py +0 -0
  361. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/metrics.py +0 -0
  362. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/neo4j.py +0 -0
  363. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/database/validation.py +0 -0
  364. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/__init__.py +0 -0
  365. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
  366. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
  367. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -0
  368. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
  369. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
  370. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
  371. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
  372. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
  373. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
  374. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_parent.py +0 -0
  375. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_relatives.py +0 -0
  376. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
  377. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
  378. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
  379. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
  380. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
  381. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
  382. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
  383. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
  384. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
  385. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
  386. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
  387. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
  388. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
  389. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
  390. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
  391. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
  392. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_peer.py +0 -0
  393. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
  394. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
  395. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
  396. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
  397. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
  398. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
  399. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
  400. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -0
  401. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
  402. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
  403. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
  404. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
  405. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
  406. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
  407. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
  408. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
  409. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
  410. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
  411. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -0
  412. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
  413. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/locker.py +0 -0
  414. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/parent_node_adder.py +0 -0
  415. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
  416. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
  417. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
  418. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
  419. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
  420. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/component/__init__.py +0 -0
  421. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/component/exceptions.py +0 -0
  422. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/component/registry.py +0 -0
  423. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/interface.py +0 -0
  424. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/dependencies/registry.py +0 -0
  425. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/__init__.py +0 -0
  426. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/artifact_action.py +0 -0
  427. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/branch_action.py +0 -0
  428. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/constants.py +0 -0
  429. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/generator.py +0 -0
  430. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/group_action.py +0 -0
  431. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/models.py +0 -0
  432. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/node_action.py +0 -0
  433. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/repository_action.py +0 -0
  434. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/schema_action.py +0 -0
  435. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/utils.py +0 -0
  436. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/events/validator_action.py +0 -0
  437. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/exceptions.py +0 -0
  438. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/generators/__init__.py +0 -0
  439. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/generators/models.py +0 -0
  440. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/generators/tasks.py +0 -0
  441. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/__init__.py +0 -0
  442. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/base.py +0 -0
  443. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/constants.py +0 -0
  444. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/directory.py +0 -0
  445. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/integrator.py +0 -0
  446. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/models.py +0 -0
  447. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/repository.py +0 -0
  448. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/tasks.py +0 -0
  449. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/utils.py +0 -0
  450. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git/worktree.py +0 -0
  451. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git_credential/__init__.py +0 -0
  452. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git_credential/askpass.py +0 -0
  453. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/git_credential/helper.py +0 -0
  454. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/__init__.py +0 -0
  455. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/analyzer.py +0 -0
  456. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/api/__init__.py +0 -0
  457. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/api/dependencies.py +0 -0
  458. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/api/endpoints.py +0 -0
  459. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/app.py +0 -0
  460. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/__init__.py +0 -0
  461. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
  462. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
  463. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
  464. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
  465. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
  466. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
  467. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
  468. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
  469. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/constants.py +0 -0
  470. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/directives.py +0 -0
  471. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/enums.py +0 -0
  472. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/initialization.py +0 -0
  473. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/loaders/__init__.py +0 -0
  474. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/loaders/node.py +0 -0
  475. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/loaders/peers.py +0 -0
  476. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/loaders/shared.py +0 -0
  477. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/manager.py +0 -0
  478. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/metrics.py +0 -0
  479. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/models.py +0 -0
  480. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/__init__.py +0 -0
  481. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/account.py +0 -0
  482. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/action.py +0 -0
  483. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
  484. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/attribute.py +0 -0
  485. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/branch.py +0 -0
  486. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/computed_attribute.py +0 -0
  487. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/convert_object_type.py +0 -0
  488. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/diff.py +0 -0
  489. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
  490. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/generator.py +0 -0
  491. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
  492. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/ipam.py +0 -0
  493. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/main.py +0 -0
  494. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/menu.py +0 -0
  495. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/models.py +0 -0
  496. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
  497. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
  498. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
  499. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
  500. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
  501. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
  502. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/relationship.py +0 -0
  503. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/repository.py +0 -0
  504. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
  505. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/tasks.py +0 -0
  506. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/mutations/webhook.py +0 -0
  507. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/parser.py +0 -0
  508. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/permissions.py +0 -0
  509. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/__init__.py +0 -0
  510. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/account.py +0 -0
  511. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/branch.py +0 -0
  512. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/convert_object_type_mapping.py +0 -0
  513. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
  514. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
  515. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/event.py +0 -0
  516. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/internal.py +0 -0
  517. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/ipam.py +0 -0
  518. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/relationship.py +0 -0
  519. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/resource_manager.py +0 -0
  520. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/search.py +0 -0
  521. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/status.py +0 -0
  522. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/queries/task.py +0 -0
  523. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
  524. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/resolvers/many_relationship.py +0 -0
  525. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
  526. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
  527. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/subscription/__init__.py +0 -0
  528. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/subscription/events.py +0 -0
  529. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
  530. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/__init__.py +0 -0
  531. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/attribute.py +0 -0
  532. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/branch.py +0 -0
  533. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/common.py +0 -0
  534. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/context.py +0 -0
  535. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/enums.py +0 -0
  536. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/event.py +0 -0
  537. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/interface.py +0 -0
  538. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/node.py +0 -0
  539. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/permission.py +0 -0
  540. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/relationship.py +0 -0
  541. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/standard_node.py +0 -0
  542. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/task.py +0 -0
  543. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/types/task_log.py +0 -0
  544. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/graphql/utils.py +0 -0
  545. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/groups/__init__.py +0 -0
  546. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/groups/ancestors.py +0 -0
  547. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/groups/models.py +0 -0
  548. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/groups/parsers.py +0 -0
  549. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/groups/tasks.py +0 -0
  550. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/helpers.py +0 -0
  551. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/lock.py +0 -0
  552. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/log.py +0 -0
  553. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/__init__.py +0 -0
  554. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/constants.py +0 -0
  555. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/generator.py +0 -0
  556. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/menu.py +0 -0
  557. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/models.py +0 -0
  558. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/repository.py +0 -0
  559. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/menu/utils.py +0 -0
  560. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/__init__.py +0 -0
  561. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/__init__.py +0 -0
  562. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
  563. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
  564. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
  565. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
  566. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
  567. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
  568. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/__init__.py +0 -0
  569. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
  570. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/git/file.py +0 -0
  571. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
  572. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
  573. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
  574. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
  575. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
  576. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/message_bus/types.py +0 -0
  577. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/middleware.py +0 -0
  578. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/models.py +0 -0
  579. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/__init__.py +0 -0
  580. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/constants.py +0 -0
  581. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/edge_adder.py +0 -0
  582. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/edge_deleter.py +0 -0
  583. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/edge_updater.py +0 -0
  584. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/models.py +0 -0
  585. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/plan_reader.py +0 -0
  586. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/plan_writer.py +0 -0
  587. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/queries/__init__.py +0 -0
  588. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/queries/base.py +0 -0
  589. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/queries/delete_duplicated_edges.py +0 -0
  590. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/runner.py +0 -0
  591. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/vertex_adder.py +0 -0
  592. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/vertex_deleter.py +0 -0
  593. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/patch/vertex_updater.py +0 -0
  594. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/backend.py +0 -0
  595. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/constants.py +0 -0
  596. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/globals.py +0 -0
  597. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/local_backend.py +0 -0
  598. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/manager.py +0 -0
  599. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/report.py +0 -0
  600. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/permissions/types.py +0 -0
  601. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/__init__.py +0 -0
  602. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/address.py +0 -0
  603. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/models.py +0 -0
  604. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/number.py +0 -0
  605. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/prefix.py +0 -0
  606. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/registration.py +0 -0
  607. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pools/tasks.py +0 -0
  608. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/prefect_server/__init__.py +0 -0
  609. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/prefect_server/app.py +0 -0
  610. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/prefect_server/database.py +0 -0
  611. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/prefect_server/events.py +0 -0
  612. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/prefect_server/models.py +0 -0
  613. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/proposed_change/__init__.py +0 -0
  614. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/proposed_change/branch_diff.py +0 -0
  615. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/proposed_change/constants.py +0 -0
  616. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/proposed_change/models.py +0 -0
  617. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/proposed_change/tasks.py +0 -0
  618. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/pytest_plugin.py +0 -0
  619. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/schema/__init__.py +0 -0
  620. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/schema/tasks.py +0 -0
  621. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/schema/triggers.py +0 -0
  622. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/serve/__init__.py +0 -0
  623. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/serve/gunicorn_config.py +0 -0
  624. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/serve/log.py +0 -0
  625. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/serve/worker.py +0 -0
  626. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/server.py +0 -0
  627. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/__init__.py +0 -0
  628. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/__init__.py +0 -0
  629. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
  630. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/cache/nats.py +0 -0
  631. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/cache/redis.py +0 -0
  632. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/event/__init__.py +0 -0
  633. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/http/__init__.py +0 -0
  634. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/http/httpx.py +0 -0
  635. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
  636. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
  637. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
  638. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
  639. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
  640. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/workflow/local.py +0 -0
  641. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
  642. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/component.py +0 -0
  643. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/protocols.py +0 -0
  644. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/services/scheduler.py +0 -0
  645. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/storage.py +0 -0
  646. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/task_manager/__init__.py +0 -0
  647. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/task_manager/constants.py +0 -0
  648. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/task_manager/event.py +0 -0
  649. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/task_manager/models.py +0 -0
  650. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/task_manager/task.py +0 -0
  651. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/__init__.py +0 -0
  652. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/artifact.py +0 -0
  653. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/check.py +0 -0
  654. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/dummy.py +0 -0
  655. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/keepalive.py +0 -0
  656. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/recurring.py +0 -0
  657. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/tasks/registry.py +0 -0
  658. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/__init__.py +0 -0
  659. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/constants.py +0 -0
  660. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/database.py +0 -0
  661. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/models.py +0 -0
  662. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/task_manager.py +0 -0
  663. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/tasks.py +0 -0
  664. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/telemetry/utils.py +0 -0
  665. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trace.py +0 -0
  666. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/transformations/__init__.py +0 -0
  667. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/transformations/constants.py +0 -0
  668. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/transformations/models.py +0 -0
  669. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/transformations/tasks.py +0 -0
  670. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/__init__.py +0 -0
  671. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/catalogue.py +0 -0
  672. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/constants.py +0 -0
  673. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/models.py +0 -0
  674. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/setup.py +0 -0
  675. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/trigger/tasks.py +0 -0
  676. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/types.py +0 -0
  677. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/utils.py +0 -0
  678. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/validators/__init__.py +0 -0
  679. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/validators/events.py +0 -0
  680. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/validators/tasks.py +0 -0
  681. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/visuals.py +0 -0
  682. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/webhook/__init__.py +0 -0
  683. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/webhook/gather.py +0 -0
  684. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/webhook/models.py +0 -0
  685. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/webhook/tasks.py +0 -0
  686. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/webhook/triggers.py +0 -0
  687. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/worker.py +0 -0
  688. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workers/__init__.py +0 -0
  689. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workers/infrahub_async.py +0 -0
  690. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workers/utils.py +0 -0
  691. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/__init__.py +0 -0
  692. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/catalogue.py +0 -0
  693. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/constants.py +0 -0
  694. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/initialization.py +0 -0
  695. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/models.py +0 -0
  696. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/backend/infrahub/workflows/utils.py +0 -0
  697. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/__init__.py +0 -0
  698. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/_importer.py +0 -0
  699. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/analyzer.py +0 -0
  700. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/async_typer.py +0 -0
  701. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/batch.py +0 -0
  702. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/branch.py +0 -0
  703. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/checks.py +0 -0
  704. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/client.py +0 -0
  705. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/config.py +0 -0
  706. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/constants.py +0 -0
  707. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/context.py +0 -0
  708. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/__init__.py +0 -0
  709. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
  710. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
  711. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
  712. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/cli_commands.py +0 -0
  713. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
  714. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
  715. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
  716. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
  717. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
  718. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
  719. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
  720. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
  721. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
  722. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
  723. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
  724. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
  725. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
  726. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
  727. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
  728. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/data.py +0 -0
  729. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/diff.py +0 -0
  730. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/exceptions.py +0 -0
  731. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/generator.py +0 -0
  732. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/graphql.py +0 -0
  733. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/groups.py +0 -0
  734. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/jinja2.py +0 -0
  735. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/__init__.py +0 -0
  736. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/attribute.py +0 -0
  737. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/constants.py +0 -0
  738. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/node.py +0 -0
  739. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/parsers.py +0 -0
  740. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/property.py +0 -0
  741. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/related_node.py +0 -0
  742. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/node/relationship.py +0 -0
  743. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/object_store.py +0 -0
  744. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/operation.py +0 -0
  745. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/playback.py +0 -0
  746. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols.py +0 -0
  747. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
  748. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols_generator/__init__.py +0 -0
  749. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols_generator/constants.py +0 -0
  750. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols_generator/generator.py +0 -0
  751. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/protocols_generator/template.j2 +0 -0
  752. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/__init__.py +0 -0
  753. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
  754. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
  755. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
  756. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
  757. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
  758. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
  759. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
  760. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
  761. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
  762. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
  763. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
  764. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/queries.py +0 -0
  765. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/query_groups.py +0 -0
  766. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/recorder.py +0 -0
  767. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/repository.py +0 -0
  768. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
  769. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/schema/main.py +0 -0
  770. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
  771. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/spec/__init__.py +0 -0
  772. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
  773. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/spec/object.py +0 -0
  774. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/store.py +0 -0
  775. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/task/__init__.py +0 -0
  776. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/task/constants.py +0 -0
  777. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/task/exceptions.py +0 -0
  778. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/task/manager.py +0 -0
  779. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/task/models.py +0 -0
  780. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/template/__init__.py +0 -0
  781. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/template/exceptions.py +0 -0
  782. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/template/filters.py +0 -0
  783. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/template/models.py +0 -0
  784. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/__init__.py +0 -0
  785. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
  786. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
  787. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
  788. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
  789. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
  790. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/timestamp.py +0 -0
  791. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
  792. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
  793. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
  794. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
  795. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
  796. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
  797. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
  798. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
  799. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
  800. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
  801. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
  802. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/transforms.py +0 -0
  803. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/types.py +0 -0
  804. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/uuidt.py +0 -0
  805. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_sdk/infrahub_sdk/yaml.py +0 -0
  806. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
  807. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/constants.py +0 -0
  808. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/container.py +0 -0
  809. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/docker-compose-cluster.test.yml +0 -0
  810. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +0 -0
  811. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/haproxy.cfg +0 -0
  812. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/helpers.py +0 -0
  813. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/host.py +0 -0
  814. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/measurements.py +0 -0
  815. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/models.py +0 -0
  816. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/performance_test.py +0 -0
  817. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/plugin.py +0 -0
  818. {infrahub_server-1.3.6 → infrahub_server-1.3.7}/python_testcontainers/infrahub_testcontainers/prometheus.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: infrahub-server
3
- Version: 1.3.6
3
+ Version: 1.3.7
4
4
  Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
5
5
  License: Apache-2.0
6
6
  Author: OpsMill
@@ -36,6 +36,7 @@ from infrahub.events import EventMeta
36
36
  from infrahub.events.schema_action import SchemaUpdatedEvent
37
37
  from infrahub.exceptions import MigrationError
38
38
  from infrahub.log import get_log_data, get_logger
39
+ from infrahub.permissions import define_global_permission_from_branch
39
40
  from infrahub.types import ATTRIBUTE_PYTHON_TYPES
40
41
  from infrahub.worker import WORKER_IDENTITY
41
42
  from infrahub.workflows.catalogue import SCHEMA_APPLY_MIGRATION, SCHEMA_VALIDATE_MIGRATION
@@ -287,13 +288,8 @@ async def load_schema(
287
288
  context: InfrahubContext = Depends(get_context),
288
289
  ) -> SchemaUpdate:
289
290
  permission_manager.raise_for_permission(
290
- permission=GlobalPermission(
291
- action=GlobalPermissions.MANAGE_SCHEMA.value,
292
- decision=(
293
- PermissionDecision.ALLOW_DEFAULT
294
- if branch.name in (GLOBAL_BRANCH_NAME, registry.default_branch)
295
- else PermissionDecision.ALLOW_OTHER
296
- ).value,
291
+ permission=define_global_permission_from_branch(
292
+ permission=GlobalPermissions.MANAGE_SCHEMA, branch_name=branch.name
297
293
  )
298
294
  )
299
295
 
@@ -0,0 +1 @@
1
+ GRAPH_VERSION = 35
@@ -36,6 +36,7 @@ from .m031_check_number_attributes import Migration031
36
36
  from .m032_cleanup_orphaned_branch_relationships import Migration032
37
37
  from .m033_deduplicate_relationship_vertices import Migration033
38
38
  from .m034_find_orphaned_schema_fields import Migration034
39
+ from .m035_orphan_relationships import Migration035
39
40
 
40
41
  if TYPE_CHECKING:
41
42
  from infrahub.core.root import Root
@@ -77,6 +78,7 @@ MIGRATIONS: list[type[GraphMigration | InternalSchemaMigration | ArbitraryMigrat
77
78
  Migration032,
78
79
  Migration033,
79
80
  Migration034,
81
+ Migration035,
80
82
  ]
81
83
 
82
84
 
@@ -89,7 +89,7 @@ class Migration033(GraphMigration):
89
89
  """
90
90
 
91
91
  name: str = "033_deduplicate_relationship_vertices"
92
- minimum_version: int = 31
92
+ minimum_version: int = 32
93
93
  queries: Sequence[type[Query]] = [DeduplicateRelationshipVerticesQuery]
94
94
 
95
95
  async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
@@ -0,0 +1,43 @@
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
+
7
+ from ...query import Query, QueryType
8
+
9
+ if TYPE_CHECKING:
10
+ from infrahub.database import InfrahubDatabase
11
+
12
+
13
+ class CleanupOrphanedRelationshipsQuery(Query):
14
+ name = "cleanup_orphaned_relationships"
15
+ type = QueryType.WRITE
16
+ insert_return = False
17
+
18
+ async def query_init(self, db: InfrahubDatabase, **kwargs: dict[str, Any]) -> None: # noqa: ARG002
19
+ query = """
20
+ MATCH (rel:Relationship)-[:IS_RELATED]-(peer:Node)
21
+ WITH DISTINCT rel, peer.uuid AS p_uuid
22
+ WITH rel, count(*) AS num_peers
23
+ WHERE num_peers < 2
24
+ DETACH DELETE rel
25
+ """
26
+ self.add_to_query(query)
27
+
28
+
29
+ class Migration035(GraphMigration):
30
+ """
31
+ Remove Relationship vertices that only have a single peer
32
+ """
33
+
34
+ name: str = "035_clean_up_orphaned_relationships"
35
+ minimum_version: int = 34
36
+ queries: Sequence[type[Query]] = [CleanupOrphanedRelationshipsQuery]
37
+
38
+ async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
39
+ return MigrationResult()
40
+
41
+ async def execute(self, db: InfrahubDatabase) -> MigrationResult:
42
+ # overrides parent class to skip transaction in case there are a lot of relationships to delete
43
+ return await self.do_execute(db=db)
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import ipaddress
4
4
  from typing import TYPE_CHECKING, Any
5
5
 
6
+ from infrahub import lock
6
7
  from infrahub.core import registry
7
8
  from infrahub.core.ipam.reconciler import IpamReconciler
8
9
  from infrahub.core.query.ipam import get_ip_addresses
@@ -33,54 +34,55 @@ class CoreIPAddressPool(Node):
33
34
  prefixlen: int | None = None,
34
35
  at: Timestamp | None = None,
35
36
  ) -> Node:
36
- # Check if there is already a resource allocated with this identifier
37
- # if not, pull all existing prefixes and allocated the next available
38
-
39
- if identifier:
40
- query_get = await IPAddressPoolGetReserved.init(db=db, pool_id=self.id, identifier=identifier)
41
- await query_get.execute(db=db)
42
- result = query_get.get_result()
43
-
44
- if result:
45
- address = result.get_node("address")
46
- # TODO add support for branch, if the node is reserved with this id in another branch we should return an error
47
- node = await registry.manager.get_one(db=db, id=address.get("uuid"), branch=branch)
48
-
49
- if node:
50
- return node
51
-
52
- data = data or {}
53
-
54
- address_type = address_type or data.get("address_type") or self.default_address_type.value # type: ignore[attr-defined]
55
- if not address_type:
56
- raise ValueError(
57
- f"IPAddressPool: {self.name.value} | " # type: ignore[attr-defined]
58
- "An address_type or a default_value type must be provided to allocate a new IP address"
59
- )
60
-
61
- ip_namespace = await self.ip_namespace.get_peer(db=db) # type: ignore[attr-defined]
62
-
63
- prefixlen = prefixlen or data.get("prefixlen") or self.default_prefix_length.value # type: ignore[attr-defined]
64
-
65
- next_address = await self.get_next(db=db, prefixlen=prefixlen)
66
-
67
- target_schema = registry.get_node_schema(name=address_type, branch=branch)
68
- node = await Node.init(db=db, schema=target_schema, branch=branch, at=at)
69
- try:
70
- await node.new(db=db, address=str(next_address), ip_namespace=ip_namespace, **data)
71
- except ValidationError as exc:
72
- raise ValueError(f"IPAddressPool: {self.name.value} | {exc!s}") from exc # type: ignore[attr-defined]
73
- await node.save(db=db, at=at)
74
- reconciler = IpamReconciler(db=db, branch=branch)
75
- await reconciler.reconcile(ip_value=next_address, namespace=ip_namespace.id, node_uuid=node.get_id())
76
-
77
- if identifier:
78
- query_set = await IPAddressPoolSetReserved.init(
79
- db=db, pool_id=self.id, identifier=identifier, address_id=node.id, at=at
80
- )
81
- await query_set.execute(db=db)
82
-
83
- return node
37
+ async with lock.registry.get(name=self.get_id(), namespace="resource_pool"):
38
+ # Check if there is already a resource allocated with this identifier
39
+ # if not, pull all existing prefixes and allocated the next available
40
+
41
+ if identifier:
42
+ query_get = await IPAddressPoolGetReserved.init(db=db, pool_id=self.id, identifier=identifier)
43
+ await query_get.execute(db=db)
44
+ result = query_get.get_result()
45
+
46
+ if result:
47
+ address = result.get_node("address")
48
+ # TODO add support for branch, if the node is reserved with this id in another branch we should return an error
49
+ node = await registry.manager.get_one(db=db, id=address.get("uuid"), branch=branch)
50
+
51
+ if node:
52
+ return node
53
+
54
+ data = data or {}
55
+
56
+ address_type = address_type or data.get("address_type") or self.default_address_type.value # type: ignore[attr-defined]
57
+ if not address_type:
58
+ raise ValueError(
59
+ f"IPAddressPool: {self.name.value} | " # type: ignore[attr-defined]
60
+ "An address_type or a default_value type must be provided to allocate a new IP address"
61
+ )
62
+
63
+ ip_namespace = await self.ip_namespace.get_peer(db=db) # type: ignore[attr-defined]
64
+
65
+ prefixlen = prefixlen or data.get("prefixlen") or self.default_prefix_length.value # type: ignore[attr-defined]
66
+
67
+ next_address = await self.get_next(db=db, prefixlen=prefixlen)
68
+
69
+ target_schema = registry.get_node_schema(name=address_type, branch=branch)
70
+ node = await Node.init(db=db, schema=target_schema, branch=branch, at=at)
71
+ try:
72
+ await node.new(db=db, address=str(next_address), ip_namespace=ip_namespace, **data)
73
+ except ValidationError as exc:
74
+ raise ValueError(f"IPAddressPool: {self.name.value} | {exc!s}") from exc # type: ignore[attr-defined]
75
+ await node.save(db=db, at=at)
76
+ reconciler = IpamReconciler(db=db, branch=branch)
77
+ await reconciler.reconcile(ip_value=next_address, namespace=ip_namespace.id, node_uuid=node.get_id())
78
+
79
+ if identifier:
80
+ query_set = await IPAddressPoolSetReserved.init(
81
+ db=db, pool_id=self.id, identifier=identifier, address_id=node.id, at=at
82
+ )
83
+ await query_set.execute(db=db)
84
+
85
+ return node
84
86
 
85
87
  async def get_next(self, db: InfrahubDatabase, prefixlen: int | None = None) -> IPAddressType:
86
88
  resources = await self.resources.get_peers(db=db) # type: ignore[attr-defined]
@@ -0,0 +1,124 @@
1
+ from __future__ import annotations
2
+
3
+ import ipaddress
4
+ from typing import TYPE_CHECKING, Any
5
+
6
+ from netaddr import IPSet
7
+
8
+ from infrahub import lock
9
+ from infrahub.core import registry
10
+ from infrahub.core.ipam.reconciler import IpamReconciler
11
+ from infrahub.core.query.ipam import get_subnets
12
+ from infrahub.core.query.resource_manager import (
13
+ PrefixPoolGetReserved,
14
+ PrefixPoolSetReserved,
15
+ )
16
+ from infrahub.exceptions import ValidationError
17
+ from infrahub.pools.prefix import get_next_available_prefix
18
+
19
+ from .. import Node
20
+
21
+ if TYPE_CHECKING:
22
+ from infrahub.core.branch import Branch
23
+ from infrahub.core.ipam.constants import IPNetworkType
24
+ from infrahub.core.timestamp import Timestamp
25
+ from infrahub.database import InfrahubDatabase
26
+
27
+
28
+ class CoreIPPrefixPool(Node):
29
+ async def get_resource(
30
+ self,
31
+ db: InfrahubDatabase,
32
+ branch: Branch,
33
+ identifier: str | None = None,
34
+ data: dict[str, Any] | None = None,
35
+ prefixlen: int | None = None,
36
+ member_type: str | None = None,
37
+ prefix_type: str | None = None,
38
+ at: Timestamp | None = None,
39
+ ) -> Node:
40
+ async with lock.registry.get(name=self.get_id(), namespace="resource_pool"):
41
+ # Check if there is already a resource allocated with this identifier
42
+ # if not, pull all existing prefixes and allocated the next available
43
+ if identifier:
44
+ query_get = await PrefixPoolGetReserved.init(db=db, pool_id=self.id, identifier=identifier)
45
+ await query_get.execute(db=db)
46
+ result = query_get.get_result()
47
+ if result:
48
+ prefix = result.get_node("prefix")
49
+ # TODO add support for branch, if the node is reserved with this id in another branch we should return an error
50
+ node = await registry.manager.get_one(db=db, id=prefix.get("uuid"), branch=branch)
51
+ if node:
52
+ return node
53
+
54
+ ip_namespace = await self.ip_namespace.get_peer(db=db) # type: ignore[attr-defined]
55
+
56
+ data = data or {}
57
+
58
+ prefixlen = prefixlen or data.get("prefixlen", None) or self.default_prefix_length.value # type: ignore[attr-defined]
59
+ if not prefixlen:
60
+ raise ValueError(
61
+ f"IPPrefixPool: {self.name.value} | " # type: ignore[attr-defined]
62
+ "A prefixlen or a default_value must be provided to allocate a new prefix"
63
+ )
64
+
65
+ next_prefix = await self.get_next(db=db, prefixlen=prefixlen)
66
+
67
+ prefix_type = prefix_type or data.get("prefix_type", None) or self.default_prefix_type.value # type: ignore[attr-defined]
68
+ if not prefix_type:
69
+ raise ValueError(
70
+ f"IPPrefixPool: {self.name.value} | " # type: ignore[attr-defined]
71
+ "A prefix_type or a default_value type must be provided to allocate a new prefix"
72
+ )
73
+
74
+ member_type = member_type or data.get("member_type", None) or self.default_member_type.value.value # type: ignore[attr-defined]
75
+ data["member_type"] = member_type
76
+
77
+ target_schema = registry.get_node_schema(name=prefix_type, branch=branch)
78
+ node = await Node.init(db=db, schema=target_schema, branch=branch, at=at)
79
+ try:
80
+ await node.new(db=db, prefix=str(next_prefix), ip_namespace=ip_namespace, **data)
81
+ except ValidationError as exc:
82
+ raise ValueError(f"IPPrefixPool: {self.name.value} | {exc!s}") from exc # type: ignore[attr-defined]
83
+ await node.save(db=db, at=at)
84
+ reconciler = IpamReconciler(db=db, branch=branch)
85
+ await reconciler.reconcile(ip_value=next_prefix, namespace=ip_namespace.id, node_uuid=node.get_id())
86
+
87
+ if identifier:
88
+ query_set = await PrefixPoolSetReserved.init(
89
+ db=db, pool_id=self.id, identifier=identifier, prefix_id=node.id, at=at
90
+ )
91
+ await query_set.execute(db=db)
92
+
93
+ return node
94
+
95
+ async def get_next(self, db: InfrahubDatabase, prefixlen: int) -> IPNetworkType:
96
+ resources = await self.resources.get_peers(db=db) # type: ignore[attr-defined]
97
+ ip_namespace = await self.ip_namespace.get_peer(db=db) # type: ignore[attr-defined]
98
+
99
+ try:
100
+ weighted_resources = sorted(resources.values(), key=lambda r: r.allocation_weight.value or 0, reverse=True)
101
+ except AttributeError:
102
+ weighted_resources = list(resources.values())
103
+
104
+ for resource in weighted_resources:
105
+ subnets = await get_subnets(
106
+ db=db,
107
+ ip_prefix=ipaddress.ip_network(resource.prefix.value), # type: ignore[attr-defined]
108
+ namespace=ip_namespace,
109
+ branch=self._branch,
110
+ branch_agnostic=True,
111
+ )
112
+
113
+ pool = IPSet([resource.prefix.value])
114
+ for subnet in subnets:
115
+ pool.remove(addr=str(subnet.prefix))
116
+
117
+ try:
118
+ prefix_ver = ipaddress.ip_network(resource.prefix.value).version
119
+ next_available = get_next_available_prefix(pool=pool, prefix_length=prefixlen, prefix_ver=prefix_ver)
120
+ return next_available
121
+ except ValueError:
122
+ continue
123
+
124
+ raise IndexError("No more resources available")
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
5
+ from infrahub import lock
5
6
  from infrahub.core import registry
6
7
  from infrahub.core.query.resource_manager import NumberPoolGetReserved, NumberPoolGetUsed, NumberPoolSetReserved
7
8
  from infrahub.core.schema.attribute_parameters import NumberAttributeParameters
@@ -62,24 +63,25 @@ class CoreNumberPool(Node):
62
63
  identifier: str | None = None,
63
64
  at: Timestamp | None = None,
64
65
  ) -> int:
65
- # NOTE: ideally we should use the HFID as the identifier (if available)
66
- # one of the challenge with using the HFID is that it might change over time
67
- # so we need to ensure that the identifier is stable, or we need to handle the case where the identifier changes
68
- identifier = identifier or node.get_id()
69
-
70
- # Check if there is already a resource allocated with this identifier
71
- # if not, pull all existing number and allocate the next available
72
- # TODO add support for branch, if the node is reserved with this id in another branch we should return an error
73
- query_get = await NumberPoolGetReserved.init(db=db, branch=branch, pool_id=self.id, identifier=identifier)
74
- await query_get.execute(db=db)
75
- reservation = query_get.get_reservation()
76
- if reservation is not None:
77
- return reservation
78
-
79
- # If we have not returned a value we need to find one if avaiable
80
- number = await self.get_next(db=db, branch=branch, attribute=attribute)
81
- await self.reserve(db=db, number=number, identifier=identifier, at=at)
82
- return number
66
+ async with lock.registry.get(name=self.get_id(), namespace="resource_pool"):
67
+ # NOTE: ideally we should use the HFID as the identifier (if available)
68
+ # one of the challenge with using the HFID is that it might change over time
69
+ # so we need to ensure that the identifier is stable, or we need to handle the case where the identifier changes
70
+ identifier = identifier or node.get_id()
71
+
72
+ # Check if there is already a resource allocated with this identifier
73
+ # if not, pull all existing number and allocate the next available
74
+ # TODO add support for branch, if the node is reserved with this id in another branch we should return an error
75
+ query_get = await NumberPoolGetReserved.init(db=db, branch=branch, pool_id=self.id, identifier=identifier)
76
+ await query_get.execute(db=db)
77
+ reservation = query_get.get_reservation()
78
+ if reservation is not None:
79
+ return reservation
80
+
81
+ # If we have not returned a value we need to find one if avaiable
82
+ number = await self.get_next(db=db, branch=branch, attribute=attribute)
83
+ await self.reserve(db=db, number=number, identifier=identifier, at=at)
84
+ return number
83
85
 
84
86
  async def get_next(self, db: InfrahubDatabase, branch: Branch, attribute: AttributeSchema) -> int:
85
87
  taken = await self.get_used(db=db, branch=branch)
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
5
  from infrahub import config
6
+ from infrahub.core.constants import GLOBAL_BRANCH_NAME
6
7
  from infrahub.core.query import Query, QueryType
7
8
 
8
9
  if TYPE_CHECKING:
@@ -21,33 +22,49 @@ class DeleteBranchRelationshipsQuery(Query):
21
22
 
22
23
  async def query_init(self, db: InfrahubDatabase, **kwargs: Any) -> None: # noqa: ARG002
23
24
  query = """
24
- // delete all relationships on this branch
25
- MATCH (s)-[r1]-(d)
26
- WHERE r1.branch = $branch_name
27
- CALL (r1) {
28
- DELETE r1
25
+ // --------------
26
+ // for every Node created on this branch (it's about to be deleted), find any agnostic relationships
27
+ // connected to the Node and delete them
28
+ // --------------
29
+ OPTIONAL MATCH (:Root)<-[e:IS_PART_OF {status: "active"}]-(n:Node)
30
+ WHERE e.branch = $branch_name
31
+ CALL (n) {
32
+ OPTIONAL MATCH (n)-[:IS_RELATED {branch: $global_branch_name}]-(rel:Relationship)
33
+ DETACH DELETE rel
29
34
  } IN TRANSACTIONS
30
35
 
31
- // check for any orphaned Node vertices and delete them
32
- WITH collect(DISTINCT s.uuid) + collect(DISTINCT d.uuid) AS nodes_uuids
33
- MATCH (s2:Node)-[r2]-(d2)
34
- WHERE NOT exists((s2)-[:IS_PART_OF]-(:Root))
35
- AND s2.uuid IN nodes_uuids
36
- CALL (r2) {
37
- DELETE r2
36
+ // reduce the results to a single row
37
+ WITH 1 AS one
38
+ LIMIT 1
39
+
40
+ // --------------
41
+ // for every edge on this branch, delete it
42
+ // --------------
43
+ MATCH (s)-[r]->(d)
44
+ WHERE r.branch = $branch_name
45
+ CALL (r) {
46
+ DELETE r
38
47
  } IN TRANSACTIONS
39
48
 
40
- // reduce results to a single row
41
- WITH 1 AS one LIMIT 1
42
-
43
- // find any orphaned vertices and delete them
44
- MATCH (n)
45
- WHERE NOT exists((n)--())
46
- CALL (n) {
47
- DELETE n
49
+ // --------------
50
+ // get the database IDs of every vertex linked to a deleted edge
51
+ // --------------
52
+ WITH DISTINCT elementId(s) AS s_id, elementId(d) AS d_id
53
+ WITH collect(s_id) + collect(d_id) AS vertex_ids
54
+ UNWIND vertex_ids AS vertex_id
55
+
56
+ // --------------
57
+ // delete any vertices that are now orphaned
58
+ // --------------
59
+ CALL (vertex_id) {
60
+ MATCH (n)
61
+ WHERE elementId(n) = vertex_id
62
+ AND NOT exists((n)--())
63
+ DELETE n
48
64
  } IN TRANSACTIONS
49
65
  """
50
66
  self.params["branch_name"] = self.branch_name
67
+ self.params["global_branch_name"] = GLOBAL_BRANCH_NAME
51
68
  self.add_to_query(query)
52
69
 
53
70
 
@@ -157,19 +157,21 @@ class NodeCreateAllQuery(NodeQuery):
157
157
  relationships: list[RelationshipCreateData] = []
158
158
  for rel_name in self.node._relationships:
159
159
  rel_manager: RelationshipManager = getattr(self.node, rel_name)
160
- # Fetch all relationship peers through a single database call for performances.
161
- peers = await rel_manager.get_peers(db=db, branch_agnostic=self.branch_agnostic)
160
+ if rel_manager.schema.cardinality == "many":
161
+ # Fetch all relationship peers through a single database call for performances.
162
+ peers = await rel_manager.get_peers(db=db, branch_agnostic=self.branch_agnostic)
162
163
 
163
164
  for rel in rel_manager._relationships:
164
- try:
165
- rel.set_peer(value=peers[rel.get_peer_id()])
166
- except KeyError:
167
- pass
168
- except ValueError:
169
- # Relationship has not been initialized yet, it means the peer does not exist in db yet
170
- # typically because it will be allocated from a ressource pool. In that case, the peer
171
- # will be fetched using `rel.resolve` later.
172
- pass
165
+ if rel_manager.schema.cardinality == "many":
166
+ try:
167
+ rel.set_peer(value=peers[rel.get_peer_id()])
168
+ except KeyError:
169
+ pass
170
+ except ValueError:
171
+ # Relationship has not been initialized yet, it means the peer does not exist in db yet
172
+ # typically because it will be allocated from a ressource pool. In that case, the peer
173
+ # will be fetched using `rel.resolve` later.
174
+ pass
173
175
 
174
176
  rel_create_data = await rel.get_create_data(db=db, at=at)
175
177
  if rel_create_data.peer_branch_level > deepest_branch_level or (
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  from infrahub.core.constants import GlobalPermissions, InfrahubKind
6
6
  from infrahub.core.manager import NodeManager
7
7
  from infrahub.exceptions import NodeNotFoundError, ValidationError
8
- from infrahub.permissions.globals import define_global_permission_from_branch
8
+ from infrahub.permissions import define_global_permission_from_branch
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  from .initialization import GraphqlContext
@@ -6,7 +6,7 @@ from graphene import Boolean, Field, InputObjectType, Mutation, String
6
6
 
7
7
  from infrahub import lock
8
8
  from infrahub.core import registry
9
- from infrahub.core.constants import RESTRICTED_NAMESPACES
9
+ from infrahub.core.constants import RESTRICTED_NAMESPACES, GlobalPermissions
10
10
  from infrahub.core.manager import NodeManager
11
11
  from infrahub.core.schema import DropdownChoice, GenericSchema, NodeSchema
12
12
  from infrahub.database import InfrahubDatabase, retry_db_transaction
@@ -16,6 +16,7 @@ from infrahub.exceptions import ValidationError
16
16
  from infrahub.graphql.context import apply_external_context
17
17
  from infrahub.graphql.types.context import ContextInput
18
18
  from infrahub.log import get_log_data, get_logger
19
+ from infrahub.permissions import define_global_permission_from_branch
19
20
  from infrahub.worker import WORKER_IDENTITY
20
21
 
21
22
  from ..types import DropdownFields
@@ -32,6 +33,14 @@ if TYPE_CHECKING:
32
33
  log = get_logger()
33
34
 
34
35
 
36
+ def _validate_schema_permission(graphql_context: GraphqlContext) -> None:
37
+ graphql_context.active_permissions.raise_for_permission(
38
+ permission=define_global_permission_from_branch(
39
+ permission=GlobalPermissions.MANAGE_SCHEMA, branch_name=graphql_context.branch.name
40
+ )
41
+ )
42
+
43
+
35
44
  class SchemaEnumInput(InputObjectType):
36
45
  kind = String(required=True)
37
46
  attribute = String(required=True)
@@ -69,6 +78,7 @@ class SchemaDropdownAdd(Mutation):
69
78
  ) -> Self:
70
79
  graphql_context: GraphqlContext = info.context
71
80
 
81
+ _validate_schema_permission(graphql_context=graphql_context)
72
82
  await apply_external_context(graphql_context=graphql_context, context_input=context)
73
83
 
74
84
  kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
@@ -130,6 +140,7 @@ class SchemaDropdownRemove(Mutation):
130
140
  ) -> dict[str, bool]:
131
141
  graphql_context: GraphqlContext = info.context
132
142
 
143
+ _validate_schema_permission(graphql_context=graphql_context)
133
144
  kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
134
145
  await apply_external_context(graphql_context=graphql_context, context_input=context)
135
146
 
@@ -185,6 +196,7 @@ class SchemaEnumAdd(Mutation):
185
196
  ) -> dict[str, bool]:
186
197
  graphql_context: GraphqlContext = info.context
187
198
 
199
+ _validate_schema_permission(graphql_context=graphql_context)
188
200
  kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
189
201
  await apply_external_context(graphql_context=graphql_context, context_input=context)
190
202
 
@@ -230,6 +242,7 @@ class SchemaEnumRemove(Mutation):
230
242
  ) -> dict[str, bool]:
231
243
  graphql_context: GraphqlContext = info.context
232
244
 
245
+ _validate_schema_permission(graphql_context=graphql_context)
233
246
  kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
234
247
  await apply_external_context(graphql_context=graphql_context, context_input=context)
235
248
 
@@ -21,21 +21,10 @@ from .mutations.diff import DiffUpdateMutation
21
21
  from .mutations.diff_conflict import ResolveDiffConflict
22
22
  from .mutations.generator import GeneratorDefinitionRequestRun
23
23
  from .mutations.proposed_change import ProposedChangeMerge, ProposedChangeRequestRunCheck
24
- from .mutations.relationship import (
25
- RelationshipAdd,
26
- RelationshipRemove,
27
- )
28
- from .mutations.repository import (
29
- ProcessRepository,
30
- ValidateRepositoryConnectivity,
31
- )
24
+ from .mutations.relationship import RelationshipAdd, RelationshipRemove
25
+ from .mutations.repository import ProcessRepository, ValidateRepositoryConnectivity
32
26
  from .mutations.resource_manager import IPAddressPoolGetResource, IPPrefixPoolGetResource
33
- from .mutations.schema import (
34
- SchemaDropdownAdd,
35
- SchemaDropdownRemove,
36
- SchemaEnumAdd,
37
- SchemaEnumRemove,
38
- )
27
+ from .mutations.schema import SchemaDropdownAdd, SchemaDropdownRemove, SchemaEnumAdd, SchemaEnumRemove
39
28
  from .queries import (
40
29
  AccountPermissions,
41
30
  AccountToken,
@@ -1,4 +1,5 @@
1
1
  from infrahub.permissions.backend import PermissionBackend
2
+ from infrahub.permissions.globals import define_global_permission_from_branch
2
3
  from infrahub.permissions.local_backend import LocalPermissionBackend
3
4
  from infrahub.permissions.manager import PermissionManager
4
5
  from infrahub.permissions.report import report_schema_permissions
@@ -9,6 +10,7 @@ __all__ = [
9
10
  "LocalPermissionBackend",
10
11
  "PermissionBackend",
11
12
  "PermissionManager",
13
+ "define_global_permission_from_branch",
12
14
  "get_global_permission_for_kind",
13
15
  "report_schema_permissions",
14
16
  ]
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "infrahub-server"
3
- version = "1.3.6"
3
+ version = "1.3.7"
4
4
  description = "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
  authors = ["OpsMill <info@opsmill.com>"]
6
6
  readme = "README.md"