infrahub-server 1.1.5__tar.gz → 1.1.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.
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/PKG-INFO +41 -7
- infrahub_server-1.1.7/README.md +75 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/oidc.py +1 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/attribute.py +4 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/branch/tasks.py +7 -4
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/calculator.py +21 -39
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/combiner.py +11 -7
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/coordinator.py +49 -70
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/data_check_synchronizer.py +86 -7
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/aggregated.py +3 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/cardinality_one.py +1 -6
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/labels.py +13 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/path_identifier.py +2 -8
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/ipam_diff_parser.py +1 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/merger/merger.py +5 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/merger/serializer.py +15 -8
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/model/path.py +42 -24
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/all_conflicts.py +5 -2
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/diff_get.py +19 -23
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/field_specifiers.py +2 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/field_summary.py +2 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/filters.py +12 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/has_conflicts_query.py +5 -2
- infrahub_server-1.1.5/backend/infrahub/core/diff/query/drop_tracking_id.py → infrahub_server-1.1.7/backend/infrahub/core/diff/query/merge_tracking_id.py +3 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/roots_metadata.py +8 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/save.py +148 -63
- infrahub_server-1.1.7/backend/infrahub/core/diff/query/summary_counts_enricher.py +220 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/time_range_query.py +2 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query_parser.py +49 -24
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/repository/deserializer.py +74 -71
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/repository/repository.py +119 -30
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/__init__.py +6 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/constraints/grouped_uniqueness.py +9 -2
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/ipam.py +6 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/permissions.py +4 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/diff.py +223 -230
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/node.py +8 -2
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/relationship.py +2 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/resource_manager.py +3 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/model.py +1 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/schema_branch.py +16 -7
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/utils.py +1 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/uniqueness/query.py +20 -17
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/__init__.py +13 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/grouped/node_runner.py +0 -2
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/coordinator.py +0 -2
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/integrator.py +10 -6
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/computed_attribute.py +3 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/diff.py +28 -4
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/main.py +11 -6
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/relationship.py +29 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/tasks.py +6 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/resource_manager.py +7 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/__init__.py +2 -1
- infrahub_server-1.1.7/backend/infrahub/permissions/types.py +46 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/proposed_change/tasks.py +6 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/storage.py +6 -5
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/pyproject.toml +1 -1
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_testcontainers/infrahub_testcontainers/container.py +12 -3
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_testcontainers/infrahub_testcontainers/docker-compose.test.yml +22 -3
- infrahub_server-1.1.7/python_testcontainers/infrahub_testcontainers/haproxy.cfg +43 -0
- infrahub_server-1.1.7/python_testcontainers/infrahub_testcontainers/helpers.py +148 -0
- infrahub_server-1.1.5/README.md +0 -41
- infrahub_server-1.1.5/backend/infrahub/core/diff/enricher/summary_counts.py +0 -105
- infrahub_server-1.1.5/backend/infrahub/dependencies/builder/diff/enricher/summary_counts.py +0 -8
- infrahub_server-1.1.5/backend/infrahub/permissions/types.py +0 -20
- infrahub_server-1.1.5/python_testcontainers/infrahub_testcontainers/helpers.py +0 -64
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/LICENSE.txt +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/artifact.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/auth.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/dependencies.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/diff/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/diff/diff.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/diff/validation_models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/exception_handlers.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/file.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/internal.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/menu.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/oauth2.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/static/redoc.standalone.js +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/static/swagger-ui-bundle.js +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/static/swagger-ui.css +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/storage.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/api/transformation.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/auth.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/context.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/db.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/events.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/git_agent.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/server.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/cli/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/components.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/computed_attribute/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/computed_attribute/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/computed_attribute/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/computed_attribute/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/config.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/account.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/branch/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/branch/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/branch/flow_models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/branch/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constants/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constants/database.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constants/infrahubkind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constants/relationship_label.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constants/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constraint/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constraint/node/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/constraint/node/runner.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/artifacts/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/artifacts/calculator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/branch_differ.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/conflict_transferer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/conflicts_enricher.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/conflicts_extractor.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/hierarchy.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/enricher/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/merger/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/merger/model.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/model/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/model/diff.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/payload_builder.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/artifact.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/delete_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/diff_summary.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/get_conflict_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/merge.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/query/update_conflict_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/repository/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/diff/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/enums.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/graph/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/graph/constraints.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/graph/index.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/graph/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/initialization.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/integrity/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/integrity/object_conflict/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/integrity/object_conflict/conflict_recorder.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/kinds_getter.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/model.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/reconciler.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/size.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/ipam/utilization.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/merge.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m001_add_version_to_graph.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m002_attribute_is_default.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m003_relationship_parent_optional.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m004_add_attr_documentation.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m005_add_rel_read_only.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m006_add_rel_on_delete.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m007_add_rel_allow_override.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m008_add_human_friendly_id.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m009_add_generate_profile_attr.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m010_add_generate_profile_attr_generic.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m011_remove_profile_relationship_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m012_convert_account_generic.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m013_convert_git_password_credential.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m014_remove_index_attr_value.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m015_diff_format_update.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m016_diff_delete_bug_fix.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m017_add_core_profile.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/graph/m018_uniqueness_nulls.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/attribute_add.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/attribute_rename.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/delete_element_in_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/node_duplicate.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/relationship_duplicate.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/query/schema_attribute_update.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/attribute_name_update.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/node_attribute_add.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/node_attribute_remove.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/node_kind_update.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/node_remove.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/placeholder_dummy.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/schema/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/migrations/shared.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/base.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/constraints/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/constraints/attribute_uniqueness.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/constraints/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/delete_validator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/resource_manager/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/resource_manager/ip_address_pool.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/resource_manager/ip_prefix_pool.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/resource_manager/number_pool.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/node/standard.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/path.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/property.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/protocols.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/protocols_base.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/delete.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/ipam.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/standard_node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/subquery.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/task_log.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/query/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/registry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/constraints/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/constraints/count.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/constraints/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/constraints/peer_kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/relationship/constraints/profiles_kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/root.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/attribute_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/basenode_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/computed_attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/definitions/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/definitions/core.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/definitions/deprecated.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/definitions/internal.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/dropdown.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/attribute_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/base_node_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/genericnode_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/node_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generated/relationship_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/generic_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/node_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/profile_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/relationship_schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/schema/schema_branch_computed.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/task/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/task/task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/task/task_log.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/task/user_task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/timestamp.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/aggregated_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/choices.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/enum.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/length.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/optional.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/regex.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/attribute/unique.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/determiner.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/model.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/models/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/models/validate_migration.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/models/violation.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/generate_profile.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/hierarchy.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/inherit_from.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/node/relationship.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/relationship/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/relationship/count.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/relationship/optional.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/relationship/peer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/shared.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/uniqueness/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/uniqueness/checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/uniqueness/index.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/core/validators/uniqueness/model.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/index.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/memgraph.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/metrics.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/database/neo4j.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/grouped/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/node/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/node/grouped_uniqueness.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/node/uniqueness.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/count.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/peer_kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/relationship_manager/profiles_kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/aggregated.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_choices.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_enum.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_kind.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_length.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_optional.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_regex.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/attribute_uniqueness.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/generate_profile.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/inherit_from.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/node_attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/node_relationship.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_count.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/relationship_optional.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/constraint/schema/uniqueness.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/calculator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/combiner.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/conflict_transferer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/conflicts_enricher.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/conflicts_extractor.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/data_check_conflict_recorder.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/data_check_synchronizer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/deserializer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/diff_merger.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/aggregated.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/cardinality_one.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/hierarchy.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/labels.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/enricher/path_identifier.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/ipam_diff_parser.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/diff/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/ip/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/ip/kinds_getter.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/node/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/builder/node/delete_validator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/component/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/component/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/component/registry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/dependencies/registry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/branch_action.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/node_action.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/repository_action.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/events/schema_action.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/generators/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/generators/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/generators/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/base.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/directory.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git/worktree.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git_credential/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git_credential/askpass.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/git_credential/helper.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/analyzer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/api/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/api/dependencies.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/api/endpoints.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/app.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/anonymous_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/default_branch_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/auth/query_permission_checker/super_admin_checker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/directives.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/enums.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/initialization.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/loaders/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/loaders/node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/metrics.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/account.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/artifact_definition.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/diff_conflict.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/graphql_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/ipam.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/menu.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/node_getter/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/node_getter/by_default_filter.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/node_getter/by_hfid.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/node_getter/by_id.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/node_getter/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/proposed_change.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/resource_manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/mutations/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/parser.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/permissions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/account.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/diff/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/diff/tree.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/internal.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/ipam.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/relationship.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/search.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/status.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/queries/task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/resolvers/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/resolvers/resolver.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/resolvers/single_relationship.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/subscription/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/subscription/events.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/subscription/graphql_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/attribute.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/common.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/enums.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/permission.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/relationship.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/standard_node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/types/task_log.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/graphql/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/groups/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/groups/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/groups/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/helpers.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/lock.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/log.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/generator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/menu.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/menu/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/check_artifact_create.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/check_generator_run.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/check_repository_checkdefinition.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/check_repository_mergeconflicts.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/check_repository_usercheck.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_branch_create.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_branch_delete.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_branch_merge.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_branch_rebased.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_node_mutated.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_schema_update.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/event_worker_newprimaryapi.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/finalize_validator_execution.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/git_file_get.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/git_repository_connectivity.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/proposed_change/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/refresh_git_fetch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/refresh_registry_branches.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/refresh_registry_rebasedbranch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/request_artifactdefinition_check.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/request_generatordefinition_check.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/request_repository_checks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/request_repository_userchecks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/messages/send_echo_request.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/check/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/check/artifact.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/check/generator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/check/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/event/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/event/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/event/node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/event/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/event/worker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/finalize/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/finalize/validator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/git/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/git/file.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/git/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/refresh/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/refresh/registry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/requests/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/requests/artifact_definition.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/requests/generator_definition.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/requests/proposed_change.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/requests/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/send/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/operations/send/echo.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/message_bus/types.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/middleware.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/backend.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/local_backend.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/manager.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/permissions/report.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/pools/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/pools/address.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/pools/number.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/pools/prefix.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/proposed_change/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/proposed_change/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/proposed_change/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/pytest_plugin.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/schema/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/schema/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/schema/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/serve/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/serve/gunicorn_config.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/serve/log.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/serve/worker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/server.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/cache/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/cache/nats.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/cache/redis.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/database/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/event/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/http/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/http/httpx.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/message_bus/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/message_bus/local.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/message_bus/nats.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/message_bus/rabbitmq.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/workflow/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/workflow/local.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/adapters/workflow/worker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/component.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/protocols.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/services/scheduler.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/support/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/support/macro.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/task_manager/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/task_manager/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/task_manager/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/task_manager/task.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/artifact.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/check.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/dummy.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/keepalive.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/recurring.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/registry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/tasks/telemetry.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/trace.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/transformations/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/transformations/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/transformations/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/transformations/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/types.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/visuals.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/webhook/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/webhook/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/webhook/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/webhook/tasks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/worker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workers/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workers/infrahub_async.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/catalogue.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/initialization.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/backend/infrahub/workflows/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/_importer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/analyzer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/async_typer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/batch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/checks.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/client.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/code_generator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/config.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/_file.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/branch.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/check.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/cli.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/cli_commands.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/client.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/config.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/exporter.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/generator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/importer.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/menu.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/object.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/parameters.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/render.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/schema.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/transform.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/ctl/validate.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/data.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/diff.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/generator.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/graphql.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/groups.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/jinja2.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/node.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/object_store.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/playback.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/protocols.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/protocols_base.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/base.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/check.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/graphql_query.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/jinja2_transform.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/items/python_transform.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/loader.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/models.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/plugin.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/pytest_plugin/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/queries.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/query_groups.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/recorder.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/schema/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/schema/main.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/schema/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/spec/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/spec/menu.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/spec/object.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/store.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/docker.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/repository.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/schemas/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/schemas/animal.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/testing/schemas/car_person.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/timestamp.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/topological_sort.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/constants.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/exceptions.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/exporter/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/exporter/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/exporter/json.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/importer/__init__.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/importer/interface.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/importer/json.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transfer/schema_sorter.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/transforms.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/types.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/utils.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/uuidt.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_sdk/infrahub_sdk/yaml.py +0 -0
- {infrahub_server-1.1.5 → infrahub_server-1.1.7}/python_testcontainers/infrahub_testcontainers/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: infrahub-server
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.7
|
|
4
4
|
Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
|
|
5
5
|
Home-page: https://opsmill.com
|
|
6
6
|
License: AGPL-3.0-only
|
|
@@ -58,16 +58,46 @@ Project-URL: Documentation, https://docs.infrahub.app/
|
|
|
58
58
|
Project-URL: Repository, https://github.com/opsmill/infrahub
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
<h1 align="center">
|
|
62
|
+
<a href=""><img src="docs/static/img/infrahub-hori.svg" alt="Infrahub" width="350"></a>
|
|
63
|
+
</h1>
|
|
64
|
+
<h3 align="center">Simplify Infrastructure Automation</h2>
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
<p align="center">
|
|
67
|
+
<a href="https://www.linkedin.com/company/opsmill">
|
|
68
|
+
<img src="https://img.shields.io/badge/linkedin-blue?logo=linkedin"/>
|
|
69
|
+
</a>
|
|
70
|
+
<a href="https://discord.gg/opsmill">
|
|
71
|
+
<img src="https://img.shields.io/badge/Discord-7289DA?&logo=discord&logoColor=white"/>
|
|
72
|
+
</a>
|
|
73
|
+
</p>
|
|
66
74
|
|
|
67
|
-
Infrahub from [OpsMill](https://opsmill.com) 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. Infrahub offers a central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities
|
|
75
|
+
Infrahub from [OpsMill](https://opsmill.com) 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. Infrahub offers a central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities similar to Git with the flexible data model and UI of a graph database.
|
|
76
|
+
|
|
77
|
+
If you just want to try Infrahub out, you can use our [Always-On Sandbox](https://demo.infrahub.app/) to get started.
|
|
68
78
|
|
|
69
79
|

|
|
70
80
|
|
|
81
|
+
## Why Use Infrahub?
|
|
82
|
+
|
|
83
|
+
**Unified Source of Truth** - Infrahub is a single source of truth for all your infrastructure and network data. It provides a unified view of your infrastructure, allowing you to manage your infrastructure in a more efficient and effective way. Infrahub allows unidirectional and bi-directional [data synchronization](https://docs.infrahub.app/sync/sync/) between other internal systems and Infrahub. The data can be accessed via WebUI, API and SDK, along with SSO and RBAC for access control.
|
|
84
|
+
|
|
85
|
+
**Flexible Schema** - Infrahub provides a flexible schema for your infrastructure data and related business information, allowing you to define your own data model and customize it to your needs. Get started quickly with our [schema library](https://github.com/opsmill/schema-library) or build your own.
|
|
86
|
+
|
|
87
|
+
**Version Control** - Infrahub provides a version control system for your infrastructure data, allowing you to track changes and revert to previous versions if needed. Immutable history of all changes to the data and artifacts is maintained, allowing you to audit and review changes to your infrastructure.
|
|
88
|
+
|
|
89
|
+
**CI Pipeline and Validation** - Infrahub provides a CI pipeline and validation system for your infrastructure data, allowing you to ensure that your infrastructure is always in a valid state. Infrahub was designed with infrastructure-as-code workflows in mind, removing fragility and complexity of combining together multiple tools and projects to achieve the same goal.
|
|
90
|
+
|
|
91
|
+
## Infrahub Use Cases
|
|
92
|
+
|
|
93
|
+
**Service Catalog** - Infrahub acts as the underlying system to provide infrastructure-as-a-service, allowing you to manage your services and lifecycle them as the services evolve.
|
|
94
|
+
|
|
95
|
+
**Infrastructure Automation** - Provide infrastructure and network automation workflows with Infrahub rendering configurations and artifacts via Jinja2 and python,then passing to deployment tools such as [Nornir](https://www.opsmill.com/simplifying-network-automation-workflows-with-infrahub-nornir-and-jinja2/), [Ansible](https://docs.infrahub.app/ansible/ansible/), Terraform, or vendor-specific tools.
|
|
96
|
+
|
|
97
|
+
**Inventory Management** - Infrahub serves as a centralized inventory system for your infrastructure, allowing you to manage your inventory and track changes to your infrastructure. It provides a WebUI and API for other teams to self-service the information needed to allow the organization to operate.
|
|
98
|
+
|
|
99
|
+
**DCIM and IPAM** - Infrahub provides centralized DCIM and IPAM systems for your infrastructure, capable of handling complex cases such as overlapping IP addresses and VLANs, automation-friendly, branch-aware allocation of resources via Infrahub's [Resource Manager](https://docs.infrahub.app/python-sdk/guides/resource-manager), and more.
|
|
100
|
+
|
|
71
101
|
## Quick Start
|
|
72
102
|
|
|
73
103
|
[Always-On Sandbox](https://demo.infrahub.app/) - Instantly login to the UI of a demo environment of Infrahub with sample data pre-loaded.
|
|
@@ -94,7 +124,11 @@ If you need help, support for the community version of Infrahub is provided on [
|
|
|
94
124
|
|
|
95
125
|
## Contributing
|
|
96
126
|
|
|
97
|
-
|
|
127
|
+
To help our community with the creation of contributions, please view our [CONTRIBUTING](./CONTRIBUTING.md) page.
|
|
128
|
+
|
|
129
|
+
<a href="https://github.com/opsmill/infrahub/graphs/contributors">
|
|
130
|
+
<img src="https://contrib.rocks/image?repo=opsmill/infrahub" />
|
|
131
|
+
</a>
|
|
98
132
|
|
|
99
133
|
## Security
|
|
100
134
|
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<h1 align="center">
|
|
2
|
+
<a href=""><img src="docs/static/img/infrahub-hori.svg" alt="Infrahub" width="350"></a>
|
|
3
|
+
</h1>
|
|
4
|
+
<h3 align="center">Simplify Infrastructure Automation</h2>
|
|
5
|
+
|
|
6
|
+
<p align="center">
|
|
7
|
+
<a href="https://www.linkedin.com/company/opsmill">
|
|
8
|
+
<img src="https://img.shields.io/badge/linkedin-blue?logo=linkedin"/>
|
|
9
|
+
</a>
|
|
10
|
+
<a href="https://discord.gg/opsmill">
|
|
11
|
+
<img src="https://img.shields.io/badge/Discord-7289DA?&logo=discord&logoColor=white"/>
|
|
12
|
+
</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
Infrahub from [OpsMill](https://opsmill.com) 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. Infrahub offers a central hub to manage the data, templates and playbooks that powers your infrastructure by combining the version control and branch management capabilities similar to Git with the flexible data model and UI of a graph database.
|
|
16
|
+
|
|
17
|
+
If you just want to try Infrahub out, you can use our [Always-On Sandbox](https://demo.infrahub.app/) to get started.
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
## Why Use Infrahub?
|
|
22
|
+
|
|
23
|
+
**Unified Source of Truth** - Infrahub is a single source of truth for all your infrastructure and network data. It provides a unified view of your infrastructure, allowing you to manage your infrastructure in a more efficient and effective way. Infrahub allows unidirectional and bi-directional [data synchronization](https://docs.infrahub.app/sync/sync/) between other internal systems and Infrahub. The data can be accessed via WebUI, API and SDK, along with SSO and RBAC for access control.
|
|
24
|
+
|
|
25
|
+
**Flexible Schema** - Infrahub provides a flexible schema for your infrastructure data and related business information, allowing you to define your own data model and customize it to your needs. Get started quickly with our [schema library](https://github.com/opsmill/schema-library) or build your own.
|
|
26
|
+
|
|
27
|
+
**Version Control** - Infrahub provides a version control system for your infrastructure data, allowing you to track changes and revert to previous versions if needed. Immutable history of all changes to the data and artifacts is maintained, allowing you to audit and review changes to your infrastructure.
|
|
28
|
+
|
|
29
|
+
**CI Pipeline and Validation** - Infrahub provides a CI pipeline and validation system for your infrastructure data, allowing you to ensure that your infrastructure is always in a valid state. Infrahub was designed with infrastructure-as-code workflows in mind, removing fragility and complexity of combining together multiple tools and projects to achieve the same goal.
|
|
30
|
+
|
|
31
|
+
## Infrahub Use Cases
|
|
32
|
+
|
|
33
|
+
**Service Catalog** - Infrahub acts as the underlying system to provide infrastructure-as-a-service, allowing you to manage your services and lifecycle them as the services evolve.
|
|
34
|
+
|
|
35
|
+
**Infrastructure Automation** - Provide infrastructure and network automation workflows with Infrahub rendering configurations and artifacts via Jinja2 and python,then passing to deployment tools such as [Nornir](https://www.opsmill.com/simplifying-network-automation-workflows-with-infrahub-nornir-and-jinja2/), [Ansible](https://docs.infrahub.app/ansible/ansible/), Terraform, or vendor-specific tools.
|
|
36
|
+
|
|
37
|
+
**Inventory Management** - Infrahub serves as a centralized inventory system for your infrastructure, allowing you to manage your inventory and track changes to your infrastructure. It provides a WebUI and API for other teams to self-service the information needed to allow the organization to operate.
|
|
38
|
+
|
|
39
|
+
**DCIM and IPAM** - Infrahub provides centralized DCIM and IPAM systems for your infrastructure, capable of handling complex cases such as overlapping IP addresses and VLANs, automation-friendly, branch-aware allocation of resources via Infrahub's [Resource Manager](https://docs.infrahub.app/python-sdk/guides/resource-manager), and more.
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
[Always-On Sandbox](https://demo.infrahub.app/) - Instantly login to the UI of a demo environment of Infrahub with sample data pre-loaded.
|
|
44
|
+
|
|
45
|
+
[Getting Started Environment & Tutorial](https://opsmill.instruqt.com/pages/labs) - It spins up an instance of Infrahub on our cloud, provides a browser, terminal, code editor and walks you through the basic concepts:
|
|
46
|
+
|
|
47
|
+
- Branching and version control
|
|
48
|
+
- Flexible schema
|
|
49
|
+
- Unified storage
|
|
50
|
+
|
|
51
|
+
For longer term tests, you can deploy a local instance of Infrahub by referring to our guide: [Installing Infrahub](https://docs.infrahub.app/guides/installation)
|
|
52
|
+
|
|
53
|
+
## Documentation
|
|
54
|
+
|
|
55
|
+
If you'd like to learn more about Infrahub, please refer to the following resources:
|
|
56
|
+
|
|
57
|
+
- [Infrahub Overview](https://docs.infrahub.app/overview/)
|
|
58
|
+
- [Infrahub Documentation](https://docs.infrahub.app/)
|
|
59
|
+
- [FAQ](https://docs.infrahub.app/faq/)
|
|
60
|
+
|
|
61
|
+
## Support and Community
|
|
62
|
+
|
|
63
|
+
If you need help, support for the community version of Infrahub is provided on [](https://discord.gg/opsmill) or via [filing an issue on GitHub](https://github.com/opsmill/infrahub/issues).
|
|
64
|
+
|
|
65
|
+
## Contributing
|
|
66
|
+
|
|
67
|
+
To help our community with the creation of contributions, please view our [CONTRIBUTING](./CONTRIBUTING.md) page.
|
|
68
|
+
|
|
69
|
+
<a href="https://github.com/opsmill/infrahub/graphs/contributors">
|
|
70
|
+
<img src="https://contrib.rocks/image?repo=opsmill/infrahub" />
|
|
71
|
+
</a>
|
|
72
|
+
|
|
73
|
+
## Security
|
|
74
|
+
|
|
75
|
+
[View our SECURITY](https://github.com/opsmill/infrahub?tab=security-ov-file) policy to find the latest information.
|
|
@@ -210,6 +210,7 @@ async def _get_id_token_groups(
|
|
|
210
210
|
algorithms=oidc_config.id_token_signing_alg_values_supported,
|
|
211
211
|
audience=client_id,
|
|
212
212
|
issuer=str(oidc_config.issuer),
|
|
213
|
+
options={"verify_signature": False, "verify_aud": False, "verify_iss": False},
|
|
213
214
|
)
|
|
214
215
|
|
|
215
216
|
return decoded_token.get("groups", [])
|
|
@@ -470,6 +470,7 @@ class BaseAttribute(FlagPropertyMixin, NodePropertyMixin):
|
|
|
470
470
|
related_node_ids: Optional[set] = None,
|
|
471
471
|
filter_sensitive: bool = False,
|
|
472
472
|
permissions: Optional[dict] = None,
|
|
473
|
+
include_properties: bool = True,
|
|
473
474
|
) -> dict:
|
|
474
475
|
"""Generate GraphQL Payload for this attribute."""
|
|
475
476
|
# pylint: disable=too-many-branches
|
|
@@ -480,7 +481,9 @@ class BaseAttribute(FlagPropertyMixin, NodePropertyMixin):
|
|
|
480
481
|
field_names = fields.keys()
|
|
481
482
|
else:
|
|
482
483
|
# REMOVED updated_at for now, need to investigate further how it's being used today
|
|
483
|
-
field_names = ["__typename", "value"]
|
|
484
|
+
field_names = ["__typename", "value"]
|
|
485
|
+
if include_properties:
|
|
486
|
+
field_names += self._node_properties + self._flag_properties
|
|
484
487
|
|
|
485
488
|
for field_name in field_names:
|
|
486
489
|
if field_name == "updated_at":
|
|
@@ -70,14 +70,17 @@ async def rebase_branch(branch: str) -> None:
|
|
|
70
70
|
service=service,
|
|
71
71
|
)
|
|
72
72
|
diff_repository = await component_registry.get_component(DiffRepository, db=db, branch=obj)
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
enriched_diff_metadata = await diff_coordinator.update_branch_diff(base_branch=base_branch, diff_branch=obj)
|
|
74
|
+
async for _ in diff_repository.get_all_conflicts_for_diff(
|
|
75
|
+
diff_branch_name=enriched_diff_metadata.diff_branch_name, diff_id=enriched_diff_metadata.uuid
|
|
76
|
+
):
|
|
77
|
+
# if there are any conflicts, raise the error
|
|
75
78
|
raise ValidationError(
|
|
76
79
|
f"Branch {obj.name} contains conflicts with the default branch that must be addressed."
|
|
77
80
|
" Please review the diff for details and manually update the conflicts before rebasing."
|
|
78
81
|
)
|
|
79
82
|
node_diff_field_summaries = await diff_repository.get_node_field_summaries(
|
|
80
|
-
diff_branch_name=
|
|
83
|
+
diff_branch_name=enriched_diff_metadata.diff_branch_name, diff_id=enriched_diff_metadata.uuid
|
|
81
84
|
)
|
|
82
85
|
|
|
83
86
|
candidate_schema = merger.get_candidate_schema()
|
|
@@ -219,7 +222,7 @@ async def merge_branch(branch: str) -> None:
|
|
|
219
222
|
# remove tracking ID from the diff because there is no diff after the merge
|
|
220
223
|
# -------------------------------------------------------------
|
|
221
224
|
diff_repository = await component_registry.get_component(DiffRepository, db=db, branch=obj)
|
|
222
|
-
await diff_repository.
|
|
225
|
+
await diff_repository.mark_tracking_ids_merged(tracking_ids=[BranchTrackingId(name=obj.name)])
|
|
223
226
|
|
|
224
227
|
# -------------------------------------------------------------
|
|
225
228
|
# Generate an event to indicate that a branch has been merged
|
|
@@ -4,7 +4,12 @@ from infrahub import config
|
|
|
4
4
|
from infrahub.core import registry
|
|
5
5
|
from infrahub.core.branch import Branch
|
|
6
6
|
from infrahub.core.diff.query_parser import DiffQueryParser
|
|
7
|
-
from infrahub.core.query.diff import
|
|
7
|
+
from infrahub.core.query.diff import (
|
|
8
|
+
DiffCalculationQuery,
|
|
9
|
+
DiffFieldPathsQuery,
|
|
10
|
+
DiffNodePathsQuery,
|
|
11
|
+
DiffPropertyPathsQuery,
|
|
12
|
+
)
|
|
8
13
|
from infrahub.core.timestamp import Timestamp
|
|
9
14
|
from infrahub.database import InfrahubDatabase
|
|
10
15
|
from infrahub.log import get_logger
|
|
@@ -86,6 +91,7 @@ class DiffCalculator:
|
|
|
86
91
|
)
|
|
87
92
|
node_limit = int(config.SETTINGS.database.query_size_limit / 10)
|
|
88
93
|
fields_limit = int(config.SETTINGS.database.query_size_limit / 3)
|
|
94
|
+
properties_limit = int(config.SETTINGS.database.query_size_limit)
|
|
89
95
|
|
|
90
96
|
calculation_request = DiffCalculationRequest(
|
|
91
97
|
base_branch=base_branch,
|
|
@@ -113,21 +119,14 @@ class DiffCalculator:
|
|
|
113
119
|
)
|
|
114
120
|
log.info("Diff field-level calculation queries for branch complete")
|
|
115
121
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
diff_to=to_time,
|
|
122
|
+
log.info("Beginning diff property-level calculation queries for branch")
|
|
123
|
+
await self._run_diff_calculation_query(
|
|
124
|
+
diff_parser=diff_parser,
|
|
125
|
+
query_class=DiffPropertyPathsQuery,
|
|
126
|
+
calculation_request=calculation_request,
|
|
127
|
+
limit=properties_limit,
|
|
123
128
|
)
|
|
124
|
-
log.info("
|
|
125
|
-
await branch_diff_query.execute(db=self.db)
|
|
126
|
-
log.info("Diff calculation query for branch complete")
|
|
127
|
-
log.info("Reading results of query for branch")
|
|
128
|
-
for query_result in branch_diff_query.get_results():
|
|
129
|
-
diff_parser.read_result(query_result=query_result)
|
|
130
|
-
log.info("Results of query for branch read")
|
|
129
|
+
log.info("Diff property-level calculation queries for branch complete")
|
|
131
130
|
|
|
132
131
|
if base_branch.name != diff_branch.name:
|
|
133
132
|
current_node_field_specifiers = diff_parser.get_current_node_field_specifiers()
|
|
@@ -160,32 +159,15 @@ class DiffCalculator:
|
|
|
160
159
|
)
|
|
161
160
|
log.info("Diff field-level calculation queries for base complete")
|
|
162
161
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
new_node_field_specifier_tuples.extend((node_uuid, field_name) for field_name in field_names)
|
|
170
|
-
|
|
171
|
-
base_diff_query = await DiffAllPathsQuery.init(
|
|
172
|
-
db=self.db,
|
|
173
|
-
branch=base_branch,
|
|
174
|
-
base_branch=base_branch,
|
|
175
|
-
diff_branch_from_time=diff_branch_from_time,
|
|
176
|
-
diff_from=from_time,
|
|
177
|
-
diff_to=to_time,
|
|
178
|
-
current_node_field_specifiers=current_node_field_specifier_tuples,
|
|
179
|
-
new_node_field_specifiers=new_node_field_specifier_tuples,
|
|
162
|
+
log.info("Beginning diff property-level calculation queries for base")
|
|
163
|
+
await self._run_diff_calculation_query(
|
|
164
|
+
diff_parser=diff_parser,
|
|
165
|
+
query_class=DiffPropertyPathsQuery,
|
|
166
|
+
calculation_request=calculation_request,
|
|
167
|
+
limit=properties_limit,
|
|
180
168
|
)
|
|
169
|
+
log.info("Diff property-level calculation queries for base complete")
|
|
181
170
|
|
|
182
|
-
log.info("Beginning diff calculation query for base")
|
|
183
|
-
await base_diff_query.execute(db=self.db)
|
|
184
|
-
log.info("Diff calculation query for base complete")
|
|
185
|
-
log.info("Reading results of query for base")
|
|
186
|
-
for query_result in base_diff_query.get_results():
|
|
187
|
-
diff_parser.read_result(query_result=query_result)
|
|
188
|
-
log.info("Results of query for branch read")
|
|
189
171
|
log.info("Parsing calculated diff")
|
|
190
172
|
diff_parser.parse(include_unchanged=include_unchanged)
|
|
191
173
|
log.info("Calculated diff parsed")
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from copy import deepcopy
|
|
2
2
|
from dataclasses import dataclass, field, replace
|
|
3
3
|
from typing import Iterable
|
|
4
|
-
from uuid import uuid4
|
|
5
4
|
|
|
6
5
|
from infrahub.core.constants import NULL_VALUE, DiffAction, RelationshipCardinality
|
|
7
6
|
from infrahub.core.constants.database import DatabaseEdgeType
|
|
@@ -342,6 +341,8 @@ class DiffCombiner:
|
|
|
342
341
|
|
|
343
342
|
def _copy_node_without_parents(self, node: EnrichedDiffNode) -> EnrichedDiffNode:
|
|
344
343
|
rels_without_parents = {replace(r, nodes=set()) for r in node.relationships}
|
|
344
|
+
for rel in rels_without_parents:
|
|
345
|
+
rel.reset_summaries()
|
|
345
346
|
node_without_parents = replace(node, relationships=rels_without_parents)
|
|
346
347
|
return deepcopy(node_without_parents)
|
|
347
348
|
|
|
@@ -351,15 +352,11 @@ class DiffCombiner:
|
|
|
351
352
|
if node_pair.earlier is None:
|
|
352
353
|
if node_pair.later is not None:
|
|
353
354
|
copied = self._copy_node_without_parents(node_pair.later)
|
|
354
|
-
for rel in copied.relationships:
|
|
355
|
-
rel.reset_summaries()
|
|
356
355
|
combined_nodes.add(copied)
|
|
357
356
|
continue
|
|
358
357
|
if node_pair.later is None:
|
|
359
358
|
if node_pair.earlier is not None:
|
|
360
359
|
copied = self._copy_node_without_parents(node_pair.earlier)
|
|
361
|
-
for rel in copied.relationships:
|
|
362
|
-
rel.reset_summaries()
|
|
363
360
|
combined_nodes.add(copied)
|
|
364
361
|
continue
|
|
365
362
|
combined_attributes = self._combine_attributes(
|
|
@@ -420,14 +417,21 @@ class DiffCombiner:
|
|
|
420
417
|
filtered_node_pairs = self._filter_nodes_to_keep(earlier_diff=earlier, later_diff=later)
|
|
421
418
|
combined_nodes = self._combine_nodes(node_pairs=filtered_node_pairs)
|
|
422
419
|
self._link_child_nodes(nodes=combined_nodes)
|
|
420
|
+
if earlier.exists_on_database:
|
|
421
|
+
diff_uuid = earlier.uuid
|
|
422
|
+
partner_uuid = earlier.partner_uuid
|
|
423
|
+
else:
|
|
424
|
+
diff_uuid = later.uuid
|
|
425
|
+
partner_uuid = later.partner_uuid
|
|
423
426
|
combined_diffs.append(
|
|
424
427
|
EnrichedDiffRoot(
|
|
425
|
-
uuid=
|
|
426
|
-
partner_uuid=
|
|
428
|
+
uuid=diff_uuid,
|
|
429
|
+
partner_uuid=partner_uuid,
|
|
427
430
|
base_branch_name=later.base_branch_name,
|
|
428
431
|
diff_branch_name=later.diff_branch_name,
|
|
429
432
|
from_time=earlier.from_time,
|
|
430
433
|
to_time=later.to_time,
|
|
434
|
+
tracking_id=later.tracking_id,
|
|
431
435
|
nodes=combined_nodes,
|
|
432
436
|
)
|
|
433
437
|
)
|
|
@@ -6,6 +6,7 @@ from uuid import uuid4
|
|
|
6
6
|
|
|
7
7
|
from infrahub import lock
|
|
8
8
|
from infrahub.core.timestamp import Timestamp
|
|
9
|
+
from infrahub.exceptions import ValidationError
|
|
9
10
|
from infrahub.log import get_logger
|
|
10
11
|
|
|
11
12
|
from .model.path import (
|
|
@@ -29,7 +30,6 @@ if TYPE_CHECKING:
|
|
|
29
30
|
from .data_check_synchronizer import DiffDataCheckSynchronizer
|
|
30
31
|
from .enricher.aggregated import AggregatedDiffEnricher
|
|
31
32
|
from .enricher.labels import DiffLabelsEnricher
|
|
32
|
-
from .enricher.summary_counts import DiffSummaryCountsEnricher
|
|
33
33
|
from .repository.repository import DiffRepository
|
|
34
34
|
|
|
35
35
|
|
|
@@ -42,7 +42,7 @@ class EnrichedDiffRequest:
|
|
|
42
42
|
diff_branch: Branch
|
|
43
43
|
from_time: Timestamp
|
|
44
44
|
to_time: Timestamp
|
|
45
|
-
tracking_id: TrackingId
|
|
45
|
+
tracking_id: TrackingId
|
|
46
46
|
node_field_specifiers: dict[str, set[str]] = field(default_factory=dict)
|
|
47
47
|
|
|
48
48
|
def __repr__(self) -> str:
|
|
@@ -65,7 +65,6 @@ class DiffCoordinator:
|
|
|
65
65
|
diff_combiner: DiffCombiner,
|
|
66
66
|
conflicts_enricher: ConflictsEnricher,
|
|
67
67
|
labels_enricher: DiffLabelsEnricher,
|
|
68
|
-
summary_counts_enricher: DiffSummaryCountsEnricher,
|
|
69
68
|
data_check_synchronizer: DiffDataCheckSynchronizer,
|
|
70
69
|
conflict_transferer: DiffConflictTransferer,
|
|
71
70
|
) -> None:
|
|
@@ -75,7 +74,6 @@ class DiffCoordinator:
|
|
|
75
74
|
self.diff_combiner = diff_combiner
|
|
76
75
|
self.conflicts_enricher = conflicts_enricher
|
|
77
76
|
self.labels_enricher = labels_enricher
|
|
78
|
-
self.summary_counts_enricher = summary_counts_enricher
|
|
79
77
|
self.data_check_synchronizer = data_check_synchronizer
|
|
80
78
|
self.conflict_transferer = conflict_transferer
|
|
81
79
|
self.lock_registry = lock.registry
|
|
@@ -101,6 +99,8 @@ class DiffCoordinator:
|
|
|
101
99
|
to_timestamp = Timestamp(to_time)
|
|
102
100
|
else:
|
|
103
101
|
to_timestamp = Timestamp()
|
|
102
|
+
if not name:
|
|
103
|
+
raise ValidationError("diff with specified time range requires a name")
|
|
104
104
|
await self.create_or_update_arbitrary_timeframe_diff(
|
|
105
105
|
base_branch=base_branch,
|
|
106
106
|
diff_branch=diff_branch,
|
|
@@ -115,27 +115,7 @@ class DiffCoordinator:
|
|
|
115
115
|
lock_name += "__incremental"
|
|
116
116
|
return lock_name
|
|
117
117
|
|
|
118
|
-
async def
|
|
119
|
-
enriched_diff = await self.update_branch_diff(base_branch=base_branch, diff_branch=diff_branch)
|
|
120
|
-
if isinstance(enriched_diff, EnrichedDiffRoot):
|
|
121
|
-
return enriched_diff
|
|
122
|
-
return await self._finalize_diff_root_metadata(diff_root_metadata=enriched_diff)
|
|
123
|
-
|
|
124
|
-
async def _finalize_diff_root_metadata(self, diff_root_metadata: EnrichedDiffRootMetadata) -> EnrichedDiffRoot:
|
|
125
|
-
# if this is EnrichedDiffMetadata, we need to retrieve the full diff and set its metadata to match
|
|
126
|
-
full_enriched_diff = await self.diff_repo.get_one(
|
|
127
|
-
diff_branch_name=diff_root_metadata.diff_branch_name, diff_id=diff_root_metadata.uuid
|
|
128
|
-
)
|
|
129
|
-
full_enriched_diff.update_metadata(
|
|
130
|
-
from_time=diff_root_metadata.from_time,
|
|
131
|
-
to_time=diff_root_metadata.to_time,
|
|
132
|
-
tracking_id=diff_root_metadata.tracking_id,
|
|
133
|
-
)
|
|
134
|
-
return full_enriched_diff
|
|
135
|
-
|
|
136
|
-
async def update_branch_diff(
|
|
137
|
-
self, base_branch: Branch, diff_branch: Branch
|
|
138
|
-
) -> EnrichedDiffRoot | EnrichedDiffRootMetadata:
|
|
118
|
+
async def update_branch_diff(self, base_branch: Branch, diff_branch: Branch) -> EnrichedDiffRootMetadata:
|
|
139
119
|
log.info(f"Received request to update branch diff for {base_branch.name} - {diff_branch.name}")
|
|
140
120
|
incremental_lock_name = self._get_lock_name(
|
|
141
121
|
base_branch_name=base_branch.name, diff_branch_name=diff_branch.name, is_incremental=True
|
|
@@ -169,12 +149,6 @@ class DiffCoordinator:
|
|
|
169
149
|
tracking_id=tracking_id,
|
|
170
150
|
force_branch_refresh=False,
|
|
171
151
|
)
|
|
172
|
-
if not isinstance(enriched_diffs, EnrichedDiffs):
|
|
173
|
-
await self._update_core_data_checks(enriched_diff=enriched_diffs.diff_branch_diff)
|
|
174
|
-
return enriched_diffs.diff_branch_diff
|
|
175
|
-
|
|
176
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.base_branch_diff)
|
|
177
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.diff_branch_diff)
|
|
178
152
|
await self.diff_repo.save(enriched_diffs=enriched_diffs)
|
|
179
153
|
await self._update_core_data_checks(enriched_diff=enriched_diffs.diff_branch_diff)
|
|
180
154
|
log.info(f"Branch diff update complete for {base_branch.name} - {diff_branch.name}")
|
|
@@ -186,11 +160,9 @@ class DiffCoordinator:
|
|
|
186
160
|
diff_branch: Branch,
|
|
187
161
|
from_time: Timestamp,
|
|
188
162
|
to_time: Timestamp,
|
|
189
|
-
name: str
|
|
190
|
-
) ->
|
|
191
|
-
tracking_id =
|
|
192
|
-
if name:
|
|
193
|
-
tracking_id = NameTrackingId(name=name)
|
|
163
|
+
name: str,
|
|
164
|
+
) -> EnrichedDiffRootMetadata:
|
|
165
|
+
tracking_id = NameTrackingId(name=name)
|
|
194
166
|
general_lock_name = self._get_lock_name(
|
|
195
167
|
base_branch_name=base_branch.name, diff_branch_name=diff_branch.name, is_incremental=False
|
|
196
168
|
)
|
|
@@ -204,13 +176,7 @@ class DiffCoordinator:
|
|
|
204
176
|
tracking_id=tracking_id,
|
|
205
177
|
force_branch_refresh=False,
|
|
206
178
|
)
|
|
207
|
-
# metadata-only diff, so no nodes to enrich
|
|
208
|
-
if not isinstance(enriched_diffs, EnrichedDiffs):
|
|
209
|
-
await self._update_core_data_checks(enriched_diff=enriched_diffs.diff_branch_diff)
|
|
210
|
-
return await self._finalize_diff_root_metadata(diff_root_metadata=enriched_diffs.diff_branch_diff)
|
|
211
179
|
|
|
212
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.base_branch_diff)
|
|
213
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.diff_branch_diff)
|
|
214
180
|
await self.diff_repo.save(enriched_diffs=enriched_diffs)
|
|
215
181
|
await self._update_core_data_checks(enriched_diff=enriched_diffs.diff_branch_diff)
|
|
216
182
|
log.info(f"Arbitrary diff update complete for {base_branch.name} - {diff_branch.name}")
|
|
@@ -252,8 +218,6 @@ class DiffCoordinator:
|
|
|
252
218
|
earlier=current_branch_diff, later=enriched_diffs.diff_branch_diff
|
|
253
219
|
)
|
|
254
220
|
|
|
255
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.base_branch_diff)
|
|
256
|
-
await self.summary_counts_enricher.enrich(enriched_diff_root=enriched_diffs.diff_branch_diff)
|
|
257
221
|
await self.diff_repo.save(enriched_diffs=enriched_diffs)
|
|
258
222
|
await self._update_core_data_checks(enriched_diff=enriched_diffs.diff_branch_diff)
|
|
259
223
|
log.info(f"Diff recalculation complete for {base_branch.name} - {diff_branch.name}")
|
|
@@ -316,7 +280,7 @@ class DiffCoordinator:
|
|
|
316
280
|
diff_branch: Branch,
|
|
317
281
|
from_time: Timestamp,
|
|
318
282
|
to_time: Timestamp,
|
|
319
|
-
tracking_id: TrackingId
|
|
283
|
+
tracking_id: TrackingId,
|
|
320
284
|
force_branch_refresh: Literal[True] = ...,
|
|
321
285
|
) -> EnrichedDiffs: ...
|
|
322
286
|
|
|
@@ -327,7 +291,7 @@ class DiffCoordinator:
|
|
|
327
291
|
diff_branch: Branch,
|
|
328
292
|
from_time: Timestamp,
|
|
329
293
|
to_time: Timestamp,
|
|
330
|
-
tracking_id: TrackingId
|
|
294
|
+
tracking_id: TrackingId,
|
|
331
295
|
force_branch_refresh: Literal[False] = ...,
|
|
332
296
|
) -> EnrichedDiffs | EnrichedDiffsMetadata: ...
|
|
333
297
|
|
|
@@ -337,7 +301,7 @@ class DiffCoordinator:
|
|
|
337
301
|
diff_branch: Branch,
|
|
338
302
|
from_time: Timestamp,
|
|
339
303
|
to_time: Timestamp,
|
|
340
|
-
tracking_id: TrackingId
|
|
304
|
+
tracking_id: TrackingId,
|
|
341
305
|
force_branch_refresh: bool = False,
|
|
342
306
|
) -> EnrichedDiffs | EnrichedDiffsMetadata:
|
|
343
307
|
# start with empty diffs b/c we only care about their metadata for now, hydrate them with data as needed
|
|
@@ -346,6 +310,7 @@ class DiffCoordinator:
|
|
|
346
310
|
diff_branch_names=[diff_branch.name],
|
|
347
311
|
from_time=from_time,
|
|
348
312
|
to_time=to_time,
|
|
313
|
+
tracking_id=tracking_id,
|
|
349
314
|
)
|
|
350
315
|
aggregated_enriched_diffs = await self._aggregate_enriched_diffs(
|
|
351
316
|
diff_request=EnrichedDiffRequest(
|
|
@@ -357,22 +322,23 @@ class DiffCoordinator:
|
|
|
357
322
|
),
|
|
358
323
|
partial_enriched_diffs=diff_pairs_metadata if not force_branch_refresh else None,
|
|
359
324
|
)
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
325
|
+
diff_uuids_to_delete: list[str] = []
|
|
326
|
+
for diff_pair in diff_pairs_metadata:
|
|
327
|
+
if (
|
|
328
|
+
diff_pair.base_branch_diff.tracking_id == tracking_id
|
|
329
|
+
and diff_pair.base_branch_diff.uuid != aggregated_enriched_diffs.base_branch_diff.uuid
|
|
330
|
+
and diff_pair.base_branch_diff.exists_on_database
|
|
331
|
+
):
|
|
332
|
+
diff_uuids_to_delete.append(diff_pair.base_branch_diff.uuid)
|
|
333
|
+
if (
|
|
334
|
+
diff_pair.diff_branch_diff.tracking_id == tracking_id
|
|
335
|
+
and diff_pair.diff_branch_diff.uuid != aggregated_enriched_diffs.diff_branch_diff.uuid
|
|
336
|
+
and diff_pair.diff_branch_diff.exists_on_database
|
|
337
|
+
):
|
|
338
|
+
diff_uuids_to_delete.append(diff_pair.diff_branch_diff.uuid)
|
|
339
|
+
|
|
340
|
+
if diff_uuids_to_delete:
|
|
341
|
+
await self.diff_repo.delete_diff_roots(diff_root_uuids=diff_uuids_to_delete)
|
|
376
342
|
|
|
377
343
|
# this is an EnrichedDiffsMetadata, so there are no nodes to enrich
|
|
378
344
|
if not isinstance(aggregated_enriched_diffs, EnrichedDiffs):
|
|
@@ -459,6 +425,7 @@ class DiffCoordinator:
|
|
|
459
425
|
diff_branch=diff_request.diff_branch,
|
|
460
426
|
from_time=current_time,
|
|
461
427
|
to_time=end_time,
|
|
428
|
+
tracking_id=diff_request.tracking_id,
|
|
462
429
|
)
|
|
463
430
|
)
|
|
464
431
|
current_time = end_time
|
|
@@ -481,7 +448,6 @@ class DiffCoordinator:
|
|
|
481
448
|
aggregated_enriched_diffs.update_metadata(
|
|
482
449
|
from_time=diff_request.from_time, to_time=diff_request.to_time, tracking_id=diff_request.tracking_id
|
|
483
450
|
)
|
|
484
|
-
aggregated_enriched_diffs.set_fresh_uuids()
|
|
485
451
|
return aggregated_enriched_diffs
|
|
486
452
|
|
|
487
453
|
async def _concatenate_diffs_and_requests(
|
|
@@ -498,6 +464,7 @@ class DiffCoordinator:
|
|
|
498
464
|
meaning multiple diffs (some that may have been freshly calculated) were combined
|
|
499
465
|
"""
|
|
500
466
|
previous_diff_pair: EnrichedDiffs | EnrichedDiffsMetadata | None = None
|
|
467
|
+
updated_node_uuids: set[str] = set()
|
|
501
468
|
for diff_or_request in diff_or_request_list:
|
|
502
469
|
if isinstance(diff_or_request, EnrichedDiffRequest):
|
|
503
470
|
if previous_diff_pair:
|
|
@@ -508,9 +475,12 @@ class DiffCoordinator:
|
|
|
508
475
|
log.info(f"Number node field specifiers: {len(node_field_specifiers)}")
|
|
509
476
|
diff_or_request.node_field_specifiers = node_field_specifiers
|
|
510
477
|
is_incremental_diff = diff_or_request.from_time != full_diff_request.from_time
|
|
511
|
-
|
|
478
|
+
calculated_diff = await self._calculate_enriched_diff(
|
|
512
479
|
diff_request=diff_or_request, is_incremental_diff=is_incremental_diff
|
|
513
480
|
)
|
|
481
|
+
updated_node_uuids |= calculated_diff.base_node_uuids
|
|
482
|
+
updated_node_uuids |= calculated_diff.branch_node_uuids
|
|
483
|
+
single_enriched_diffs: EnrichedDiffs | EnrichedDiffsMetadata = calculated_diff
|
|
514
484
|
|
|
515
485
|
elif isinstance(diff_or_request, EnrichedDiffsMetadata):
|
|
516
486
|
single_enriched_diffs = diff_or_request
|
|
@@ -522,13 +492,20 @@ class DiffCoordinator:
|
|
|
522
492
|
continue
|
|
523
493
|
|
|
524
494
|
log.info("Combining diffs...")
|
|
525
|
-
previous_diff_pair = await self._combine_diffs(
|
|
495
|
+
previous_diff_pair = await self._combine_diffs(
|
|
496
|
+
earlier=previous_diff_pair,
|
|
497
|
+
later=single_enriched_diffs,
|
|
498
|
+
node_uuids=updated_node_uuids,
|
|
499
|
+
)
|
|
526
500
|
log.info("Diffs combined.")
|
|
527
501
|
|
|
528
502
|
return previous_diff_pair
|
|
529
503
|
|
|
530
504
|
async def _combine_diffs(
|
|
531
|
-
self,
|
|
505
|
+
self,
|
|
506
|
+
earlier: EnrichedDiffs | EnrichedDiffsMetadata,
|
|
507
|
+
later: EnrichedDiffs | EnrichedDiffsMetadata,
|
|
508
|
+
node_uuids: set[str],
|
|
532
509
|
) -> EnrichedDiffs | EnrichedDiffsMetadata:
|
|
533
510
|
log.info(f"Earlier diff to combine: {earlier!r}")
|
|
534
511
|
log.info(f"Later diff to combine: {later!r}")
|
|
@@ -545,11 +522,11 @@ class DiffCoordinator:
|
|
|
545
522
|
# hydrate the diffs to combine, if necessary
|
|
546
523
|
if not isinstance(earlier, EnrichedDiffs):
|
|
547
524
|
log.info("Hydrating earlier diff...")
|
|
548
|
-
earlier = await self.diff_repo.hydrate_diff_pair(enriched_diffs_metadata=earlier)
|
|
525
|
+
earlier = await self.diff_repo.hydrate_diff_pair(enriched_diffs_metadata=earlier, node_uuids=node_uuids)
|
|
549
526
|
log.info("Earlier diff hydrated.")
|
|
550
527
|
if not isinstance(later, EnrichedDiffs):
|
|
551
528
|
log.info("Hydrating later diff...")
|
|
552
|
-
later = await self.diff_repo.hydrate_diff_pair(enriched_diffs_metadata=later)
|
|
529
|
+
later = await self.diff_repo.hydrate_diff_pair(enriched_diffs_metadata=later, node_uuids=node_uuids)
|
|
553
530
|
log.info("Later diff hydrated.")
|
|
554
531
|
|
|
555
532
|
return await self.diff_combiner.combine(earlier_diffs=earlier, later_diffs=later)
|
|
@@ -570,6 +547,8 @@ class DiffCoordinator:
|
|
|
570
547
|
previous_node_specifiers=diff_request.node_field_specifiers,
|
|
571
548
|
)
|
|
572
549
|
log.info("Calculation complete. Enriching diff...")
|
|
573
|
-
enriched_diff_pair = await self.diff_enricher.enrich(
|
|
550
|
+
enriched_diff_pair = await self.diff_enricher.enrich(
|
|
551
|
+
calculated_diffs=calculated_diff_pair, tracking_id=diff_request.tracking_id
|
|
552
|
+
)
|
|
574
553
|
log.info("Enrichment complete")
|
|
575
554
|
return enriched_diff_pair
|