infrahub-server 1.2.10__py3-none-any.whl → 1.3.0a0__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 (134) hide show
  1. infrahub/actions/constants.py +86 -0
  2. infrahub/actions/gather.py +114 -0
  3. infrahub/actions/models.py +241 -0
  4. infrahub/actions/parsers.py +104 -0
  5. infrahub/actions/schema.py +382 -0
  6. infrahub/actions/tasks.py +126 -0
  7. infrahub/actions/triggers.py +21 -0
  8. infrahub/cli/db.py +1 -2
  9. infrahub/config.py +9 -0
  10. infrahub/core/account.py +24 -47
  11. infrahub/core/attribute.py +10 -12
  12. infrahub/core/constants/infrahubkind.py +8 -0
  13. infrahub/core/constraint/node/runner.py +1 -1
  14. infrahub/core/convert_object_type/__init__.py +0 -0
  15. infrahub/core/convert_object_type/conversion.py +122 -0
  16. infrahub/core/convert_object_type/schema_mapping.py +56 -0
  17. infrahub/core/diff/query/all_conflicts.py +1 -5
  18. infrahub/core/diff/query/artifact.py +10 -20
  19. infrahub/core/diff/query/diff_get.py +3 -6
  20. infrahub/core/diff/query/field_summary.py +2 -4
  21. infrahub/core/diff/query/merge.py +70 -123
  22. infrahub/core/diff/query/save.py +20 -32
  23. infrahub/core/diff/query/summary_counts_enricher.py +34 -54
  24. infrahub/core/diff/query_parser.py +5 -1
  25. infrahub/core/diff/tasks.py +3 -3
  26. infrahub/core/manager.py +14 -11
  27. infrahub/core/migrations/graph/m003_relationship_parent_optional.py +1 -2
  28. infrahub/core/migrations/graph/m013_convert_git_password_credential.py +2 -4
  29. infrahub/core/migrations/graph/m019_restore_rels_to_time.py +11 -22
  30. infrahub/core/migrations/graph/m020_duplicate_edges.py +3 -6
  31. infrahub/core/migrations/graph/m021_missing_hierarchy_merge.py +1 -2
  32. infrahub/core/migrations/graph/m024_missing_hierarchy_backfill.py +1 -2
  33. infrahub/core/migrations/query/attribute_add.py +1 -2
  34. infrahub/core/migrations/query/attribute_rename.py +3 -6
  35. infrahub/core/migrations/query/delete_element_in_schema.py +3 -6
  36. infrahub/core/migrations/query/node_duplicate.py +3 -6
  37. infrahub/core/migrations/query/relationship_duplicate.py +3 -6
  38. infrahub/core/migrations/schema/node_attribute_remove.py +3 -6
  39. infrahub/core/migrations/schema/node_remove.py +3 -6
  40. infrahub/core/models.py +29 -2
  41. infrahub/core/node/__init__.py +18 -4
  42. infrahub/core/node/create.py +211 -0
  43. infrahub/core/protocols.py +51 -0
  44. infrahub/core/protocols_base.py +3 -0
  45. infrahub/core/query/__init__.py +2 -2
  46. infrahub/core/query/diff.py +26 -32
  47. infrahub/core/query/ipam.py +10 -20
  48. infrahub/core/query/node.py +28 -46
  49. infrahub/core/query/relationship.py +51 -28
  50. infrahub/core/query/resource_manager.py +1 -2
  51. infrahub/core/query/subquery.py +2 -4
  52. infrahub/core/relationship/model.py +3 -0
  53. infrahub/core/schema/__init__.py +2 -1
  54. infrahub/core/schema/attribute_parameters.py +36 -0
  55. infrahub/core/schema/attribute_schema.py +83 -8
  56. infrahub/core/schema/basenode_schema.py +25 -1
  57. infrahub/core/schema/definitions/core/__init__.py +21 -0
  58. infrahub/core/schema/definitions/internal.py +13 -3
  59. infrahub/core/schema/generated/attribute_schema.py +9 -3
  60. infrahub/core/schema/schema_branch.py +12 -7
  61. infrahub/core/validators/__init__.py +5 -1
  62. infrahub/core/validators/attribute/choices.py +1 -2
  63. infrahub/core/validators/attribute/enum.py +1 -2
  64. infrahub/core/validators/attribute/kind.py +1 -2
  65. infrahub/core/validators/attribute/length.py +13 -6
  66. infrahub/core/validators/attribute/optional.py +1 -2
  67. infrahub/core/validators/attribute/regex.py +5 -5
  68. infrahub/core/validators/attribute/unique.py +1 -3
  69. infrahub/core/validators/determiner.py +18 -2
  70. infrahub/core/validators/enum.py +7 -0
  71. infrahub/core/validators/node/hierarchy.py +3 -6
  72. infrahub/core/validators/query.py +1 -3
  73. infrahub/core/validators/relationship/count.py +6 -12
  74. infrahub/core/validators/relationship/optional.py +2 -4
  75. infrahub/core/validators/relationship/peer.py +3 -8
  76. infrahub/core/validators/tasks.py +1 -1
  77. infrahub/core/validators/uniqueness/query.py +5 -9
  78. infrahub/database/__init__.py +1 -3
  79. infrahub/events/group_action.py +1 -0
  80. infrahub/graphql/analyzer.py +139 -18
  81. infrahub/graphql/app.py +1 -1
  82. infrahub/graphql/loaders/node.py +1 -1
  83. infrahub/graphql/loaders/peers.py +1 -1
  84. infrahub/graphql/manager.py +4 -0
  85. infrahub/graphql/mutations/action.py +164 -0
  86. infrahub/graphql/mutations/convert_object_type.py +62 -0
  87. infrahub/graphql/mutations/main.py +24 -175
  88. infrahub/graphql/mutations/proposed_change.py +21 -18
  89. infrahub/graphql/queries/convert_object_type_mapping.py +36 -0
  90. infrahub/graphql/queries/relationship.py +1 -1
  91. infrahub/graphql/resolvers/many_relationship.py +4 -4
  92. infrahub/graphql/resolvers/resolver.py +4 -4
  93. infrahub/graphql/resolvers/single_relationship.py +2 -2
  94. infrahub/graphql/schema.py +6 -0
  95. infrahub/graphql/subscription/graphql_query.py +2 -2
  96. infrahub/graphql/types/branch.py +1 -1
  97. infrahub/menu/menu.py +31 -0
  98. infrahub/message_bus/messages/__init__.py +0 -10
  99. infrahub/message_bus/operations/__init__.py +0 -8
  100. infrahub/message_bus/operations/refresh/registry.py +1 -1
  101. infrahub/patch/queries/consolidate_duplicated_nodes.py +3 -6
  102. infrahub/patch/queries/delete_duplicated_edges.py +5 -10
  103. infrahub/prefect_server/models.py +1 -19
  104. infrahub/proposed_change/models.py +68 -3
  105. infrahub/proposed_change/tasks.py +907 -30
  106. infrahub/task_manager/models.py +10 -6
  107. infrahub/telemetry/database.py +1 -1
  108. infrahub/telemetry/tasks.py +1 -1
  109. infrahub/trigger/catalogue.py +2 -0
  110. infrahub/trigger/models.py +18 -2
  111. infrahub/trigger/tasks.py +3 -1
  112. infrahub/workflows/catalogue.py +76 -0
  113. {infrahub_server-1.2.10.dist-info → infrahub_server-1.3.0a0.dist-info}/METADATA +2 -2
  114. {infrahub_server-1.2.10.dist-info → infrahub_server-1.3.0a0.dist-info}/RECORD +121 -118
  115. infrahub_testcontainers/container.py +0 -1
  116. infrahub_testcontainers/docker-compose.test.yml +1 -1
  117. infrahub_testcontainers/helpers.py +8 -2
  118. infrahub/message_bus/messages/check_generator_run.py +0 -26
  119. infrahub/message_bus/messages/finalize_validator_execution.py +0 -15
  120. infrahub/message_bus/messages/proposed_change/base_with_diff.py +0 -16
  121. infrahub/message_bus/messages/proposed_change/request_proposedchange_refreshartifacts.py +0 -11
  122. infrahub/message_bus/messages/request_generatordefinition_check.py +0 -20
  123. infrahub/message_bus/messages/request_proposedchange_pipeline.py +0 -23
  124. infrahub/message_bus/operations/check/__init__.py +0 -3
  125. infrahub/message_bus/operations/check/generator.py +0 -156
  126. infrahub/message_bus/operations/finalize/__init__.py +0 -3
  127. infrahub/message_bus/operations/finalize/validator.py +0 -133
  128. infrahub/message_bus/operations/requests/__init__.py +0 -9
  129. infrahub/message_bus/operations/requests/generator_definition.py +0 -140
  130. infrahub/message_bus/operations/requests/proposed_change.py +0 -629
  131. /infrahub/{message_bus/messages/proposed_change → actions}/__init__.py +0 -0
  132. {infrahub_server-1.2.10.dist-info → infrahub_server-1.3.0a0.dist-info}/LICENSE.txt +0 -0
  133. {infrahub_server-1.2.10.dist-info → infrahub_server-1.3.0a0.dist-info}/WHEEL +0 -0
  134. {infrahub_server-1.2.10.dist-info → infrahub_server-1.3.0a0.dist-info}/entry_points.txt +0 -0
@@ -84,11 +84,15 @@ class FlowProgress(BaseModel):
84
84
 
85
85
 
86
86
  class InfrahubEventFilter(EventFilter):
87
- matching_related: list[EventRelatedFilter] = Field(default_factory=list)
87
+ def add_related_filter(self, related: EventRelatedFilter) -> None:
88
+ if not isinstance(self.related, list):
89
+ self.related = []
90
+
91
+ self.related.append(related)
88
92
 
89
93
  def add_account_filter(self, account__ids: list[str] | None) -> None:
90
94
  if account__ids:
91
- self.matching_related.append(
95
+ self.add_related_filter(
92
96
  EventRelatedFilter(
93
97
  labels=ResourceSpecification(
94
98
  {"prefect.resource.role": "infrahub.account", "infrahub.resource.id": account__ids}
@@ -98,7 +102,7 @@ class InfrahubEventFilter(EventFilter):
98
102
 
99
103
  def add_branch_filter(self, branches: list[str] | None = None) -> None:
100
104
  if branches:
101
- self.matching_related.append(
105
+ self.add_related_filter(
102
106
  EventRelatedFilter(
103
107
  labels=ResourceSpecification(
104
108
  {"prefect.resource.role": "infrahub.branch", "infrahub.resource.label": branches}
@@ -116,7 +120,7 @@ class InfrahubEventFilter(EventFilter):
116
120
 
117
121
  if event_filter:
118
122
  event_filter["prefect.resource.role"] = "infrahub.event"
119
- self.matching_related.append(EventRelatedFilter(labels=ResourceSpecification(event_filter)))
123
+ self.add_related_filter(EventRelatedFilter(labels=ResourceSpecification(event_filter)))
120
124
 
121
125
  def add_event_id_filter(self, ids: list[str] | None = None) -> None:
122
126
  if ids:
@@ -151,7 +155,7 @@ class InfrahubEventFilter(EventFilter):
151
155
 
152
156
  def add_parent_filter(self, parent__ids: list[str] | None) -> None:
153
157
  if parent__ids:
154
- self.matching_related.append(
158
+ self.add_related_filter(
155
159
  EventRelatedFilter(
156
160
  labels=ResourceSpecification(
157
161
  {"prefect.resource.role": "infrahub.child_event", "infrahub.event_parent.id": parent__ids}
@@ -161,7 +165,7 @@ class InfrahubEventFilter(EventFilter):
161
165
 
162
166
  def add_related_node_filter(self, related_node__ids: list[str] | None) -> None:
163
167
  if related_node__ids:
164
- self.matching_related.append(
168
+ self.add_related_filter(
165
169
  EventRelatedFilter(
166
170
  labels=ResourceSpecification(
167
171
  {"prefect.resource.role": "infrahub.related.node", "prefect.resource.id": related_node__ids}
@@ -49,7 +49,7 @@ async def get_system_info(db: InfrahubDatabase) -> TelemetryDatabaseSystemInfoDa
49
49
 
50
50
  @task(name="telemetry-gather-db", task_run_name="Gather Database Information", cache_policy=NONE)
51
51
  async def gather_database_information(db: InfrahubDatabase) -> TelemetryDatabaseData:
52
- async with db.start_session() as dbs:
52
+ async with db.start_session(read_only=True) as dbs:
53
53
  server_info = []
54
54
  system_info = None
55
55
  database_type = db.db_type.value
@@ -38,7 +38,7 @@ async def gather_schema_information(branch: Branch) -> TelemetrySchemaData:
38
38
 
39
39
  @task(name="telemetry-feature-information", task_run_name="Gather Feature Information", cache_policy=NONE)
40
40
  async def gather_feature_information(service: InfrahubServices) -> dict[str, int]:
41
- async with service.database.start_session() as db:
41
+ async with service.database.start_session(read_only=True) as db:
42
42
  data = {}
43
43
  features_to_count = [
44
44
  InfrahubKind.ARTIFACT,
@@ -1,3 +1,4 @@
1
+ from infrahub.actions.triggers import TRIGGER_ACTION_RULE_UPDATE
1
2
  from infrahub.computed_attribute.triggers import (
2
3
  TRIGGER_COMPUTED_ATTRIBUTE_ALL_SCHEMA,
3
4
  TRIGGER_COMPUTED_ATTRIBUTE_PYTHON_SETUP_COMMIT,
@@ -6,6 +7,7 @@ from infrahub.trigger.models import TriggerDefinition
6
7
  from infrahub.webhook.triggers import TRIGGER_WEBHOOK_DELETE, TRIGGER_WEBHOOK_SETUP_UPDATE
7
8
 
8
9
  builtin_triggers: list[TriggerDefinition] = [
10
+ TRIGGER_ACTION_RULE_UPDATE,
9
11
  TRIGGER_COMPUTED_ATTRIBUTE_ALL_SCHEMA,
10
12
  TRIGGER_COMPUTED_ATTRIBUTE_PYTHON_SETUP_COMMIT,
11
13
  TRIGGER_WEBHOOK_DELETE,
@@ -30,6 +30,7 @@ class TriggerSetupReport(BaseModel):
30
30
 
31
31
 
32
32
  class TriggerType(str, Enum):
33
+ ACTION_TRIGGER_RULE = "action_trigger_rule"
33
34
  BUILTIN = "builtin"
34
35
  WEBHOOK = "webhook"
35
36
  COMPUTED_ATTR_JINJA2 = "computed_attr_jinja2"
@@ -38,10 +39,15 @@ class TriggerType(str, Enum):
38
39
  # OBJECT = "object"
39
40
 
40
41
 
42
+ def _match_related_dict() -> dict:
43
+ # Make Mypy happy as match related is a dict[str, Any] | list[dict[str, Any]]
44
+ return {}
45
+
46
+
41
47
  class EventTrigger(BaseModel):
42
48
  events: set = Field(default_factory=set)
43
49
  match: dict[str, Any] = Field(default_factory=dict)
44
- match_related: dict[str, Any] = Field(default_factory=dict)
50
+ match_related: dict[str, Any] | list[dict[str, Any]] = Field(default_factory=_match_related_dict)
45
51
 
46
52
  def get_prefect(self) -> PrefectEventTrigger:
47
53
  return PrefectEventTrigger(
@@ -49,10 +55,20 @@ class EventTrigger(BaseModel):
49
55
  expect=self.events,
50
56
  within=timedelta(0),
51
57
  match=ResourceSpecification(self.match),
52
- match_related=ResourceSpecification(self.match_related),
58
+ match_related=self.related_resource_specification,
53
59
  threshold=1,
54
60
  )
55
61
 
62
+ @property
63
+ def related_resource_specification(self) -> ResourceSpecification | list[ResourceSpecification]:
64
+ if isinstance(self.match_related, dict):
65
+ return ResourceSpecification(self.match_related)
66
+
67
+ if len(self.match_related) == 1:
68
+ return ResourceSpecification(self.match_related[0])
69
+
70
+ return [ResourceSpecification(related_match) for related_match in self.match_related]
71
+
56
72
 
57
73
  class ExecuteWorkflow(BaseModel):
58
74
  workflow: WorkflowDefinition
infrahub/trigger/tasks.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from prefect import flow
2
2
  from prefect.client.orchestration import get_client
3
3
 
4
+ from infrahub.actions.gather import gather_trigger_action_rules
4
5
  from infrahub.computed_attribute.gather import (
5
6
  gather_trigger_computed_attribute_jinja2,
6
7
  gather_trigger_computed_attribute_python,
@@ -21,13 +22,14 @@ async def trigger_configure_all(service: InfrahubServices) -> None:
21
22
  computed_attribute_python_triggers,
22
23
  computed_attribute_python_query_triggers,
23
24
  ) = await gather_trigger_computed_attribute_python(db=db)
24
-
25
+ action_rules = await gather_trigger_action_rules(db=db)
25
26
  triggers = (
26
27
  computed_attribute_j2_triggers
27
28
  + computed_attribute_python_triggers
28
29
  + computed_attribute_python_query_triggers
29
30
  + builtin_triggers
30
31
  + webhook_trigger
32
+ + action_rules
31
33
  )
32
34
 
33
35
  async with get_client(sync_client=False) as prefect_client:
@@ -6,6 +6,35 @@ from .models import WorkerPoolDefinition, WorkflowDefinition
6
6
  INFRAHUB_WORKER_POOL = WorkerPoolDefinition(name="infrahub-worker", description="Default Pool for internal tasks")
7
7
 
8
8
 
9
+ ACTION_ADD_NODE_TO_GROUP = WorkflowDefinition(
10
+ name="action-add-node-to-group",
11
+ type=WorkflowType.CORE,
12
+ module="infrahub.actions.tasks",
13
+ function="add_node_to_group",
14
+ )
15
+
16
+ ACTION_RUN_GENERATOR = WorkflowDefinition(
17
+ name="action-run-generator",
18
+ type=WorkflowType.CORE,
19
+ module="infrahub.actions.tasks",
20
+ function="run_generator",
21
+ )
22
+
23
+ ACTION_RUN_GENERATOR_GROUP_EVENT = WorkflowDefinition(
24
+ name="action-run-generator-group-event",
25
+ type=WorkflowType.CORE,
26
+ module="infrahub.actions.tasks",
27
+ function="run_generator_group_event",
28
+ )
29
+
30
+
31
+ CONFIGURE_ACTION_RULES = WorkflowDefinition(
32
+ name="configure-action-rules",
33
+ type=WorkflowType.CORE,
34
+ module="infrahub.actions.tasks",
35
+ function="configure_action_rules",
36
+ )
37
+
9
38
  TRANSFORM_JINJA2_RENDER = WorkflowDefinition(
10
39
  name="transform_render_jinja2_template",
11
40
  type=WorkflowType.USER,
@@ -66,6 +95,13 @@ IPAM_RECONCILIATION = WorkflowDefinition(
66
95
  tags=[WorkflowTag.DATABASE_CHANGE],
67
96
  )
68
97
 
98
+ REMOVE_ADD_NODE_FROM_GROUP = WorkflowDefinition(
99
+ name="action-remove-node-from-group",
100
+ type=WorkflowType.CORE,
101
+ module="infrahub.actions.tasks",
102
+ function="remove_node_from_group",
103
+ )
104
+
69
105
  REQUEST_GENERATOR_RUN = WorkflowDefinition(
70
106
  name="generator-run",
71
107
  type=WorkflowType.USER,
@@ -74,6 +110,14 @@ REQUEST_GENERATOR_RUN = WorkflowDefinition(
74
110
  tags=[WorkflowTag.DATABASE_CHANGE],
75
111
  )
76
112
 
113
+ RUN_GENERATOR_AS_CHECK = WorkflowDefinition(
114
+ name="run-generator-as-check",
115
+ type=WorkflowType.USER,
116
+ module="infrahub.proposed_change.tasks",
117
+ function="run_generator_as_check",
118
+ tags=[WorkflowTag.DATABASE_CHANGE],
119
+ )
120
+
77
121
  REQUEST_GENERATOR_DEFINITION_RUN = WorkflowDefinition(
78
122
  name="request-generator-definition-run",
79
123
  type=WorkflowType.CORE,
@@ -82,6 +126,14 @@ REQUEST_GENERATOR_DEFINITION_RUN = WorkflowDefinition(
82
126
  tags=[WorkflowTag.DATABASE_CHANGE],
83
127
  )
84
128
 
129
+ REQUEST_GENERATOR_DEFINITION_CHECK = WorkflowDefinition(
130
+ name="request-generator-definition-check",
131
+ type=WorkflowType.CORE,
132
+ module="infrahub.proposed_change.tasks",
133
+ function="request_generator_definition_check",
134
+ tags=[WorkflowTag.DATABASE_CHANGE],
135
+ )
136
+
85
137
  REQUEST_ARTIFACT_GENERATE = WorkflowDefinition(
86
138
  name="artifact-generate",
87
139
  type=WorkflowType.CORE, # NOTE need to check
@@ -338,6 +390,21 @@ GIT_REPOSITORIES_IMPORT_OBJECTS = WorkflowDefinition(
338
390
  tags=[WorkflowTag.DATABASE_CHANGE],
339
391
  )
340
392
 
393
+ REQUEST_PROPOSED_CHANGE_PIPELINE = WorkflowDefinition(
394
+ name="proposed-changed-pipeline",
395
+ type=WorkflowType.INTERNAL,
396
+ module="infrahub.proposed_change.tasks",
397
+ function="run_proposed_change_pipeline",
398
+ tags=[WorkflowTag.DATABASE_CHANGE],
399
+ )
400
+
401
+ REQUEST_PROPOSED_CHANGE_REFRESH_ARTIFACTS = WorkflowDefinition(
402
+ name="proposed-changed-refresh-artifacts",
403
+ type=WorkflowType.INTERNAL,
404
+ module="infrahub.proposed_change.tasks",
405
+ function="refresh_artifacts",
406
+ )
407
+
341
408
  REQUEST_PROPOSED_CHANGE_RUN_GENERATORS = WorkflowDefinition(
342
409
  name="proposed-changed-run-generator",
343
410
  type=WorkflowType.INTERNAL,
@@ -442,6 +509,9 @@ TRIGGER_CONFIGURE_ALL = WorkflowDefinition(
442
509
  worker_pools = [INFRAHUB_WORKER_POOL]
443
510
 
444
511
  workflows = [
512
+ ACTION_ADD_NODE_TO_GROUP,
513
+ ACTION_RUN_GENERATOR,
514
+ ACTION_RUN_GENERATOR_GROUP_EVENT,
445
515
  ANONYMOUS_TELEMETRY_SEND,
446
516
  BRANCH_CANCEL_PROPOSED_CHANGES,
447
517
  BRANCH_CREATE,
@@ -456,6 +526,7 @@ workflows = [
456
526
  COMPUTED_ATTRIBUTE_PROCESS_TRANSFORM,
457
527
  COMPUTED_ATTRIBUTE_SETUP_JINJA2,
458
528
  COMPUTED_ATTRIBUTE_SETUP_PYTHON,
529
+ CONFIGURE_ACTION_RULES,
459
530
  DIFF_REFRESH,
460
531
  DIFF_REFRESH_ALL,
461
532
  DIFF_UPDATE,
@@ -477,16 +548,21 @@ workflows = [
477
548
  IPAM_RECONCILIATION,
478
549
  PROPOSED_CHANGE_MERGE,
479
550
  QUERY_COMPUTED_ATTRIBUTE_TRANSFORM_TARGETS,
551
+ REMOVE_ADD_NODE_FROM_GROUP,
480
552
  REQUEST_ARTIFACT_DEFINITION_CHECK,
481
553
  REQUEST_ARTIFACT_DEFINITION_GENERATE,
482
554
  REQUEST_ARTIFACT_GENERATE,
555
+ REQUEST_GENERATOR_DEFINITION_CHECK,
483
556
  REQUEST_GENERATOR_DEFINITION_RUN,
484
557
  REQUEST_GENERATOR_RUN,
485
558
  REQUEST_PROPOSED_CHANGE_DATA_INTEGRITY,
559
+ REQUEST_PROPOSED_CHANGE_PIPELINE,
560
+ REQUEST_PROPOSED_CHANGE_REFRESH_ARTIFACTS,
486
561
  REQUEST_PROPOSED_CHANGE_REPOSITORY_CHECKS,
487
562
  REQUEST_PROPOSED_CHANGE_RUN_GENERATORS,
488
563
  REQUEST_PROPOSED_CHANGE_SCHEMA_INTEGRITY,
489
564
  REQUEST_PROPOSED_CHANGE_USER_TESTS,
565
+ RUN_GENERATOR_AS_CHECK,
490
566
  SCHEMA_APPLY_MIGRATION,
491
567
  SCHEMA_VALIDATE_MIGRATION,
492
568
  TRANSFORM_JINJA2_RENDER,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: infrahub-server
3
- Version: 1.2.10
3
+ Version: 1.3.0a0
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
@@ -39,7 +39,7 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (==1.28.1)
39
39
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (==1.28.1)
40
40
  Requires-Dist: opentelemetry-instrumentation-aio-pika (==0.49b1)
41
41
  Requires-Dist: opentelemetry-instrumentation-fastapi (==0.49b1)
42
- Requires-Dist: prefect (==3.3.7)
42
+ Requires-Dist: prefect (==3.4.1)
43
43
  Requires-Dist: prefect-redis (==0.2.2)
44
44
  Requires-Dist: pyarrow (>=14,<15)
45
45
  Requires-Dist: pydantic (>=2.10,<2.11)