infrahub-server 1.4.10__py3-none-any.whl → 1.4.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. infrahub/api/oauth2.py +13 -19
  2. infrahub/api/oidc.py +15 -21
  3. infrahub/artifacts/models.py +2 -1
  4. infrahub/auth.py +137 -3
  5. infrahub/cli/db.py +24 -0
  6. infrahub/cli/db_commands/clean_duplicate_schema_fields.py +212 -0
  7. infrahub/computed_attribute/tasks.py +1 -1
  8. infrahub/core/changelog/models.py +2 -2
  9. infrahub/core/diff/query/artifact.py +1 -1
  10. infrahub/core/graph/__init__.py +1 -1
  11. infrahub/core/ipam/utilization.py +1 -1
  12. infrahub/core/manager.py +6 -3
  13. infrahub/core/migrations/graph/__init__.py +2 -0
  14. infrahub/core/migrations/graph/m040_duplicated_attributes.py +81 -0
  15. infrahub/core/migrations/schema/node_attribute_add.py +10 -0
  16. infrahub/core/node/constraints/attribute_uniqueness.py +3 -1
  17. infrahub/core/node/create.py +16 -5
  18. infrahub/core/query/node.py +7 -3
  19. infrahub/core/registry.py +2 -2
  20. infrahub/core/relationship/constraints/count.py +1 -1
  21. infrahub/core/relationship/model.py +1 -1
  22. infrahub/core/schema/definitions/internal.py +4 -0
  23. infrahub/core/schema/manager.py +19 -1
  24. infrahub/core/schema/node_schema.py +4 -2
  25. infrahub/core/schema/schema_branch.py +8 -0
  26. infrahub/core/validators/determiner.py +12 -1
  27. infrahub/core/validators/relationship/peer.py +1 -1
  28. infrahub/core/validators/tasks.py +1 -1
  29. infrahub/generators/tasks.py +3 -7
  30. infrahub/git/integrator.py +1 -1
  31. infrahub/git/models.py +2 -1
  32. infrahub/git/repository.py +22 -5
  33. infrahub/git/tasks.py +14 -8
  34. infrahub/git/utils.py +123 -1
  35. infrahub/graphql/analyzer.py +1 -1
  36. infrahub/graphql/manager.py +3 -9
  37. infrahub/graphql/mutations/main.py +3 -3
  38. infrahub/graphql/mutations/schema.py +5 -5
  39. infrahub/message_bus/types.py +2 -1
  40. infrahub/middleware.py +26 -1
  41. infrahub/proposed_change/tasks.py +11 -12
  42. infrahub/server.py +12 -3
  43. infrahub/workers/dependencies.py +8 -1
  44. {infrahub_server-1.4.10.dist-info → infrahub_server-1.4.12.dist-info}/METADATA +3 -2
  45. {infrahub_server-1.4.10.dist-info → infrahub_server-1.4.12.dist-info}/RECORD +51 -49
  46. infrahub_testcontainers/container.py +1 -1
  47. infrahub_testcontainers/docker-compose-cluster.test.yml +1 -1
  48. infrahub_testcontainers/docker-compose.test.yml +1 -1
  49. {infrahub_server-1.4.10.dist-info → infrahub_server-1.4.12.dist-info}/LICENSE.txt +0 -0
  50. {infrahub_server-1.4.10.dist-info → infrahub_server-1.4.12.dist-info}/WHEEL +0 -0
  51. {infrahub_server-1.4.10.dist-info → infrahub_server-1.4.12.dist-info}/entry_points.txt +0 -0
@@ -787,10 +787,7 @@ class GraphQLSchemaManager:
787
787
  attr_kind = get_attr_kind(schema, attr)
788
788
  attr_type = get_attribute_type(kind=attr_kind).get_graphql_update()
789
789
 
790
- # A Field is not required if explicitly indicated or if a default value has been provided
791
- required = not attr.optional if not attr.default_value else False
792
-
793
- attrs[attr.name] = graphene.InputField(attr_type, required=required, description=attr.description)
790
+ attrs[attr.name] = graphene.InputField(attr_type, description=attr.description)
794
791
 
795
792
  for rel in schema.relationships:
796
793
  if rel.internal_peer or rel.read_only:
@@ -798,14 +795,11 @@ class GraphQLSchemaManager:
798
795
 
799
796
  input_type = self._get_related_input_type(relationship=rel)
800
797
 
801
- required = not rel.optional
802
798
  if rel.cardinality == RelationshipCardinality.ONE:
803
- attrs[rel.name] = graphene.InputField(input_type, required=required, description=rel.description)
799
+ attrs[rel.name] = graphene.InputField(input_type, description=rel.description)
804
800
 
805
801
  elif rel.cardinality == RelationshipCardinality.MANY:
806
- attrs[rel.name] = graphene.InputField(
807
- graphene.List(input_type), required=required, description=rel.description
808
- )
802
+ attrs[rel.name] = graphene.InputField(graphene.List(input_type), description=rel.description)
809
803
 
810
804
  return type(f"{schema.kind}UpsertInput", (graphene.InputObjectType,), attrs)
811
805
 
@@ -479,7 +479,7 @@ def _get_kinds_to_lock_on_object_mutation(kind: str, schema_branch: SchemaBranch
479
479
  it means node schema overrided this constraint, in which case we only need to lock on the generic.
480
480
  """
481
481
 
482
- node_schema = schema_branch.get(name=kind)
482
+ node_schema = schema_branch.get(name=kind, duplicate=False)
483
483
 
484
484
  schema_uc = None
485
485
  kinds = []
@@ -494,7 +494,7 @@ def _get_kinds_to_lock_on_object_mutation(kind: str, schema_branch: SchemaBranch
494
494
 
495
495
  node_schema_kind_removed = False
496
496
  for generic_kind in generics_kinds:
497
- generic_uc = schema_branch.get(name=generic_kind).uniqueness_constraints
497
+ generic_uc = schema_branch.get(name=generic_kind, duplicate=False).uniqueness_constraints
498
498
  if generic_uc:
499
499
  kinds.append(generic_kind)
500
500
  if not node_schema_kind_removed and generic_uc == schema_uc:
@@ -513,7 +513,7 @@ def _should_kind_be_locked_on_any_branch(kind: str, schema_branch: SchemaBranch)
513
513
  if kind in KINDS_CONCURRENT_MUTATIONS_NOT_ALLOWED:
514
514
  return True
515
515
 
516
- node_schema = schema_branch.get(name=kind)
516
+ node_schema = schema_branch.get(name=kind, duplicate=False)
517
517
  if node_schema.is_generic_schema:
518
518
  return False
519
519
 
@@ -81,7 +81,7 @@ class SchemaDropdownAdd(Mutation):
81
81
  _validate_schema_permission(graphql_context=graphql_context)
82
82
  await apply_external_context(graphql_context=graphql_context, context_input=context)
83
83
 
84
- kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
84
+ kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name, duplicate=False)
85
85
  attribute = str(data.attribute)
86
86
  validate_kind_dropdown(kind=kind, attribute=attribute)
87
87
  dropdown = str(data.dropdown)
@@ -104,7 +104,7 @@ class SchemaDropdownAdd(Mutation):
104
104
  context=graphql_context.get_context(),
105
105
  )
106
106
 
107
- kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
107
+ kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name, duplicate=False)
108
108
  attrib = kind.get_attribute(attribute)
109
109
  dropdown_entry = {}
110
110
  success = False
@@ -141,7 +141,7 @@ class SchemaDropdownRemove(Mutation):
141
141
  graphql_context: GraphqlContext = info.context
142
142
 
143
143
  _validate_schema_permission(graphql_context=graphql_context)
144
- kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
144
+ kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name, duplicate=False)
145
145
  await apply_external_context(graphql_context=graphql_context, context_input=context)
146
146
 
147
147
  attribute = str(data.attribute)
@@ -197,7 +197,7 @@ class SchemaEnumAdd(Mutation):
197
197
  graphql_context: GraphqlContext = info.context
198
198
 
199
199
  _validate_schema_permission(graphql_context=graphql_context)
200
- kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
200
+ kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name, duplicate=False)
201
201
  await apply_external_context(graphql_context=graphql_context, context_input=context)
202
202
 
203
203
  attribute = str(data.attribute)
@@ -243,7 +243,7 @@ class SchemaEnumRemove(Mutation):
243
243
  graphql_context: GraphqlContext = info.context
244
244
 
245
245
  _validate_schema_permission(graphql_context=graphql_context)
246
- kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name)
246
+ kind = graphql_context.db.schema.get(name=str(data.kind), branch=graphql_context.branch.name, duplicate=False)
247
247
  await apply_external_context(graphql_context=graphql_context, context_input=context)
248
248
 
249
249
  attribute = str(data.attribute)
@@ -89,7 +89,8 @@ class ProposedChangeArtifactDefinition(BaseModel):
89
89
  definition_id: str
90
90
  definition_name: str
91
91
  artifact_name: str
92
- query_name: str
92
+ query_name: str # Deprecated
93
+ query_id: str
93
94
  query_models: list[str]
94
95
  repository_id: str
95
96
  transform_kind: str
infrahub/middleware.py CHANGED
@@ -1,7 +1,8 @@
1
1
  from typing import Any
2
2
 
3
+ from fastapi.middleware.gzip import GZipMiddleware
3
4
  from starlette.middleware.cors import CORSMiddleware
4
- from starlette.types import ASGIApp
5
+ from starlette.types import ASGIApp, Receive, Scope, Send
5
6
 
6
7
  from infrahub import config
7
8
 
@@ -15,3 +16,27 @@ class InfrahubCORSMiddleware(CORSMiddleware):
15
16
  kwargs["allow_headers"] = config.SETTINGS.api.cors_allow_headers
16
17
 
17
18
  super().__init__(app, *args, **kwargs)
19
+
20
+
21
+ class ConditionalGZipMiddleware(GZipMiddleware):
22
+ def __init__(
23
+ self,
24
+ app: ASGIApp,
25
+ *,
26
+ minimum_size: int = 500,
27
+ compresslevel: int = 9,
28
+ include_paths: tuple[str, ...] = (),
29
+ ) -> None:
30
+ super().__init__(app, minimum_size=minimum_size, compresslevel=compresslevel)
31
+ self.include_paths = include_paths
32
+
33
+ async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: # type: ignore[override]
34
+ if scope["type"] != "http":
35
+ await self.app(scope, receive, send)
36
+ return
37
+
38
+ path = scope.get("path", "")
39
+ if any(path.startswith(include) for include in self.include_paths):
40
+ await super().__call__(scope, receive, send)
41
+ else:
42
+ await self.app(scope, receive, send)
@@ -44,7 +44,7 @@ from infrahub.core.diff.model.diff import DiffElementType, SchemaConflict
44
44
  from infrahub.core.diff.model.path import NodeDiffFieldSummary
45
45
  from infrahub.core.integrity.object_conflict.conflict_recorder import ObjectConflictValidatorRecorder
46
46
  from infrahub.core.manager import NodeManager
47
- from infrahub.core.protocols import CoreDataCheck, CoreValidator
47
+ from infrahub.core.protocols import CoreArtifactDefinition, CoreDataCheck, CoreValidator
48
48
  from infrahub.core.protocols import CoreProposedChange as InternalCoreProposedChange
49
49
  from infrahub.core.timestamp import Timestamp
50
50
  from infrahub.core.validators.checks_runner import run_checks_and_update_validator
@@ -58,6 +58,7 @@ from infrahub.generators.models import ProposedChangeGeneratorDefinition
58
58
  from infrahub.git.base import extract_repo_file_information
59
59
  from infrahub.git.models import TriggerRepositoryInternalChecks, TriggerRepositoryUserChecks
60
60
  from infrahub.git.repository import InfrahubRepository, get_initialized_repo
61
+ from infrahub.git.utils import fetch_artifact_definition_targets, fetch_proposed_change_generator_definition_targets
61
62
  from infrahub.log import get_logger
62
63
  from infrahub.message_bus.types import (
63
64
  ProposedChangeArtifactDefinition,
@@ -612,7 +613,7 @@ async def validate_artifacts_generation(model: RequestArtifactDefinitionCheck, c
612
613
  client = get_client()
613
614
 
614
615
  artifact_definition = await client.get(
615
- kind=InfrahubKind.ARTIFACTDEFINITION,
616
+ kind=CoreArtifactDefinition,
616
617
  id=model.artifact_definition.definition_id,
617
618
  branch=model.source_branch,
618
619
  )
@@ -652,9 +653,9 @@ async def validate_artifacts_generation(model: RequestArtifactDefinitionCheck, c
652
653
  branch=model.source_branch,
653
654
  )
654
655
 
655
- await artifact_definition.targets.fetch()
656
- group = artifact_definition.targets.peer
657
- await group.members.fetch()
656
+ group = await fetch_artifact_definition_targets(
657
+ client=client, branch=model.source_branch, definition=artifact_definition
658
+ )
658
659
 
659
660
  artifacts_by_member = {}
660
661
  for artifact in existing_artifacts:
@@ -691,6 +692,7 @@ async def validate_artifacts_generation(model: RequestArtifactDefinitionCheck, c
691
692
  repository_kind=repository.kind,
692
693
  branch_name=model.source_branch,
693
694
  query=model.artifact_definition.query_name,
695
+ query_id=model.artifact_definition.query_id,
694
696
  variables=await member.extract(params=artifact_definition.parameters.value),
695
697
  target_id=member.id,
696
698
  target_kind=member.get_kind(),
@@ -917,14 +919,9 @@ async def request_generator_definition_check(model: RequestGeneratorDefinitionCh
917
919
  branch=model.source_branch,
918
920
  )
919
921
 
920
- group = await client.get(
921
- kind=InfrahubKind.GENERICGROUP,
922
- prefetch_relationships=True,
923
- populate_store=True,
924
- id=model.generator_definition.group_id,
925
- branch=model.source_branch,
922
+ group = await fetch_proposed_change_generator_definition_targets(
923
+ client=client, branch=model.source_branch, definition=model.generator_definition
926
924
  )
927
- await group.members.fetch()
928
925
 
929
926
  instance_by_member = {}
930
927
  for instance in existing_instances:
@@ -1245,6 +1242,7 @@ query GatherArtifactDefinitions {
1245
1242
  }
1246
1243
  query {
1247
1244
  node {
1245
+ id
1248
1246
  models {
1249
1247
  value
1250
1248
  }
@@ -1466,6 +1464,7 @@ def _parse_artifact_definitions(definitions: list[dict]) -> list[ProposedChangeA
1466
1464
  content_type=definition["node"]["content_type"]["value"],
1467
1465
  timeout=definition["node"]["transformation"]["node"]["timeout"]["value"],
1468
1466
  query_name=definition["node"]["transformation"]["node"]["query"]["node"]["name"]["value"],
1467
+ query_id=definition["node"]["transformation"]["node"]["query"]["node"]["id"],
1469
1468
  query_models=definition["node"]["transformation"]["node"]["query"]["node"]["models"]["value"] or [],
1470
1469
  repository_id=definition["node"]["transformation"]["node"]["repository"]["node"]["id"],
1471
1470
  transform_kind=definition["node"]["transformation"]["node"]["__typename"],
infrahub/server.py CHANGED
@@ -10,7 +10,6 @@ from asgi_correlation_id import CorrelationIdMiddleware
10
10
  from asgi_correlation_id.context import correlation_id
11
11
  from fastapi import FastAPI, Request, Response
12
12
  from fastapi.logger import logger
13
- from fastapi.middleware.gzip import GZipMiddleware
14
13
  from fastapi.responses import RedirectResponse
15
14
  from fastapi.staticfiles import StaticFiles
16
15
  from fastapi.templating import Jinja2Templates
@@ -30,7 +29,7 @@ from infrahub.exceptions import Error, ValidationError
30
29
  from infrahub.graphql.api.endpoints import router as graphql_router
31
30
  from infrahub.lock import initialize_lock
32
31
  from infrahub.log import clear_log_context, get_logger, set_log_data
33
- from infrahub.middleware import InfrahubCORSMiddleware
32
+ from infrahub.middleware import ConditionalGZipMiddleware, InfrahubCORSMiddleware
34
33
  from infrahub.services import InfrahubServices
35
34
  from infrahub.trace import add_span_exception, configure_trace, get_traceid
36
35
  from infrahub.worker import WORKER_IDENTITY
@@ -184,7 +183,17 @@ app.add_middleware(
184
183
  skip_paths=["/health"],
185
184
  )
186
185
  app.add_middleware(InfrahubCORSMiddleware)
187
- app.add_middleware(GZipMiddleware, minimum_size=100_000)
186
+ app.add_middleware(
187
+ ConditionalGZipMiddleware,
188
+ minimum_size=100_000,
189
+ compresslevel=1,
190
+ include_paths=(
191
+ "/assets",
192
+ "/favicons",
193
+ "/docs",
194
+ "/api/schema",
195
+ ),
196
+ )
188
197
 
189
198
  app.add_exception_handler(Error, generic_api_exception_handler)
190
199
  app.add_exception_handler(TimestampFormatError, partial(generic_api_exception_handler, http_code=400))
@@ -7,6 +7,7 @@ from infrahub_sdk.config import Config
7
7
  from infrahub import config
8
8
  from infrahub.components import ComponentType
9
9
  from infrahub.constants.environment import INSTALLATION_TYPE
10
+ from infrahub.core.registry import registry
10
11
  from infrahub.database import InfrahubDatabase, get_db
11
12
  from infrahub.services.adapters.cache import InfrahubCache
12
13
  from infrahub.services.adapters.event import InfrahubEventService
@@ -34,7 +35,13 @@ def get_component_type() -> ComponentType:
34
35
 
35
36
 
36
37
  def build_client() -> InfrahubClient:
37
- return InfrahubClient(config=Config(address=config.SETTINGS.main.internal_address, retry_on_failure=True))
38
+ client = InfrahubClient(config=Config(address=config.SETTINGS.main.internal_address, retry_on_failure=True))
39
+ # Populate client schema cache using our internal schema cache
40
+ if registry.schema:
41
+ for branch in registry.schema.get_branches():
42
+ client.schema.set_cache(schema=registry.schema.get_sdk_schema_branch(name=branch), branch=branch)
43
+
44
+ return client
38
45
 
39
46
 
40
47
  @inject
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: infrahub-server
3
- Version: 1.4.10
3
+ Version: 1.4.12
4
4
  Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
5
5
  License: Apache-2.0
6
6
  Author: OpsMill
@@ -16,9 +16,10 @@ Requires-Dist: Jinja2 (>=3,<4)
16
16
  Requires-Dist: aio-pika (>=9.4,<9.5)
17
17
  Requires-Dist: aiodataloader (==0.4.0)
18
18
  Requires-Dist: asgi-correlation-id (==4.2.0)
19
- Requires-Dist: authlib (==1.3.2)
19
+ Requires-Dist: authlib (==1.6.5)
20
20
  Requires-Dist: bcrypt (>=4.1,<4.2)
21
21
  Requires-Dist: boto3 (==1.34.129)
22
+ Requires-Dist: cachetools-async (>=0.0.5,<0.0.6)
22
23
  Requires-Dist: copier (>=9.8.0,<10.0.0)
23
24
  Requires-Dist: dulwich (>=0.22.7,<0.23.0)
24
25
  Requires-Dist: email-validator (>=2.1,<2.2)
@@ -19,8 +19,8 @@ infrahub/api/exceptions.py,sha256=EjTAN2wawBRyxMWgmafdk2CUdmzAqNokP3QNobifQQI,29
19
19
  infrahub/api/file.py,sha256=FnjXkQdSBThnNNYk8CMboEx_935pR1U6aHT0jxA0AdU,2258
20
20
  infrahub/api/internal.py,sha256=ZlE5BkdGcrmLq1RZOCvv8OBBL7iT7wHKGG9Kqc-TTKg,5339
21
21
  infrahub/api/menu.py,sha256=xp5bj5JXQZA6ZEPWoTSGGSfTXZ1sVmehMxr3VSG7FlQ,1216
22
- infrahub/api/oauth2.py,sha256=OwJEsASnQGptn5Aa-LN7_VqEEP4YeXYGOqfq71pD3u8,5642
23
- infrahub/api/oidc.py,sha256=HVbkLszrhLia6XUbeCnwWs97rehLYKwNN5yTFJ255rs,8473
22
+ infrahub/api/oauth2.py,sha256=5CnhMhu-URhJN5GBkeRQg5IBqTg0F_cZT3N-C2t01-4,5471
23
+ infrahub/api/oidc.py,sha256=MYYUUnfFOW6zA4Sw_EoJuvNAwdHb1XRK-sxWTp_rE5s,8345
24
24
  infrahub/api/query.py,sha256=xc5aAY0TLHnswdjiIpvThG974EKGVIXvZCbtdiiZkPw,7312
25
25
  infrahub/api/schema.py,sha256=dUSB51YXaWELZuXYI7UNemd60MJPPBv4m6-MexXOE0k,17450
26
26
  infrahub/api/static/redoc.standalone.js,sha256=77kGx7mVN9EcdER2ZM4gQ-E-ra_N6AZq9QseAeD6kt0,1042008
@@ -29,9 +29,9 @@ infrahub/api/static/swagger-ui.css,sha256=QBcPDuhZ0X-SExunBzKaiKBw5PZodNETZemnfS
29
29
  infrahub/api/storage.py,sha256=yWo7qsDn4SrX89wDsTKOfGTMdWYNsptAdt7Fhfzw1C0,2179
30
30
  infrahub/api/transformation.py,sha256=xGTLxh3gvohzpORLZy_MY2ZkUuFtKhVKR4ygWy8RYWg,5932
31
31
  infrahub/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- infrahub/artifacts/models.py,sha256=QMGEhEEUGE5cvNdSeJpq9G6u1Yw-bL6V0GwB18B2Tow,2133
32
+ infrahub/artifacts/models.py,sha256=P0ehjcj8Nz3WyK08_bJuit62peQBWQv5h0eCXOSgDk0,2241
33
33
  infrahub/artifacts/tasks.py,sha256=L2DOSvUB5ezcxLpy5cFKGzkLtNBjkRqo2Igs1n8eRUQ,3487
34
- infrahub/auth.py,sha256=TItFIxrPDcZGWq2w0lBdnmMrXy1Wrf5uzHuTk3urm2A,10199
34
+ infrahub/auth.py,sha256=GRfrHEiJTLA4LaF45ZVf6sDnIhki3oWGJYTFLYtNyQk,15530
35
35
  infrahub/branch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  infrahub/branch/merge_mutation_checker.py,sha256=bKiQEWEqUqjQEIBDaOKZ2LwA9kgWCEyss80B5yGhPX8,1147
37
37
  infrahub/branch/tasks.py,sha256=09AtjKpA5TC9NxsNt3oE--1pHeh1h1hRYvY41YfMt90,1059
@@ -39,9 +39,10 @@ infrahub/branch/triggers.py,sha256=4sywoEX79fY2NkaGe6tTHnmytf4k6gXDm2FJHkkRJOw,7
39
39
  infrahub/cli/__init__.py,sha256=d8x7c4CIq66zul2w9TdT82qjR5cMXV2zSujovJ4kV00,3948
40
40
  infrahub/cli/constants.py,sha256=CoCeTMnfsA3j7ArdLKLZK4VPxOM7ls17qpxGJmND0m8,129
41
41
  infrahub/cli/context.py,sha256=u2EYq9-vjzzfZdIYIbYmTG67nYSsyVFDPBtJ3KgE7KY,494
42
- infrahub/cli/db.py,sha256=hqZcklxTgAKuXWOthrltOdENsiiTthq6tqySxu4HPFE,37727
42
+ infrahub/cli/db.py,sha256=EXm38ITqUElYHlIetf6zMReqhJitA_6dobv9zf9twyM,38681
43
43
  infrahub/cli/db_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  infrahub/cli/db_commands/check_inheritance.py,sha256=a9aRg6yW0K5364Crqp_U9VDZjT9Shqu3on5nkuoZaYo,11389
45
+ infrahub/cli/db_commands/clean_duplicate_schema_fields.py,sha256=qKVIfxBaBDQeROFP0VctAJqhTLVFyi-Zk6VymsWtJm4,8043
45
46
  infrahub/cli/events.py,sha256=nJmowQgTxRs6qaT41A71Ei9jm6qtYaL2amAT5TA1H_k,1726
46
47
  infrahub/cli/git_agent.py,sha256=ajT9-kdd3xLIysOPe8GqZyCDMkpNyhqfWjBg9HPWVcg,5240
47
48
  infrahub/cli/patch.py,sha256=ztOkWyo0l_Wo0WX10bvSqGZibKzowrwx82oi69cjwkY,6018
@@ -53,7 +54,7 @@ infrahub/computed_attribute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
53
54
  infrahub/computed_attribute/constants.py,sha256=oTMPEfRuf2mcfCkBpRLWRALO6nsLHpFm9jJGu0lowS4,446
54
55
  infrahub/computed_attribute/gather.py,sha256=xhH4dsgCjRFyFshns4Iu3sloe5m1bVMRdeQAJjFdyYU,8220
55
56
  infrahub/computed_attribute/models.py,sha256=P_MijLwCVd7394oyTTfYQ3HmX5wIF966jdchuZaLRbs,17361
56
- infrahub/computed_attribute/tasks.py,sha256=FMNJYPuLp2tBKP-ENNUlZhc6nkq78yl7817mCKTBt2g,17415
57
+ infrahub/computed_attribute/tasks.py,sha256=EolwK0STwPl-ZapSUW7NIMm_T_7i5c3LuiBH8g8S3qw,17402
57
58
  infrahub/computed_attribute/triggers.py,sha256=ve1cUj0CZ7dU1VtZkxET9LD8StszKIL9mCkTZpCeUaI,2304
58
59
  infrahub/config.py,sha256=XV_dLvHnpb5zvgi_jkVZdsId481Jbs6VGWvNwYMkTTw,38957
59
60
  infrahub/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -69,7 +70,7 @@ infrahub/core/branch/models.py,sha256=q8n1KNNPQ3bwz_cMJ_GwGsjF1FPcpazwdUYr6x4Gg-
69
70
  infrahub/core/branch/tasks.py,sha256=ReijjzGzS4aLB8h3FNrDqFN-xZ7bmxcrYW8zm_sFgZ8,20886
70
71
  infrahub/core/changelog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
72
  infrahub/core/changelog/diff.py,sha256=0BxCpsgJ-38x5BBz5XDtAvc9FPy82M0NlzXl8nQ-c70,13752
72
- infrahub/core/changelog/models.py,sha256=UgfJdOFUkMmjeUKe1mPCO7WE3jNENw0UJU3LWFf20HQ,29920
73
+ infrahub/core/changelog/models.py,sha256=atAQ48gMPWmSp3lMIHR_QoEa_C0Lx4QSOrQh68AtSuQ,29954
73
74
  infrahub/core/constants/__init__.py,sha256=fw1Fmfrj_42ZH3hM41JTKeo26kqyIYbJx1T0eQ5wfZg,9783
74
75
  infrahub/core/constants/database.py,sha256=x5tWaT3e0WfCxxrHMcSoHUBMfcUzStLi133CqHjSosU,368
75
76
  infrahub/core/constants/infrahubkind.py,sha256=65xU-8LYBcHbRc3PKAsuE_j37i-1Mpi0LmMXfCWSIUQ,3012
@@ -116,7 +117,7 @@ infrahub/core/diff/parent_node_adder.py,sha256=AFq2KJHGgUVem4WCg-9Qi9h6TTwt-JID1
116
117
  infrahub/core/diff/payload_builder.py,sha256=5R_QuPM5P_uQONmTDbtpIjhshs_OJCcXLnVYjWw-78Q,2094
117
118
  infrahub/core/diff/query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
119
  infrahub/core/diff/query/all_conflicts.py,sha256=gWLwkCR2AK0IJccnhcE8vkSHu5ugZfKTDhCoFi4yAJo,3058
119
- infrahub/core/diff/query/artifact.py,sha256=aYoLeFjFsSYkmHBhIlHMBnil2DkHawpxZ2aHokwn6eQ,9098
120
+ infrahub/core/diff/query/artifact.py,sha256=jopnYwuYEVvknCXqqI3TQnMH69ABfH49p1Zu6hH9dYY,9098
120
121
  infrahub/core/diff/query/delete_query.py,sha256=KMZ-HbSz2RKYqqMZ1Lj0mZBlWvkBYOyOvab2UCki1eo,1021
121
122
  infrahub/core/diff/query/diff_get.py,sha256=SzlJAF5DNKcbavgVOxLKJ-o8EsuImTGE2uNPg9hcMq0,7438
122
123
  infrahub/core/diff/query/diff_summary.py,sha256=sypXfK4EO_BZBuohlv419AjgL5ZeRwMiwnI7IIlh0KE,3841
@@ -139,7 +140,7 @@ infrahub/core/diff/repository/deserializer.py,sha256=bhN9ao8HxqKyRz273QGLNV9z9_S
139
140
  infrahub/core/diff/repository/repository.py,sha256=u0QTMY1e2dknG_DuRAwzFt-Lp1_mdj5lqF2ymt77k9E,25581
140
141
  infrahub/core/diff/tasks.py,sha256=jSXlenTJ5Fc189Xvm971e3-gBDRnfN19cxNaWvEFwAE,3306
141
142
  infrahub/core/enums.py,sha256=qGbhRVoH43Xi0iDkUfWdQiKapJbLT9UKsCobFk_paIk,491
142
- infrahub/core/graph/__init__.py,sha256=pqEHefyIWiA492sH7qk0HW4SxWc4ugXBFIhpI4DyvFY,19
143
+ infrahub/core/graph/__init__.py,sha256=2_7AH-ObUmILq-7DD7GPDWYxj_MZxk3VgQCBMNBIroI,19
143
144
  infrahub/core/graph/constraints.py,sha256=lmuzrKDFoeSKRiLtycB9PXi6zhMYghczKrPYvfWyy90,10396
144
145
  infrahub/core/graph/index.py,sha256=A9jzEE_wldBJsEsflODeMt4GM8sPmmbHAJRNdFioR1k,1736
145
146
  infrahub/core/graph/schema.py,sha256=o50Jcy6GBRk55RkDJSMIDDwHhLD7y_RWOirI9rCex4A,10776
@@ -154,11 +155,11 @@ infrahub/core/ipam/model.py,sha256=_X4_g9Qhsp0046IkQXsPcskJk6LIhbbDmCiz2ieNT6M,1
154
155
  infrahub/core/ipam/reconciler.py,sha256=48do6rx12G25gaKuOguSrVdUDXVpMr3t6ogU1hdPZvs,8991
155
156
  infrahub/core/ipam/size.py,sha256=Iu7cVvN9MkilyG_AGvYm3g3dSDesKRVdDh_AKH7yAqk,614
156
157
  infrahub/core/ipam/tasks.py,sha256=SRVkCv6TBI_VfTZ_tL_ABDaPn3cUNR6vmBJCuahInjI,1492
157
- infrahub/core/ipam/utilization.py,sha256=d-zpXCaWsHgJxBLopCDd7y4sJYvHcIzzpYhbTMIgH74,6733
158
- infrahub/core/manager.py,sha256=xMXPwlaGNnghkRUW0ILwJAUlBQJZqo9cGp9GVyqkqYk,47564
158
+ infrahub/core/ipam/utilization.py,sha256=OKFvcCoxFTkYnwibLhBM2Kbb2vsyI4eX07gtCf_7UXI,6743
159
+ infrahub/core/manager.py,sha256=zlmxJnioJmZynjiRT3jFnBIWGe0Z38uwVm1ZLyxX_MU,47644
159
160
  infrahub/core/merge.py,sha256=TNZpxjNYcl3dnvE8eYXaWSXFDYeEa8DDsS9XbR2XKlA,11217
160
161
  infrahub/core/migrations/__init__.py,sha256=dIExw90CrdTByeJqpiWkaZBclpAfzatG2H6fXx54su0,1305
161
- infrahub/core/migrations/graph/__init__.py,sha256=nCm3XHpKwSrekrOU0WFMVJlnIdJmf9KayjjERIYGx7Q,4225
162
+ infrahub/core/migrations/graph/__init__.py,sha256=Y7X7lpmW7H7ER4ycgPOboZRzr1VYM_u31_cU5F5Vrf0,4296
162
163
  infrahub/core/migrations/graph/m001_add_version_to_graph.py,sha256=YcLN6cFjE6IGheXR4Ujb6CcyY8bJ7WE289hcKJaENOc,1515
163
164
  infrahub/core/migrations/graph/m002_attribute_is_default.py,sha256=wB6f2N_ChTvGajqHD-OWCG5ahRMDhhXZuwo79ieq_II,1036
164
165
  infrahub/core/migrations/graph/m003_relationship_parent_optional.py,sha256=Aya-s98XfE9C7YluOwEjilwgnjaBnZxp27w_Xdv_NmU,2330
@@ -198,6 +199,7 @@ infrahub/core/migrations/graph/m036_drop_attr_value_index.py,sha256=z2BplzX0mue3
198
199
  infrahub/core/migrations/graph/m037_index_attr_vals.py,sha256=bJB4yPWE73XA_ErUcnY90CR09_jbtA0jW6tE5U0GvQ4,22730
199
200
  infrahub/core/migrations/graph/m038_redo_0000_prefix_fix.py,sha256=8seWnXQhgEJDFLWxYHVcnMNDPcHq5C24c0RYrtn_WGE,2411
200
201
  infrahub/core/migrations/graph/m039_ipam_reconcile.py,sha256=gUf4Fo3CrzJ2hwbaKlQclripTDrI7cVk_GHsBlBNMKE,10916
202
+ infrahub/core/migrations/graph/m040_duplicated_attributes.py,sha256=2LxsG-CfcZnBirwGhwYL4kU-g3oxl6lNSM12vZTZ7Gw,2930
201
203
  infrahub/core/migrations/query/__init__.py,sha256=JoWOUWlV6IzwxWxObsfCnAAKUOHJkE7dZlOsfB64ZEo,876
202
204
  infrahub/core/migrations/query/attribute_add.py,sha256=oitzB-PPAclfyNtcwCWJY3RdI5Zi4oEnR62BDzn1UQk,4835
203
205
  infrahub/core/migrations/query/attribute_rename.py,sha256=onb9Nanht1Tz47JgneAcFsuhqqvPS6dvI2nNjRupLLo,6892
@@ -209,7 +211,7 @@ infrahub/core/migrations/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
209
211
  infrahub/core/migrations/schema/attribute_kind_update.py,sha256=bJj33I9q1JlcA5RZG7elQVE8kaHcPJbgvm7RrdD86Po,6180
210
212
  infrahub/core/migrations/schema/attribute_name_update.py,sha256=gebaeQX1MLmOxupTPcCzLJdeEQlUzs3XIl7T15-RdXY,1595
211
213
  infrahub/core/migrations/schema/models.py,sha256=F1yp0GM-HutGdzhE0uPFq9JCTH9iHM3V4iDm2e2c4YU,1357
212
- infrahub/core/migrations/schema/node_attribute_add.py,sha256=xFaSahGbBvloSeya5Xqh5KbmlfkqQ4jfN2_DvLFdxEs,3002
214
+ infrahub/core/migrations/schema/node_attribute_add.py,sha256=XhH8nNWujWHORKVxZOKK2n_O7XNGwHxLr1yljhrrk5I,3322
213
215
  infrahub/core/migrations/schema/node_attribute_remove.py,sha256=Il2ccGTlzP8bpXWJmhKxT4sFZEJxsP7tk2YXi9cgzyY,5283
214
216
  infrahub/core/migrations/schema/node_kind_update.py,sha256=scVJz4FhiI2meIVSDTbc9Q6KfGksMDLMwnuxsaZX1aU,1454
215
217
  infrahub/core/migrations/schema/node_remove.py,sha256=NdPNZH9qXf6HbyTMSaQ3aU58XWauAg861w_3D_Lc5tc,7124
@@ -220,10 +222,10 @@ infrahub/core/models.py,sha256=xwEeXSTD4j13hbyZAjZAlrhXk1hHvWl9I7ve7uUbR7U,26649
220
222
  infrahub/core/node/__init__.py,sha256=mFoAxo1SYHmQ3Vp5KaHdsF584mnz75aCJfxzOEGNkn0,42514
221
223
  infrahub/core/node/base.py,sha256=BAowVRCK_WC50yXym1kCyUppJDJnrODGU5uoj1s0Yd4,2564
222
224
  infrahub/core/node/constraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
- infrahub/core/node/constraints/attribute_uniqueness.py,sha256=9MThTmuqZ7RgK71ZZARlw1k1x3ARn1U67g2_Gatd6rE,2099
225
+ infrahub/core/node/constraints/attribute_uniqueness.py,sha256=lcHBk4d3bc12sywxRTnQs18VEm_S6pDcUhNnsXnb-uI,2162
224
226
  infrahub/core/node/constraints/grouped_uniqueness.py,sha256=F5pmnXVuQNlVmdZY5FRxSGK4gGi1BK1IRgw4emCTlLw,9506
225
227
  infrahub/core/node/constraints/interface.py,sha256=fwB32pRLxteQyKRArqekQ0RXlrDkyzp7Vmq03vSpUEo,291
226
- infrahub/core/node/create.py,sha256=-Yy81om_gARdeCs1mNNag-WMijVX8S27uBIN08BdEqQ,8138
228
+ infrahub/core/node/create.py,sha256=O-KNCnmj3PqeMULrKFNejNTFWtqMcSJenqvyvHQnOCQ,8513
227
229
  infrahub/core/node/delete_validator.py,sha256=mj_HQXkTeP_A3po65-R5bCJnDM9CmFFmcUQIxwPlofc,10559
228
230
  infrahub/core/node/ipam.py,sha256=NWb3TUlVQOGAzq1VvDwISLh61HML0jnalsJ7QojqGwQ,2669
229
231
  infrahub/core/node/permissions.py,sha256=uQzQ62IHcSly6fzPre0nQzlrkCIKzH4HyQkODKB3ZWM,2207
@@ -243,7 +245,7 @@ infrahub/core/query/branch.py,sha256=aIYyDxpnw_Zw2lqTnMEVlhPUaYckZtJJJU1SFUht1o0
243
245
  infrahub/core/query/delete.py,sha256=7tPP1qtNV6QGYtmgE1RKsuQ9oxENnMTVkttLvJ2PiKg,1927
244
246
  infrahub/core/query/diff.py,sha256=jJCkZRo5jGaf-yPAnQ_5ju6sCnknDK0E7vGpqEnaU_k,36881
245
247
  infrahub/core/query/ipam.py,sha256=dOs_LZr-DONrCPw6t5Ug9mBPn8a-S2NKja3Vr-zIeaM,34523
246
- infrahub/core/query/node.py,sha256=OfWS9PfltP89aU4n0KhEjrvAkhAGj9Vl4hcfKcE9LD8,70969
248
+ infrahub/core/query/node.py,sha256=bILKB5fcd0rjPhY5IDtI0OkxsVm2pr4OO9-ayDLT84k,71060
247
249
  infrahub/core/query/relationship.py,sha256=GpaEcf8YRiVpqTxrp10NFOUCHeyE7SqhOFyf3F44eNo,48474
248
250
  infrahub/core/query/resource_manager.py,sha256=uSvs1WZmdbyt_PjaUi9lXnYdPt-lhJV1RjYoUHYjQdk,16620
249
251
  infrahub/core/query/standard_node.py,sha256=mPBXyqk4RzoWRUX4NoojoVi8zk-sJ03GmzmUaWqOgSI,4825
@@ -251,16 +253,16 @@ infrahub/core/query/subquery.py,sha256=5ckxREMrlrELWKCcN_JqwmSHRRE7U3ry2iT_WKI7A
251
253
  infrahub/core/query/task.py,sha256=tLgn8S_KaLYLuOB66D1YM155teHZIHNThkt2iUiKKD4,3137
252
254
  infrahub/core/query/task_log.py,sha256=2RdthOAQrmpKZU8uhV_dJCPqwdsSA_1CYSKpL_eZ_yk,1120
253
255
  infrahub/core/query/utils.py,sha256=t9LMvZWdmi10c3E0HAU_5m7x5zMHhYXsUjX7ZBl2RpU,1091
254
- infrahub/core/registry.py,sha256=eSDFD8gbE1rasYIuLQDWlTKO06HVfuDsuEdT9uqn-6U,8560
256
+ infrahub/core/registry.py,sha256=nGbFrg7cQPNW2JjDOGPkQ-igJSHTnuprMcHsAWyJLUM,8606
255
257
  infrahub/core/relationship/__init__.py,sha256=broUBD0iwpSSGKJbUdG66uau67TQ_DRhqT_PFhuk1ag,154
256
258
  infrahub/core/relationship/constraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
- infrahub/core/relationship/constraints/count.py,sha256=JfP_vjnGmhFPHEgbanxRkrO2fM0O-k2vqYbNuyj2OCs,4355
259
+ infrahub/core/relationship/constraints/count.py,sha256=Ndqj0DHiQNyQxrwLfDgAoa3NJ3kspym6NMVSeXqwoxY,4372
258
260
  infrahub/core/relationship/constraints/interface.py,sha256=YJgbO7YxlOSo5rVveE2KQ2_8onUt9vMGl7V_2MnV32Y,344
259
261
  infrahub/core/relationship/constraints/peer_kind.py,sha256=Bropiav4y6r0iU2KfWJ_kmyIoBHWxhsyzs4S1mVR0SI,2547
260
262
  infrahub/core/relationship/constraints/peer_parent.py,sha256=z7elpC8xS_ovAF28Haq-RNpFtTEiUehzowiDgYGT68U,2343
261
263
  infrahub/core/relationship/constraints/peer_relatives.py,sha256=Ye79l7njaWxZkU2chTOaptIjvKBIawsNCl0IQxCTDtM,2737
262
264
  infrahub/core/relationship/constraints/profiles_kind.py,sha256=nEZPGtGcmelZ1Nb8EPcQ-7_zCLCNIYwwWbU6C9fLj5E,2464
263
- infrahub/core/relationship/model.py,sha256=pfx6BXu3OG_Ew0mk5U3F1VuXBRjGlAqYhaQ9aUwdhLQ,47223
265
+ infrahub/core/relationship/model.py,sha256=vVcEDx5HfDRWZmlO3OTmr8W26yzhnJrZeG4-zdicvJA,47240
264
266
  infrahub/core/root.py,sha256=8ZLSOtnmjQcrjqX2vxNO-AGopEUArmBPo_X5NeZBdP0,416
265
267
  infrahub/core/schema/__init__.py,sha256=Tif-BUwYWVQ0PJGZHFog6lFgnwZevXk3iBcr3zK__BU,4192
266
268
  infrahub/core/schema/attribute_parameters.py,sha256=ABL1GEsOl4_CcDvK9_NucGMaF6LUeOjAxbDQVm_G7eg,6516
@@ -292,7 +294,7 @@ infrahub/core/schema/definitions/core/template.py,sha256=rgYhpimxW0vhTmpo5cv_QA2
292
294
  infrahub/core/schema/definitions/core/transform.py,sha256=UB2TaBjabIiErivBR16srxq7fgYoKjmjZaVun8vxXvY,3061
293
295
  infrahub/core/schema/definitions/core/webhook.py,sha256=rpJ0aw5e64C9WQ5xFx1FvJ7G9tsyZyYIib89OEM4pn4,4346
294
296
  infrahub/core/schema/definitions/deprecated.py,sha256=PUXfRupaxNT3R_a6eFnvAcvXKOZenVb7VnuLAskZfT0,829
295
- infrahub/core/schema/definitions/internal.py,sha256=KXXLBybIIfEE3HVCsQtlSCKSqTKQ7epa7-I64UvpFa4,34526
297
+ infrahub/core/schema/definitions/internal.py,sha256=fiZoBf4BjrFgT8KcF1D8LOt1PcW3SEYBXYyBu4YZDns,34759
296
298
  infrahub/core/schema/dropdown.py,sha256=Vj4eGg9q3OLy3RZm7rjORifURntIMY9GHM7G4t-0Rcs,605
297
299
  infrahub/core/schema/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
298
300
  infrahub/core/schema/generated/attribute_schema.py,sha256=twhckKUz9SEMnDg-bUzTmTHn7W6MF0KFB6R5IFTYvzk,5618
@@ -301,11 +303,11 @@ infrahub/core/schema/generated/genericnode_schema.py,sha256=FvfeYfld9YeKHOzyH6G3
301
303
  infrahub/core/schema/generated/node_schema.py,sha256=PMgbQX1PC5ixQsjOFw_bcEfa4txGNUI6BV6OkFDG3wQ,1631
302
304
  infrahub/core/schema/generated/relationship_schema.py,sha256=F198_LNmQRV0xSEBPRA3vBAioEItpYZVNApOmdb8_E4,5851
303
305
  infrahub/core/schema/generic_schema.py,sha256=KSd5fwMDR2hjrsb1vOaK83Lw5jJAob1FLoudgU5_E2Y,1594
304
- infrahub/core/schema/manager.py,sha256=ImD9jTctdkVc6UXyynP8PUZ2gE6wr87upTpelcLzBfI,33245
305
- infrahub/core/schema/node_schema.py,sha256=cWeQ2iu6Z9Ay6l2gYnPRnS0JAqYQccueYhpEcfep9Mo,6252
306
+ infrahub/core/schema/manager.py,sha256=CN3Z1DM2n3pAykPJadTB9uwZT4ArsSGeNRdZctAyfQE,34102
307
+ infrahub/core/schema/node_schema.py,sha256=zE7v5v46DezMTQEEK0q1nNDFvLVJJk5Colat7ZaLr9M,6312
306
308
  infrahub/core/schema/profile_schema.py,sha256=sV4lp1UyBye12M7BJcA2obb4tx3M9J5P89SLqkmFxJY,1237
307
309
  infrahub/core/schema/relationship_schema.py,sha256=R-1iC1d70bBW0vWhgJhDB0_J3tRpOqcJmmLzh39NuYs,8501
308
- infrahub/core/schema/schema_branch.py,sha256=sqloV0TzPMoZopSqQpGP1RaZpRQ96N55KJjAvplzeLI,106245
310
+ infrahub/core/schema/schema_branch.py,sha256=oFL2rWc1x70hhGDQzjFnBIfVIllmCTg66YnZEkJ607w,106727
309
311
  infrahub/core/schema/schema_branch_computed.py,sha256=14UUsQJDLMHkYhg7QMqeLiTF3PO8c8rGa90ul3F2ZZo,10629
310
312
  infrahub/core/schema/template_schema.py,sha256=cn7-qFUW_LNRfA5q6e1-PdzGSwubuCkLTL6uad2GhdQ,1229
311
313
  infrahub/core/task/__init__.py,sha256=Ied1NvKGJUDmff27z_-yWW8ArenHxGvSvQTaQyx1iHs,128
@@ -327,7 +329,7 @@ infrahub/core/validators/attribute/optional.py,sha256=qczSkKll4eKsutLgiVi_lCHgqa
327
329
  infrahub/core/validators/attribute/regex.py,sha256=DENGbf3H5aS4dZZTeBQc39bJL8Ih70yITqXfpAR6etU,4201
328
330
  infrahub/core/validators/attribute/unique.py,sha256=yPuh0tug8oXNNgrb7DN8sxkHHb5TlXHkMbYK_wz8zX8,5142
329
331
  infrahub/core/validators/checks_runner.py,sha256=xaIfgRLrwDk-9GVx0UilSub8Ee3EPudi5GpY51C5xLk,2513
330
- infrahub/core/validators/determiner.py,sha256=PfD8W6gNfjyMBqmPZV-DkVef98p6Xo79-OrvgL9EmWs,9173
332
+ infrahub/core/validators/determiner.py,sha256=kpj75My8bmEaQLe4wFDXQuWpO_pBVFqjvIrNNswEGHI,9660
331
333
  infrahub/core/validators/enum.py,sha256=RZLYqaMpl_yr91YqngqJ34QCqHIiebQDuDuUaz0B2Gc,747
332
334
  infrahub/core/validators/interface.py,sha256=OqSq8myM73Hik6pzZFVC42-_PHg4qwn2xJLd_AhYU1w,560
333
335
  infrahub/core/validators/model.py,sha256=QtnEt3FBcsPk0cSROgsj93Zr20ZMI-yRXQOa-vEwpTw,1636
@@ -344,9 +346,9 @@ infrahub/core/validators/query.py,sha256=0PCDoYczx6mCthnQH3datjNIm-GKxqS24JkxpzN
344
346
  infrahub/core/validators/relationship/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
347
  infrahub/core/validators/relationship/count.py,sha256=AjXLSx3LqG74rnpFXY0LBCahs5aFl3GWjyCC2DwcyGA,8598
346
348
  infrahub/core/validators/relationship/optional.py,sha256=X1nGKt19RumNInZ0Ij-fEcq6-TrwrJcGOW4rrsQsdV8,4339
347
- infrahub/core/validators/relationship/peer.py,sha256=l6VxKWDn3qjD6y93RNNCjlhYe8tgag5aKhcC99vP2YI,12783
349
+ infrahub/core/validators/relationship/peer.py,sha256=4Kij_nR2ekyFyv78W_-BIwS8VAE4qIilmDmtn_IXjj0,12800
348
350
  infrahub/core/validators/shared.py,sha256=dhCz2oTM5JxA3mpcQvN83KIKIv-VNPSiG0lh4ZiTAFw,1345
349
- infrahub/core/validators/tasks.py,sha256=GhojeqH4YErlwyY3xzhW8hw4VS3JaB8-VQQKp5tdtLw,3913
351
+ infrahub/core/validators/tasks.py,sha256=Qb9q2l55NKhvWXCrZclVWvJhzsN3yniN7nsYqULl0wA,3930
350
352
  infrahub/core/validators/uniqueness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
351
353
  infrahub/core/validators/uniqueness/checker.py,sha256=5WbYjS4yfezsK0Ez35Vp9soJ9K0mA_w-lPSXrivjyQg,10494
352
354
  infrahub/core/validators/uniqueness/index.py,sha256=Jw1o-UVinQquNduZ5vCCzt8GUfIEdVzBo-1XyRti8F8,5068
@@ -435,22 +437,22 @@ infrahub/events/validator_action.py,sha256=nQJH-RWcgr3-tzmIldvPmu5O7dUAmv1qQnuxx
435
437
  infrahub/exceptions.py,sha256=cbM-f_2U-5ZFVZ_MaaXgs64k4M7uJ7fqDU2iCRoWlYY,11861
436
438
  infrahub/generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
437
439
  infrahub/generators/models.py,sha256=9qhSfsoG-uYux35HClAxSq7TRfkosqN3i_eQkeTokLs,1916
438
- infrahub/generators/tasks.py,sha256=Ci6lIbnUS6faGzbUjw1ggROpv17guZ-Z9HH9f6cAZv4,9563
440
+ infrahub/generators/tasks.py,sha256=wxlRsGHUwuYxbpuz6ReQ40DPmRTGwndorBdcpzpvp_8,9552
439
441
  infrahub/git/__init__.py,sha256=KeQ9U8UI5jDj6KB6j00Oal7MZmtOD9vKqVgiezG_EQA,281
440
442
  infrahub/git/base.py,sha256=tEfhxYNc8bAcq1Pld7ZSK41w1fm48eMsF5QnMSKz50E,38716
441
443
  infrahub/git/constants.py,sha256=XpzcAkXbsgXZgrXey74id1sXV8Q6EHb_4FNw7BndxyY,106
442
444
  infrahub/git/directory.py,sha256=fozxLXXJPweHG95yQwQkR5yy3sfTdmHiczCAJnsUX54,861
443
- infrahub/git/integrator.py,sha256=fpeOC1ycVYZixPcrR-TwmZXHgaAvXpPd50ys04GFXdg,62889
444
- infrahub/git/models.py,sha256=tu-YRNZ4nlYZ6QbBWhydFRcVa0nlN7Cl3k5U0yLi53Y,12250
445
- infrahub/git/repository.py,sha256=wPsJAA9aHTHdfw0gqCfkNHvcivs7JabsDf-uazptZt0,10928
446
- infrahub/git/tasks.py,sha256=QRBqmGODtuDJyHoL8wFOBeE0_cY-m5xRGaPbKn1-CzQ,37584
447
- infrahub/git/utils.py,sha256=xhWxlu_FbMqbrwanpPkex4hKRS_d2AFzlxI_6kVQllw,1741
445
+ infrahub/git/integrator.py,sha256=4vlTqped0IFU3elgmwZKRvDHaSu2qoBNWikrIb0S2no,62892
446
+ infrahub/git/models.py,sha256=i-6KsAm98B__bP23VVykhuMqadqCLfT0sJAIamRzLII,12358
447
+ infrahub/git/repository.py,sha256=Z8I-DMkT6hfBkm3bQwQgkbilTGEgFl14sV8sr3g73mA,11584
448
+ infrahub/git/tasks.py,sha256=cFDf9IFDt62RB95JZe3FLU6Qi52Up_7hq7NyZJ0Akb4,37838
449
+ infrahub/git/utils.py,sha256=1VCvxpXIpDWlM15Ix8IJEsMXNWMRG9gKLjaHb3RSTqg,5345
448
450
  infrahub/git/worktree.py,sha256=8IYJWOBytKUWwhMmMVehR4ceeO9e13nV-mvn3iVEgZY,1727
449
451
  infrahub/git_credential/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
450
452
  infrahub/git_credential/askpass.py,sha256=BL7e4Xkx5la7XFk-GQR6MXxV5B29Mzb5ZnVnljd7Xpw,1513
451
453
  infrahub/git_credential/helper.py,sha256=cwSMKRTgqrqIBM66jEOtlj4MMLf647KJWmtnnVxFtTY,2337
452
454
  infrahub/graphql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
453
- infrahub/graphql/analyzer.py,sha256=TAWo4AWMr33MFjK3YcYBxXSjdwRHxU2HzpIuY9tTHqU,30516
455
+ infrahub/graphql/analyzer.py,sha256=Y1c-9gd0vyZqFHib4kaA2G5Ct3A7X8AotA3Oh8vpaV0,30533
454
456
  infrahub/graphql/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
455
457
  infrahub/graphql/api/dependencies.py,sha256=-NMUA_N4tWcVpS6ksCebAyza-JTmHqyYY_QZizgBR1c,1690
456
458
  infrahub/graphql/api/endpoints.py,sha256=wH9eO3CFT-eoSe1Y32BhU9mIf6smEnPeP3tAxZkdt4g,1510
@@ -474,7 +476,7 @@ infrahub/graphql/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
474
476
  infrahub/graphql/loaders/node.py,sha256=p7qJxRpXSAddq2fcwJeaIRy-5ReSn2EUitQbDhlmdM4,2618
475
477
  infrahub/graphql/loaders/peers.py,sha256=wsB-ZtaU-BlR99EvWUbf6_SFhFJYOspz5QaTln_MZ4Q,2799
476
478
  infrahub/graphql/loaders/shared.py,sha256=hUxLy8iVgfpEZiUMKNkUAeshPKKzEVSDMDsuaBbjJW4,389
477
- infrahub/graphql/manager.py,sha256=9MAnX9kDGc-we27MwU9WhwQhuSdE7VFojdJqPIpPyLw,45737
479
+ infrahub/graphql/manager.py,sha256=CC5rX1hudgP_LOoma8b_hwHbDQpqp3nmJ3rMXorextk,45421
478
480
  infrahub/graphql/metrics.py,sha256=viq_M57mDYd4DDK7suUttf1FJTgzQ3U50yOuSw_Nd-s,2267
479
481
  infrahub/graphql/models.py,sha256=7kr3DSO_rujPocMIfPyZ5Hwy3Mpnu4ySDMAIE9G5Y7Y,147
480
482
  infrahub/graphql/mutations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -490,7 +492,7 @@ infrahub/graphql/mutations/diff_conflict.py,sha256=JngQfyKXCVlmtlqQ_VyabmrOEDOEK
490
492
  infrahub/graphql/mutations/generator.py,sha256=Ulw4whZm8Gc8lJjwfUFoFSsR0cOUliFKl87Oca4B9O0,3579
491
493
  infrahub/graphql/mutations/graphql_query.py,sha256=a8tCTrjJipwIghmxlcUkH1Hx_7tem5QhzrTczcwpuZM,3644
492
494
  infrahub/graphql/mutations/ipam.py,sha256=KnfIq6TD9Q649T8BI-pvUmtH5P7GX4UEsz0P22et0MI,16207
493
- infrahub/graphql/mutations/main.py,sha256=Zqq2zi24ZR8S8ikZ21F2_3kIqYc8tXtvDyit1Xz27vw,21938
495
+ infrahub/graphql/mutations/main.py,sha256=tZ3gupHEHPkwmH-ggnx7MBC0YdtvwNcB0sIumRPC0B8,21989
494
496
  infrahub/graphql/mutations/menu.py,sha256=NSdtUobZ-5dsQdBFfD1xyoE9dKw9FS62T_6UQM0cEUY,3790
495
497
  infrahub/graphql/mutations/models.py,sha256=ilkSLr8OxVO9v3Ra_uDyUTJT9qPOmdPMqQbuWIydJMo,264
496
498
  infrahub/graphql/mutations/node_getter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -502,7 +504,7 @@ infrahub/graphql/mutations/proposed_change.py,sha256=lCn6JQatwTt3hBre9yawzchgW7I
502
504
  infrahub/graphql/mutations/relationship.py,sha256=pOyqmJGuagrWeH8DlXaZ2X_F9Qrogx0OTOGvCjYpWT4,21937
503
505
  infrahub/graphql/mutations/repository.py,sha256=DzD8F0XOoiorPJl9iqORajnQo6nFMMzGB6uGIE6B38o,11398
504
506
  infrahub/graphql/mutations/resource_manager.py,sha256=DvnmfXmS9bNYXjtgedGTKPdJmtdaCbM5qxl0OJ-t1yQ,11342
505
- infrahub/graphql/mutations/schema.py,sha256=6N70sGn-g5LNyfWwJZ-gonjbCY-Kc1IOukof3Np6pQQ,13568
507
+ infrahub/graphql/mutations/schema.py,sha256=5dsi5Xnnk--p6v9hZcgtaAXIizcfmE-faIJray7FyjA,13653
506
508
  infrahub/graphql/mutations/tasks.py,sha256=GsZVSVfBr1NgNPEHY_OHA5Y9tIbimyEcrYE7XsXXwFw,3815
507
509
  infrahub/graphql/mutations/webhook.py,sha256=mCkUv2wvQMAx33BKYkj-Xlpi7rskojNQbqqbACAWzQw,4881
508
510
  infrahub/graphql/parser.py,sha256=MBvCnj4J0zYCdIf86_sxKF1Y_eaI3KHlQqdBae958Ok,9035
@@ -577,8 +579,8 @@ infrahub/message_bus/operations/refresh/__init__.py,sha256=vBuvTL4zRRpOMXATmckQ3
577
579
  infrahub/message_bus/operations/refresh/registry.py,sha256=ny-8_Gsd46CgdDm_ZXBwMpYdxNMU3t7CyglTWH3Q6Ww,1277
578
580
  infrahub/message_bus/operations/send/__init__.py,sha256=ivuUTAknLiWfArR44SxA40l0UKVkdHjtDIx0mg06IcE,39
579
581
  infrahub/message_bus/operations/send/echo.py,sha256=656IFCpl2EA6EQjA2iwdJtYyo4yKb6iiv4r3oqQEd6o,712
580
- infrahub/message_bus/types.py,sha256=FO03DpApTBozN8ZUgQRWO5zK2ymolhhJEwrRgDWLSEs,4438
581
- infrahub/middleware.py,sha256=g6lPpXewWNcLjyzRsr7FjdTIbdc5H2HitGQX-L7itgI,657
582
+ infrahub/message_bus/types.py,sha256=o-Wn2pfb-xpQBYANJSX1szs6y8T8LJdRxz6OTMnv6ps,4470
583
+ infrahub/middleware.py,sha256=Su129MXkXazE9ODlIZ_KtuRHOakMsOHbVKIx15NKXpU,1547
582
584
  infrahub/models.py,sha256=QmwJwo3hNCta8BXM7eLsD9qv1S73Rj0cC_crLpadHTc,715
583
585
  infrahub/patch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
584
586
  infrahub/patch/constants.py,sha256=dhJ9XGujYq_t3RL6PC3wvP47UPvf3MvMPrU-hISOv1U,479
@@ -623,7 +625,7 @@ infrahub/proposed_change/branch_diff.py,sha256=IdMxf5zPmhybQKPPz7AlruNmLCKf5VISP
623
625
  infrahub/proposed_change/checker.py,sha256=ZhNEVJKsQbHH2UE1O35MfOVa8cK1QGEqGyn6MsOuqSQ,1558
624
626
  infrahub/proposed_change/constants.py,sha256=auifG94Oo2cJ4RwZx4P-XDPDpKYPtEVxh013KPfiEdU,2080
625
627
  infrahub/proposed_change/models.py,sha256=ivWJmEAihprKmwgaBGDJ4Koq4ETciE5GfDp86KHDnns,5892
626
- infrahub/proposed_change/tasks.py,sha256=-jAIhul4RCqx5MRWM1ITHoa1S7CEmQC06vsBKXfvTLk,64037
628
+ infrahub/proposed_change/tasks.py,sha256=MQHl1PlXJ5-Lo7QNATbsDYxBD_SRDyLXzWAXm8v1Y68,64264
627
629
  infrahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
630
  infrahub/pytest_plugin.py,sha256=u3t0WgLMo9XmuQYeb28mccQ3xbnyv2Fv173YWl1zBiM,6678
629
631
  infrahub/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -633,7 +635,7 @@ infrahub/serve/__init__.py,sha256=cWzvEH-Zwr1nQsoNJO9q1pef5KLuSK3VQLOumlnsQxk,73
633
635
  infrahub/serve/gunicorn_config.py,sha256=BkClF6yjz-sIhZ-oDizXUmGSEE-FQSmy21JfVnRI5tA,102
634
636
  infrahub/serve/log.py,sha256=qUidwbtE5AlyLHnWKVoEggOoHKhfMMjYlUH1d-iGwqg,953
635
637
  infrahub/serve/worker.py,sha256=nNGQORkUM474UiFNfb0GBHo2vx-NuAuZCcscwoKnGwE,1371
636
- infrahub/server.py,sha256=Ixj3vhwBX83TnsNCbZo8LGQpQk0nv7QEUVBpmCitC7k,8129
638
+ infrahub/server.py,sha256=B4xc_O-4rX8knEZt9dgHQU5MsfhEAkOvYVAu_6OdrvU,8255
637
639
  infrahub/services/__init__.py,sha256=P9jeX6gKxpzbjyZDJ24N7cm9DYmfOu8njo44sHFvAko,6232
638
640
  infrahub/services/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
639
641
  infrahub/services/adapters/cache/__init__.py,sha256=WsEthxQbcyCOA2M_FzfQr0Cymo4hprCq0m6Vg55uMXo,1919
@@ -696,7 +698,7 @@ infrahub/webhook/tasks.py,sha256=2msOOqqFStQbNje7Eq0glAdlprs-ASHii3qQXFIEyzE,725
696
698
  infrahub/webhook/triggers.py,sha256=v1dzFV4wX0GO2n5hft_qzp-oJOA2P_9Q2eTcSP-i0pk,1574
697
699
  infrahub/worker.py,sha256=zV9vLXtJzyqeTGtVolwZEHlLaBvGiUZv00qWpE-lnOM,353
698
700
  infrahub/workers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
699
- infrahub/workers/dependencies.py,sha256=byuliu9WrOGtQ-Zws8NSTq3LJwnqxIqQ7dcWP3KNlAg,4850
701
+ infrahub/workers/dependencies.py,sha256=7Zb1JHjNfNFjXnxrZxWZJE_axSCwwkfthttxfVoHcRY,5170
700
702
  infrahub/workers/infrahub_async.py,sha256=9itLnky6BuqWR92fuU-SShaSI-33eoSRfhOEZy0TH0g,7973
701
703
  infrahub/workers/utils.py,sha256=m6FOKrYo53Aoj-JcEyQ7-J4Dc20R9JtHMDzTcqXiRpg,2407
702
704
  infrahub/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -817,9 +819,9 @@ infrahub_sdk/uuidt.py,sha256=Tz-4nHkJwbi39UT3gaIe2wJeZNAoBqf6tm3sw7LZbXc,2155
817
819
  infrahub_sdk/yaml.py,sha256=PRsS7BEM-Xn5wRLAAG-YLTGRBEJy5Dnyim2YskFfe8I,5539
818
820
  infrahub_testcontainers/__init__.py,sha256=oPpmesGgYBSdKTg1L37FGwYBeao1EHury5SJGul-CT8,216
819
821
  infrahub_testcontainers/constants.py,sha256=mZ4hLvcf4rKk9wC7EId4MQxAY0sk4V99deB04N0J2bg,85
820
- infrahub_testcontainers/container.py,sha256=OX3tylqFrqQ0tA2BFXI243LbWjRElgmcmL-hu_z1wQ8,20515
821
- infrahub_testcontainers/docker-compose-cluster.test.yml,sha256=dgnujqpM6dVWoqcSiRgsqXkyzdO-jRunHIIDd-K6FHg,14763
822
- infrahub_testcontainers/docker-compose.test.yml,sha256=P7MR-YQ-_0wGdoYW3N5TI5-6FyzpKnzhi_k0OIqgtTc,11161
822
+ infrahub_testcontainers/container.py,sha256=RodXcIry-ppcpce_xnzpZuBHVinYyMq64NZ6cuCvhBE,20516
823
+ infrahub_testcontainers/docker-compose-cluster.test.yml,sha256=3Zgupnt6rOCk5EK0PsUXJL1thmTbKzQelC3AeS3sGKA,14764
824
+ infrahub_testcontainers/docker-compose.test.yml,sha256=EWxll1vzAdOzTdJX3_um30nIygM-bSHPskF6AelSZRk,11162
823
825
  infrahub_testcontainers/haproxy.cfg,sha256=QUkG2Xu-hKoknPOeYKAkBT_xJH6U9CfIS0DTMFZJsnk,1305
824
826
  infrahub_testcontainers/helpers.py,sha256=rGEWIeUfDg4w1wJNCzTm7_H1oA58HaMSORjVlHw1aWA,4677
825
827
  infrahub_testcontainers/host.py,sha256=Z4_gGoGKKeM_HGVS7SdYL1FTNGyLBk8wzicdSKHpfmM,1486
@@ -828,8 +830,8 @@ infrahub_testcontainers/models.py,sha256=ASYyvl7d_WQz_i7y8-3iab9hwwmCl3OCJavqVbe
828
830
  infrahub_testcontainers/performance_test.py,sha256=hvwiy6tc_lWniYqGkqfOXVGAmA_IV15VOZqbiD9ezno,6149
829
831
  infrahub_testcontainers/plugin.py,sha256=I3RuZQ0dARyKHuqCf0y1Yj731P2Mwf3BJUehRJKeWrs,5645
830
832
  infrahub_testcontainers/prometheus.yml,sha256=610xQEyj3xuVJMzPkC4m1fRnCrjGpiRBrXA2ytCLa54,599
831
- infrahub_server-1.4.10.dist-info/LICENSE.txt,sha256=7GQO7kxVoQYnZtFrjZBKLRXbrGwwwimHPPOJtqXsozQ,11340
832
- infrahub_server-1.4.10.dist-info/METADATA,sha256=0kkkcbzuPM3vb9EnfBvIQGjm_t9Ow2qHs3pf0O_pCHk,6210
833
- infrahub_server-1.4.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
834
- infrahub_server-1.4.10.dist-info/entry_points.txt,sha256=UXIeFWDsrV-4IllNvUEd6KieYGzQfn9paga2YyABOQI,393
835
- infrahub_server-1.4.10.dist-info/RECORD,,
833
+ infrahub_server-1.4.12.dist-info/LICENSE.txt,sha256=7GQO7kxVoQYnZtFrjZBKLRXbrGwwwimHPPOJtqXsozQ,11340
834
+ infrahub_server-1.4.12.dist-info/METADATA,sha256=myn6mYFb-eFR9Kf5sjUYDCmgxz9GG1xxOsB07xvKmjU,6259
835
+ infrahub_server-1.4.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
836
+ infrahub_server-1.4.12.dist-info/entry_points.txt,sha256=UXIeFWDsrV-4IllNvUEd6KieYGzQfn9paga2YyABOQI,393
837
+ infrahub_server-1.4.12.dist-info/RECORD,,