infrahub-server 1.2.10__py3-none-any.whl → 1.2.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.
- infrahub/config.py +9 -0
- infrahub/core/constants/database.py +1 -0
- infrahub/core/constants/infrahubkind.py +1 -0
- infrahub/core/constraint/node/runner.py +1 -1
- infrahub/core/diff/query/save.py +75 -45
- infrahub/core/diff/query_parser.py +5 -1
- infrahub/core/diff/tasks.py +3 -3
- infrahub/core/graph/__init__.py +1 -1
- infrahub/core/migrations/graph/__init__.py +6 -0
- infrahub/core/migrations/graph/m029_duplicates_cleanup.py +680 -0
- infrahub/core/migrations/graph/m030_illegal_edges.py +83 -0
- infrahub/core/migrations/query/attribute_add.py +13 -9
- infrahub/core/node/resource_manager/ip_address_pool.py +6 -2
- infrahub/core/node/resource_manager/ip_prefix_pool.py +6 -2
- infrahub/core/protocols.py +4 -0
- infrahub/core/query/diff.py +7 -0
- infrahub/core/schema/definitions/core/__init__.py +8 -1
- infrahub/core/schema/definitions/core/resource_pool.py +20 -0
- infrahub/core/schema/schema_branch.py +5 -3
- infrahub/core/validators/tasks.py +1 -1
- infrahub/database/__init__.py +5 -4
- infrahub/database/validation.py +101 -0
- infrahub/graphql/app.py +1 -1
- infrahub/graphql/loaders/node.py +1 -1
- infrahub/graphql/loaders/peers.py +1 -1
- infrahub/graphql/mutations/main.py +1 -1
- infrahub/graphql/mutations/proposed_change.py +1 -1
- infrahub/graphql/queries/relationship.py +1 -1
- infrahub/graphql/queries/task.py +10 -0
- infrahub/graphql/resolvers/many_relationship.py +4 -4
- infrahub/graphql/resolvers/resolver.py +4 -4
- infrahub/graphql/resolvers/single_relationship.py +2 -2
- infrahub/graphql/subscription/graphql_query.py +2 -2
- infrahub/graphql/types/branch.py +1 -1
- infrahub/graphql/types/task_log.py +3 -2
- infrahub/message_bus/operations/refresh/registry.py +4 -4
- infrahub/message_bus/operations/requests/proposed_change.py +4 -4
- infrahub/patch/queries/delete_duplicated_edges.py +40 -29
- infrahub/task_manager/task.py +44 -4
- infrahub/telemetry/database.py +1 -1
- infrahub/telemetry/tasks.py +1 -1
- infrahub/webhook/tasks.py +2 -1
- {infrahub_server-1.2.10.dist-info → infrahub_server-1.2.12.dist-info}/METADATA +3 -3
- {infrahub_server-1.2.10.dist-info → infrahub_server-1.2.12.dist-info}/RECORD +52 -49
- {infrahub_server-1.2.10.dist-info → infrahub_server-1.2.12.dist-info}/WHEEL +1 -1
- infrahub_testcontainers/container.py +239 -64
- infrahub_testcontainers/docker-compose-cluster.test.yml +321 -0
- infrahub_testcontainers/docker-compose.test.yml +1 -0
- infrahub_testcontainers/helpers.py +15 -1
- infrahub_testcontainers/plugin.py +9 -0
- infrahub/patch/queries/consolidate_duplicated_nodes.py +0 -109
- {infrahub_server-1.2.10.dist-info → infrahub_server-1.2.12.dist-info}/LICENSE.txt +0 -0
- {infrahub_server-1.2.10.dist-info → infrahub_server-1.2.12.dist-info}/entry_points.txt +0 -0
|
@@ -11,7 +11,7 @@ async def branches(message: messages.RefreshRegistryBranches, service: InfrahubS
|
|
|
11
11
|
service.log.info("Ignoring refresh registry refresh request originating from self", worker=WORKER_IDENTITY)
|
|
12
12
|
return
|
|
13
13
|
|
|
14
|
-
async with service.database.start_session() as db:
|
|
14
|
+
async with service.database.start_session(read_only=True) as db:
|
|
15
15
|
await refresh_branches(db=db)
|
|
16
16
|
|
|
17
17
|
await service.component.refresh_schema_hash()
|
|
@@ -26,6 +26,6 @@ async def rebased_branch(message: messages.RefreshRegistryRebasedBranch, service
|
|
|
26
26
|
|
|
27
27
|
async with lock.registry.local_schema_lock():
|
|
28
28
|
service.log.info("Refreshing rebased branch")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
|
|
30
|
+
async with service.database.start_session(read_only=True) as db:
|
|
31
|
+
registry.branch[message.branch] = await registry.branch_object.get_by_name(name=message.branch, db=db)
|
|
@@ -105,11 +105,11 @@ async def pipeline(message: messages.RequestProposedChangePipeline, service: Inf
|
|
|
105
105
|
|
|
106
106
|
await _gather_repository_repository_diffs(repositories=repositories, service=service)
|
|
107
107
|
|
|
108
|
-
async with service.database.
|
|
109
|
-
destination_branch = await registry.get_branch(db=
|
|
110
|
-
source_branch = await registry.get_branch(db=
|
|
108
|
+
async with service.database.start_session() as dbs:
|
|
109
|
+
destination_branch = await registry.get_branch(db=dbs, branch=message.destination_branch)
|
|
110
|
+
source_branch = await registry.get_branch(db=dbs, branch=message.source_branch)
|
|
111
111
|
component_registry = get_component_registry()
|
|
112
|
-
diff_coordinator = await component_registry.get_component(DiffCoordinator, db=
|
|
112
|
+
diff_coordinator = await component_registry.get_component(DiffCoordinator, db=dbs, branch=source_branch)
|
|
113
113
|
await diff_coordinator.update_branch_diff(base_branch=destination_branch, diff_branch=source_branch)
|
|
114
114
|
|
|
115
115
|
diff_summary = await service.client.get_diff_summary(branch=message.source_branch)
|
|
@@ -4,7 +4,7 @@ from .base import PatchQuery
|
|
|
4
4
|
|
|
5
5
|
class DeleteDuplicatedEdgesPatchQuery(PatchQuery):
|
|
6
6
|
"""
|
|
7
|
-
|
|
7
|
+
For all Node vertices, find duplicated or overlapping edges of the same status, type, and branch to update and delete
|
|
8
8
|
- one edge will be kept for each pair of nodes and a given status, type, and branch. it will be
|
|
9
9
|
updated to have the earliest "from" and "to" times in this group
|
|
10
10
|
- all the other duplicate/overlapping edges will be deleted
|
|
@@ -17,9 +17,9 @@ class DeleteDuplicatedEdgesPatchQuery(PatchQuery):
|
|
|
17
17
|
async def plan(self) -> PatchPlan:
|
|
18
18
|
query = """
|
|
19
19
|
// ------------
|
|
20
|
-
// Find
|
|
20
|
+
// Find vertex pairs that have duplicate edges
|
|
21
21
|
// ------------
|
|
22
|
-
MATCH (node_with_dup_edges:Node)-[edge]
|
|
22
|
+
MATCH (node_with_dup_edges:Node)-[edge]-(peer)
|
|
23
23
|
WITH node_with_dup_edges, type(edge) AS edge_type, edge.status AS edge_status, edge.branch AS edge_branch, peer, count(*) AS num_dup_edges
|
|
24
24
|
WHERE num_dup_edges > 1
|
|
25
25
|
WITH DISTINCT node_with_dup_edges, edge_type, edge_branch, peer
|
|
@@ -28,12 +28,12 @@ CALL {
|
|
|
28
28
|
// Get the earliest active and deleted edges for this branch
|
|
29
29
|
// ------------
|
|
30
30
|
WITH node_with_dup_edges, edge_type, edge_branch, peer
|
|
31
|
-
MATCH (node_with_dup_edges)-[active_edge {branch: edge_branch, status: "active"}]
|
|
31
|
+
OPTIONAL MATCH (node_with_dup_edges)-[active_edge {branch: edge_branch, status: "active"}]-(peer)
|
|
32
32
|
WHERE type(active_edge) = edge_type
|
|
33
33
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, active_edge
|
|
34
34
|
ORDER BY active_edge.from ASC
|
|
35
35
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, head(collect(active_edge.from)) AS active_from
|
|
36
|
-
OPTIONAL MATCH (node_with_dup_edges)-[deleted_edge {branch: edge_branch, status: "deleted"}]
|
|
36
|
+
OPTIONAL MATCH (node_with_dup_edges)-[deleted_edge {branch: edge_branch, status: "deleted"}]-(peer)
|
|
37
37
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, active_from, deleted_edge
|
|
38
38
|
ORDER BY deleted_edge.from ASC
|
|
39
39
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, active_from, head(collect(deleted_edge.from)) AS deleted_from
|
|
@@ -42,74 +42,85 @@ CALL {
|
|
|
42
42
|
// ------------
|
|
43
43
|
CALL {
|
|
44
44
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, active_from, deleted_from
|
|
45
|
-
MATCH (node_with_dup_edges)-[active_e {branch: edge_branch, status: "active"}]
|
|
45
|
+
OPTIONAL MATCH (node_with_dup_edges)-[active_e {branch: edge_branch, status: "active"}]-(peer)
|
|
46
46
|
WHERE type(active_e) = edge_type
|
|
47
47
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, active_from, deleted_from, active_e
|
|
48
48
|
ORDER BY %(id_func_name)s(active_e)
|
|
49
49
|
LIMIT 1
|
|
50
50
|
WITH active_e, properties(active_e) AS before_props, {from: active_from, to: deleted_from} AS prop_updates
|
|
51
|
-
RETURN
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
RETURN CASE
|
|
52
|
+
WHEN active_e IS NOT NULL THEN [
|
|
53
|
+
{
|
|
54
|
+
db_id: %(id_func_name)s(active_e), before_props: before_props, prop_updates: prop_updates
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
ELSE []
|
|
58
|
+
END AS active_edges_to_update
|
|
56
59
|
}
|
|
57
60
|
// ------------
|
|
58
61
|
// Plan deletes for all the other active edges of this type on this branch
|
|
59
62
|
// ------------
|
|
60
63
|
CALL {
|
|
61
64
|
WITH node_with_dup_edges, edge_type, edge_branch, peer
|
|
62
|
-
MATCH (node_with_dup_edges)-[active_e {branch: edge_branch, status: "active"}]
|
|
65
|
+
OPTIONAL MATCH (node_with_dup_edges)-[active_e {branch: edge_branch, status: "active"}]-(peer)
|
|
63
66
|
WHERE type(active_e) = edge_type
|
|
64
67
|
WITH node_with_dup_edges, peer, active_e
|
|
65
68
|
ORDER BY %(id_func_name)s(active_e)
|
|
66
69
|
SKIP 1
|
|
67
|
-
|
|
68
|
-
{
|
|
70
|
+
WITH CASE
|
|
71
|
+
WHEN active_e IS NOT NULL THEN {
|
|
69
72
|
db_id: %(id_func_name)s(active_e),
|
|
70
|
-
from_id: %(id_func_name)s(
|
|
71
|
-
to_id: %(id_func_name)s(
|
|
73
|
+
from_id: %(id_func_name)s(startNode(active_e)),
|
|
74
|
+
to_id: %(id_func_name)s(endNode(active_e)),
|
|
72
75
|
edge_type: type(active_e),
|
|
73
76
|
before_props: properties(active_e)
|
|
74
77
|
}
|
|
75
|
-
|
|
78
|
+
ELSE NULL
|
|
79
|
+
END AS serialized_edge
|
|
80
|
+
RETURN collect(serialized_edge) AS active_edges_to_delete
|
|
76
81
|
}
|
|
77
82
|
// ------------
|
|
78
83
|
// Plan one deleted edge update with correct from time
|
|
79
84
|
// ------------
|
|
80
85
|
CALL {
|
|
81
86
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, deleted_from
|
|
82
|
-
MATCH (node_with_dup_edges)-[deleted_e {branch: edge_branch, status: "deleted"}]
|
|
87
|
+
OPTIONAL MATCH (node_with_dup_edges)-[deleted_e {branch: edge_branch, status: "deleted"}]-(peer)
|
|
83
88
|
WHERE type(deleted_e) = edge_type
|
|
84
89
|
WITH node_with_dup_edges, edge_type, edge_branch, peer, deleted_from, deleted_e
|
|
85
90
|
ORDER BY %(id_func_name)s(deleted_e)
|
|
86
91
|
LIMIT 1
|
|
87
92
|
WITH deleted_e, properties(deleted_e) AS before_props, {from: deleted_from} AS prop_updates
|
|
88
|
-
RETURN
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
RETURN CASE
|
|
94
|
+
WHEN deleted_e IS NOT NULL THEN [
|
|
95
|
+
{
|
|
96
|
+
db_id: %(id_func_name)s(deleted_e), before_props: before_props, prop_updates: prop_updates
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
ELSE []
|
|
100
|
+
END AS deleted_edges_to_update
|
|
93
101
|
}
|
|
94
102
|
// ------------
|
|
95
103
|
// Plan deletes for all the other deleted edges of this type on this branch
|
|
96
104
|
// ------------
|
|
97
105
|
CALL {
|
|
98
106
|
WITH node_with_dup_edges, edge_type, edge_branch, peer
|
|
99
|
-
MATCH (node_with_dup_edges)-[deleted_e {branch: edge_branch, status: "deleted"}]
|
|
107
|
+
OPTIONAL MATCH (node_with_dup_edges)-[deleted_e {branch: edge_branch, status: "deleted"}]-(peer)
|
|
100
108
|
WHERE type(deleted_e) = edge_type
|
|
101
109
|
WITH node_with_dup_edges, peer, deleted_e
|
|
102
110
|
ORDER BY %(id_func_name)s(deleted_e)
|
|
103
111
|
SKIP 1
|
|
104
|
-
|
|
105
|
-
{
|
|
112
|
+
WITH CASE
|
|
113
|
+
WHEN deleted_e IS NOT NULL THEN {
|
|
106
114
|
db_id: %(id_func_name)s(deleted_e),
|
|
107
|
-
from_id: %(id_func_name)s(
|
|
108
|
-
to_id: %(id_func_name)s(
|
|
115
|
+
from_id: %(id_func_name)s(startNode(deleted_e)),
|
|
116
|
+
to_id: %(id_func_name)s(endNode(deleted_e)),
|
|
109
117
|
edge_type: type(deleted_e),
|
|
110
118
|
before_props: properties(deleted_e)
|
|
111
119
|
}
|
|
112
|
-
|
|
120
|
+
ELSE NULL
|
|
121
|
+
END AS serialized_edge
|
|
122
|
+
|
|
123
|
+
RETURN collect(serialized_edge) AS deleted_edges_to_delete
|
|
113
124
|
}
|
|
114
125
|
RETURN
|
|
115
126
|
active_edges_to_update + deleted_edges_to_update AS edges_to_update,
|
infrahub/task_manager/task.py
CHANGED
|
@@ -35,6 +35,9 @@ from .models import FlowLogs, FlowProgress, RelatedNodesInfo
|
|
|
35
35
|
|
|
36
36
|
log = get_logger()
|
|
37
37
|
|
|
38
|
+
NB_LOGS_LIMIT = 10_000
|
|
39
|
+
PREFECT_MAX_LOGS_PER_CALL = 200
|
|
40
|
+
|
|
38
41
|
|
|
39
42
|
class PrefectTask:
|
|
40
43
|
@classmethod
|
|
@@ -83,9 +86,42 @@ class PrefectTask:
|
|
|
83
86
|
return related_nodes
|
|
84
87
|
|
|
85
88
|
@classmethod
|
|
86
|
-
async def _get_logs(
|
|
89
|
+
async def _get_logs(
|
|
90
|
+
cls, client: PrefectClient, flow_ids: list[UUID], log_limit: int | None, log_offset: int | None
|
|
91
|
+
) -> FlowLogs:
|
|
92
|
+
"""
|
|
93
|
+
Return the logs for a flow run, based on log_limit and log_offset.
|
|
94
|
+
At most, NB_LOGS_LIMIT logs will be returned per flow.
|
|
95
|
+
"""
|
|
96
|
+
|
|
87
97
|
logs_flow = FlowLogs()
|
|
88
|
-
|
|
98
|
+
|
|
99
|
+
log_limit = log_limit if log_limit is not None else NB_LOGS_LIMIT
|
|
100
|
+
log_offset = log_offset or 0
|
|
101
|
+
current_offset = log_offset
|
|
102
|
+
|
|
103
|
+
if log_limit > NB_LOGS_LIMIT:
|
|
104
|
+
raise ValueError(f"log_limit cannot be greater than {NB_LOGS_LIMIT}")
|
|
105
|
+
|
|
106
|
+
all_logs = []
|
|
107
|
+
|
|
108
|
+
# Fetch the logs in batches of PREFECT_MAX_LOGS_PER_CALL, as prefect does not allow to fetch more logs at once.
|
|
109
|
+
remaining = min(log_limit, NB_LOGS_LIMIT)
|
|
110
|
+
while remaining > 0:
|
|
111
|
+
batch_limit = min(PREFECT_MAX_LOGS_PER_CALL, remaining)
|
|
112
|
+
logs_batch = await client.read_logs(
|
|
113
|
+
log_filter=LogFilter(flow_run_id=LogFilterFlowRunId(any_=flow_ids)),
|
|
114
|
+
offset=current_offset,
|
|
115
|
+
limit=batch_limit,
|
|
116
|
+
)
|
|
117
|
+
all_logs.extend(logs_batch)
|
|
118
|
+
nb_fetched = len(logs_batch)
|
|
119
|
+
if nb_fetched < batch_limit:
|
|
120
|
+
break # No more logs to fetch
|
|
121
|
+
|
|
122
|
+
current_offset += nb_fetched
|
|
123
|
+
remaining -= nb_fetched
|
|
124
|
+
|
|
89
125
|
for flow_log in all_logs:
|
|
90
126
|
if flow_log.flow_run_id and flow_log.message not in ["Finished in state Completed()"]:
|
|
91
127
|
logs_flow.logs[flow_log.flow_run_id].append(flow_log)
|
|
@@ -188,6 +224,8 @@ class PrefectTask:
|
|
|
188
224
|
branch: str | None = None,
|
|
189
225
|
limit: int | None = None,
|
|
190
226
|
offset: int | None = None,
|
|
227
|
+
log_limit: int | None = None,
|
|
228
|
+
log_offset: int | None = None,
|
|
191
229
|
) -> dict[str, Any]:
|
|
192
230
|
nodes: list[dict] = []
|
|
193
231
|
count = None
|
|
@@ -219,7 +257,9 @@ class PrefectTask:
|
|
|
219
257
|
sort=FlowRunSort.START_TIME_DESC,
|
|
220
258
|
)
|
|
221
259
|
if log_fields:
|
|
222
|
-
logs_flow = await cls._get_logs(
|
|
260
|
+
logs_flow = await cls._get_logs(
|
|
261
|
+
client=client, flow_ids=[flow.id for flow in flows], log_limit=log_limit, log_offset=log_offset
|
|
262
|
+
)
|
|
223
263
|
|
|
224
264
|
if "progress" in node_fields:
|
|
225
265
|
progress_flow = await cls._get_progress(client=client, flow_ids=[flow.id for flow in flows])
|
|
@@ -265,7 +305,7 @@ class PrefectTask:
|
|
|
265
305
|
"updated_at": flow.updated.to_iso8601_string(), # type: ignore
|
|
266
306
|
"start_time": flow.start_time.to_iso8601_string() if flow.start_time else None,
|
|
267
307
|
"id": flow.id,
|
|
268
|
-
"logs": {"edges": logs},
|
|
308
|
+
"logs": {"edges": logs, "count": len(logs)},
|
|
269
309
|
}
|
|
270
310
|
}
|
|
271
311
|
)
|
infrahub/telemetry/database.py
CHANGED
|
@@ -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
|
infrahub/telemetry/tasks.py
CHANGED
|
@@ -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,
|
infrahub/webhook/tasks.py
CHANGED
|
@@ -111,7 +111,8 @@ async def webhook_process(
|
|
|
111
111
|
async def configure_webhook_all(service: InfrahubServices) -> None:
|
|
112
112
|
log = get_run_logger()
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
async with service.database.start_session(read_only=True) as db:
|
|
115
|
+
triggers = await gather_trigger_webhook(db=db)
|
|
115
116
|
|
|
116
117
|
async with get_client(sync_client=False) as prefect_client:
|
|
117
118
|
await setup_triggers(
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: infrahub-server
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.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
|
-
Home-page: https://opsmill.com
|
|
6
5
|
License: AGPL-3.0-only
|
|
7
6
|
Author: OpsMill
|
|
8
7
|
Author-email: info@opsmill.com
|
|
@@ -58,6 +57,7 @@ Requires-Dist: ujson (>=5,<6)
|
|
|
58
57
|
Requires-Dist: uvicorn[standard] (>=0.32,<0.33)
|
|
59
58
|
Requires-Dist: whenever (==0.7.2)
|
|
60
59
|
Project-URL: Documentation, https://docs.infrahub.app/
|
|
60
|
+
Project-URL: Homepage, https://opsmill.com
|
|
61
61
|
Project-URL: Repository, https://github.com/opsmill/infrahub
|
|
62
62
|
Description-Content-Type: text/markdown
|
|
63
63
|
|
|
@@ -41,7 +41,7 @@ infrahub/computed_attribute/gather.py,sha256=TSv6_CWZH1DYRv430jzyJpFJWKzwPGka5wF
|
|
|
41
41
|
infrahub/computed_attribute/models.py,sha256=P_MijLwCVd7394oyTTfYQ3HmX5wIF966jdchuZaLRbs,17361
|
|
42
42
|
infrahub/computed_attribute/tasks.py,sha256=k3qNNKxF2lS9tZDRKrB_sKX552rpfM-Q-4yj6WJLvs4,17880
|
|
43
43
|
infrahub/computed_attribute/triggers.py,sha256=ve1cUj0CZ7dU1VtZkxET9LD8StszKIL9mCkTZpCeUaI,2304
|
|
44
|
-
infrahub/config.py,sha256=
|
|
44
|
+
infrahub/config.py,sha256=XxyVP8hT7zKxRRMkKzqgUargAqnsI2BRc8jBZqVYF5E,35665
|
|
45
45
|
infrahub/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
infrahub/constants/database.py,sha256=WmV1iuOk4xulxZHOVvO3sS_VF1eTf7fKh0TPe_RnfV4,507
|
|
47
47
|
infrahub/context.py,sha256=8SZRKSECkkcsNNzDaKEUJ7Nyr0EzUfToAy969LXjQVk,1554
|
|
@@ -55,13 +55,13 @@ infrahub/core/changelog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
55
55
|
infrahub/core/changelog/diff.py,sha256=0BxCpsgJ-38x5BBz5XDtAvc9FPy82M0NlzXl8nQ-c70,13752
|
|
56
56
|
infrahub/core/changelog/models.py,sha256=UgfJdOFUkMmjeUKe1mPCO7WE3jNENw0UJU3LWFf20HQ,29920
|
|
57
57
|
infrahub/core/constants/__init__.py,sha256=Q2pEX_-Z1-TE5OM_PWKIPIvAOxuYzk2cWZnFjemkT2k,8618
|
|
58
|
-
infrahub/core/constants/database.py,sha256=
|
|
59
|
-
infrahub/core/constants/infrahubkind.py,sha256=
|
|
58
|
+
infrahub/core/constants/database.py,sha256=x5tWaT3e0WfCxxrHMcSoHUBMfcUzStLi133CqHjSosU,368
|
|
59
|
+
infrahub/core/constants/infrahubkind.py,sha256=lrSae8gu4EOXaDHxX1jDkENkfr0fw5t32FP-vdXLrRs,2544
|
|
60
60
|
infrahub/core/constants/relationship_label.py,sha256=AWbWghu5MoAKg2DBE-ysdzSOXnWoWdBn98zpIHzn_co,87
|
|
61
61
|
infrahub/core/constants/schema.py,sha256=uuddQniyGlSlvKjM5mQ_V2VhgZmQ8fUCAHysbZLvTEU,2006
|
|
62
62
|
infrahub/core/constraint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
63
|
infrahub/core/constraint/node/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
-
infrahub/core/constraint/node/runner.py,sha256=
|
|
64
|
+
infrahub/core/constraint/node/runner.py,sha256=43ngwnu6fvxzdX0ZUUCSTzGtKBc8fSRSGSX1sovZvxQ,1863
|
|
65
65
|
infrahub/core/diff/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
66
|
infrahub/core/diff/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
67
|
infrahub/core/diff/artifacts/calculator.py,sha256=qk1DspB3bkKeWJFesLbmziCALVnbRadjrez1kn_IZWU,4435
|
|
@@ -109,17 +109,17 @@ infrahub/core/diff/query/has_conflicts_query.py,sha256=kt0Z606vP2r1g7OqW2RrYj9Lb
|
|
|
109
109
|
infrahub/core/diff/query/merge.py,sha256=g16_h5DRc0htTnmuPOujlQEEFpcjVeIAU2li5YrIxfs,33390
|
|
110
110
|
infrahub/core/diff/query/merge_tracking_id.py,sha256=VLGsKuOCIMYe0I-0r01YHF5iaLYIkfSCVQatHM-ybFA,833
|
|
111
111
|
infrahub/core/diff/query/roots_metadata.py,sha256=FT-48amqoR2RS4CkfnnXGI7Z5uOL4hm7IdZiz3SFHRo,2182
|
|
112
|
-
infrahub/core/diff/query/save.py,sha256=
|
|
112
|
+
infrahub/core/diff/query/save.py,sha256=fI9UXMLMF38ZyHINyKoD13J6Nlzsmi7gWQ5AW1XYoeI,23424
|
|
113
113
|
infrahub/core/diff/query/summary_counts_enricher.py,sha256=dSmbmbvLx8SE1DyAAw4mbLyW5BWLbMrYOnEchA2uBZc,10239
|
|
114
114
|
infrahub/core/diff/query/time_range_query.py,sha256=0pjsFBur8jcSU6su-iA4IMjnHw3RtNWI787wAPcyepI,3003
|
|
115
115
|
infrahub/core/diff/query/update_conflict_query.py,sha256=kQkFazz88wnApr8UU_qb0ruzhmrhWiqhbErukSAMhLA,1212
|
|
116
|
-
infrahub/core/diff/query_parser.py,sha256=
|
|
116
|
+
infrahub/core/diff/query_parser.py,sha256=6OWI_ynplysO6VH1vCfqiV_VmXvAfoa-bIRJ7heVTjY,37217
|
|
117
117
|
infrahub/core/diff/repository/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
118
|
infrahub/core/diff/repository/deserializer.py,sha256=bhN9ao8HxqKyRz273QGLNV9z9_SS4EQnM9JoY5ptx78,21337
|
|
119
119
|
infrahub/core/diff/repository/repository.py,sha256=b54YvGDaFg3FEDNjOTS-WC3Rvtq4bdpDb1NGEKURnqg,25851
|
|
120
|
-
infrahub/core/diff/tasks.py,sha256=
|
|
120
|
+
infrahub/core/diff/tasks.py,sha256=7_k-ZNcJZsiDp-xCZvCQfPJjg0xRxpaGTiVVNuRPfBI,3322
|
|
121
121
|
infrahub/core/enums.py,sha256=qGbhRVoH43Xi0iDkUfWdQiKapJbLT9UKsCobFk_paIk,491
|
|
122
|
-
infrahub/core/graph/__init__.py,sha256=
|
|
122
|
+
infrahub/core/graph/__init__.py,sha256=2EUPjmgYV1tf8ln4lfXK57uUCRFRuanN9SNHZmXdy24,19
|
|
123
123
|
infrahub/core/graph/constraints.py,sha256=lmuzrKDFoeSKRiLtycB9PXi6zhMYghczKrPYvfWyy90,10396
|
|
124
124
|
infrahub/core/graph/index.py,sha256=IHLP-zPRp7HJYLGHMRDRXQp8RC69ztP10Tr5NcL2j4Y,1736
|
|
125
125
|
infrahub/core/graph/schema.py,sha256=FmEPPb1XOFv3nnS_XJCuUqlp8HsStX5A2frHjlhoqvE,10105
|
|
@@ -138,7 +138,7 @@ infrahub/core/ipam/utilization.py,sha256=d-zpXCaWsHgJxBLopCDd7y4sJYvHcIzzpYhbTMI
|
|
|
138
138
|
infrahub/core/manager.py,sha256=G_5A2mYkRkxUnDGjdauVdrEX2ZX5HPaHbxEHxDyOb6U,47467
|
|
139
139
|
infrahub/core/merge.py,sha256=bZvToLKyphJlWMbQAzGuSHcrG2DfeqL69KSfqb1wWdc,10430
|
|
140
140
|
infrahub/core/migrations/__init__.py,sha256=syPb3-Irf11dXCHgbT0UdmTnEBbpf4wXJ3m8ADYXDpk,1175
|
|
141
|
-
infrahub/core/migrations/graph/__init__.py,sha256=
|
|
141
|
+
infrahub/core/migrations/graph/__init__.py,sha256=e0OzJEAn1qvtPghPwan8kWrLzDXX9eaw7YgbFlAZevA,2872
|
|
142
142
|
infrahub/core/migrations/graph/m001_add_version_to_graph.py,sha256=YcLN6cFjE6IGheXR4Ujb6CcyY8bJ7WE289hcKJaENOc,1515
|
|
143
143
|
infrahub/core/migrations/graph/m002_attribute_is_default.py,sha256=wB6f2N_ChTvGajqHD-OWCG5ahRMDhhXZuwo79ieq_II,1036
|
|
144
144
|
infrahub/core/migrations/graph/m003_relationship_parent_optional.py,sha256=fRMmcOmBdHgOEjlf-5TaWsZ1Rzs6op1s75-r_jE_tZ0,2345
|
|
@@ -167,8 +167,10 @@ infrahub/core/migrations/graph/m025_uniqueness_nulls.py,sha256=n_g09PDLs1yo3dMYL
|
|
|
167
167
|
infrahub/core/migrations/graph/m026_0000_prefix_fix.py,sha256=7sP6nQZrqgzFyRUHKf5fKSX2LrzKEAAsiDsRSu9noJM,1944
|
|
168
168
|
infrahub/core/migrations/graph/m027_delete_isolated_nodes.py,sha256=aAfDUdhsR05CpehVeyLWQ1tRstgrF0HY2V5V6X5ALxM,1589
|
|
169
169
|
infrahub/core/migrations/graph/m028_delete_diffs.py,sha256=PwesD95KTTJsNbMX3NK6O_rGLR7hB-GEi7JIaXheiuQ,1397
|
|
170
|
+
infrahub/core/migrations/graph/m029_duplicates_cleanup.py,sha256=erCyHFBPCwRcJsSupZ2Be-JdXIbskTeufKxlFREnGAY,28997
|
|
171
|
+
infrahub/core/migrations/graph/m030_illegal_edges.py,sha256=Wyvn3w4PWw7i-9DyD49C2YeyTGebR7T1sa1HjxOufJU,2804
|
|
170
172
|
infrahub/core/migrations/query/__init__.py,sha256=JoWOUWlV6IzwxWxObsfCnAAKUOHJkE7dZlOsfB64ZEo,876
|
|
171
|
-
infrahub/core/migrations/query/attribute_add.py,sha256=
|
|
173
|
+
infrahub/core/migrations/query/attribute_add.py,sha256=iWZ6sRwvGLKckRWEFnrLphwQjkDF7r5AcIk9LTaltNc,3670
|
|
172
174
|
infrahub/core/migrations/query/attribute_rename.py,sha256=-p3AInP1dWRO-v-i8MSajDeK5_2LcJwYr2jqLQ_vbgs,6971
|
|
173
175
|
infrahub/core/migrations/query/delete_element_in_schema.py,sha256=F5m_AM_DGprRClKo_QnkYm49xZVvw_zCDIdNO0oM_QU,7051
|
|
174
176
|
infrahub/core/migrations/query/node_duplicate.py,sha256=EbS4rvA5YDiX5uguXjBRrArEGnYGKK-6M3yPvrs4PWw,8232
|
|
@@ -195,19 +197,19 @@ infrahub/core/node/delete_validator.py,sha256=mj_HQXkTeP_A3po65-R5bCJnDM9CmFFmcU
|
|
|
195
197
|
infrahub/core/node/ipam.py,sha256=NWb3TUlVQOGAzq1VvDwISLh61HML0jnalsJ7QojqGwQ,2669
|
|
196
198
|
infrahub/core/node/permissions.py,sha256=uQzQ62IHcSly6fzPre0nQzlrkCIKzH4HyQkODKB3ZWM,2207
|
|
197
199
|
infrahub/core/node/resource_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
198
|
-
infrahub/core/node/resource_manager/ip_address_pool.py,sha256
|
|
199
|
-
infrahub/core/node/resource_manager/ip_prefix_pool.py,sha256=
|
|
200
|
+
infrahub/core/node/resource_manager/ip_address_pool.py,sha256=-UQT5kaXSNK-sp7KnT0lsqOg1G3P1uFX0zX5OcHzj48,4831
|
|
201
|
+
infrahub/core/node/resource_manager/ip_prefix_pool.py,sha256=HRonATGel6Hk8svPv_I_OZx3VY33nx5jEkWsLbwpQaU,5048
|
|
200
202
|
infrahub/core/node/resource_manager/number_pool.py,sha256=6mczrHTNd8jbXoW8Q6xHpBWi-JOSk5QSlwOegkMbNEQ,2479
|
|
201
203
|
infrahub/core/node/standard.py,sha256=Niyc7mNxEGn6K7a1MXHkiLJhyTNR3uvTWLLbHvm6-Bo,7113
|
|
202
204
|
infrahub/core/path.py,sha256=qHoC5cJwb3nwh-kUiuWqrCgkN2Dleatygn3KNid70sg,5844
|
|
203
205
|
infrahub/core/property.py,sha256=rwsqeaIvCMkHfJYl4WfsNPAS7KS0POo5rAN7vAprXGA,5102
|
|
204
|
-
infrahub/core/protocols.py,sha256=
|
|
206
|
+
infrahub/core/protocols.py,sha256=iSw8cKxKo6EWapvnV5bG-D42kjI0zUu0Z7_HLTcLCgw,11084
|
|
205
207
|
infrahub/core/protocols_base.py,sha256=IqX1C82C4skCJrNiVLSYCIwIviPfp2sP7bOS6rLxhTk,3296
|
|
206
208
|
infrahub/core/query/__init__.py,sha256=ftH8xHCAo8DfdYEx3-CBPuU2xpGOc83_ITNxZ4q4sNg,23055
|
|
207
209
|
infrahub/core/query/attribute.py,sha256=DzwbElgTaZs6-nBYGmnDpBr9n0lmUPK3p7eyI30Snh8,11783
|
|
208
210
|
infrahub/core/query/branch.py,sha256=Fqycgk8kzhmc1H_-gfiw3c-ZjNjAHw64XU7OQUkhDi0,4976
|
|
209
211
|
infrahub/core/query/delete.py,sha256=_PL97nz-ybF0JqDSYlTPhIa4oCxwPiFerwd8Wjw-x-8,1918
|
|
210
|
-
infrahub/core/query/diff.py,sha256=
|
|
212
|
+
infrahub/core/query/diff.py,sha256=9kur4wyab7XdI8bD3ff0gqVcA1TWIVRJex237JB_BA4,36138
|
|
211
213
|
infrahub/core/query/ipam.py,sha256=66snB2ANAUcGk-Ke88Y1CIoXO7CCBOsOx8JZTFXnPfA,28384
|
|
212
214
|
infrahub/core/query/node.py,sha256=AAO20pbFy_rk9RKRIQ1DCKrUEYr7yz1fCTcgiKEu22s,65411
|
|
213
215
|
infrahub/core/query/relationship.py,sha256=Z9qlhqr-EfyQ8Mcg4SfqaTmngfVyj1RCjhTTGJXmkX0,46296
|
|
@@ -232,7 +234,7 @@ infrahub/core/schema/basenode_schema.py,sha256=4px_CJjhjT7m5eGVDXRT0VVLhJ9m3M85Z
|
|
|
232
234
|
infrahub/core/schema/computed_attribute.py,sha256=9rznZJpGqX8fxLx0EguPmww8LoHsadMtQQUKaMoJPcI,1809
|
|
233
235
|
infrahub/core/schema/constants.py,sha256=KtFrvwNckyKZSGIMD4XfxI5eFTZqBRiw54R7BE5h39Q,374
|
|
234
236
|
infrahub/core/schema/definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
235
|
-
infrahub/core/schema/definitions/core/__init__.py,sha256=
|
|
237
|
+
infrahub/core/schema/definitions/core/__init__.py,sha256=RdrpFVFxprxvEfOIvffNgfju4W65QgadTW2QurJemJ0,4731
|
|
236
238
|
infrahub/core/schema/definitions/core/account.py,sha256=5-yJJJRtAi1MyJZw88pyTqAklUPTsBzMa2LZkf4FtOs,5421
|
|
237
239
|
infrahub/core/schema/definitions/core/artifact.py,sha256=6TX4zgK2j2vO7F0lCYLv6Bu7GTAKlD0P3rO7yuXX85o,3954
|
|
238
240
|
infrahub/core/schema/definitions/core/builtin.py,sha256=eSGZXXV_caLm2WHvRsK6c88EfLjkMlm7VAZ-JVAaEPw,703
|
|
@@ -250,7 +252,7 @@ infrahub/core/schema/definitions/core/propose_change.py,sha256=zAmZuhKtTTTVfURkz
|
|
|
250
252
|
infrahub/core/schema/definitions/core/propose_change_comment.py,sha256=tCYy0uazr4bOeQeuOHtN-v1ilLxaIO9T7fxkr4mLmDQ,5743
|
|
251
253
|
infrahub/core/schema/definitions/core/propose_change_validator.py,sha256=IwrEQvutsxSFcDrcAFoevCzkwnPF3E6iyF0lUOi61RM,9947
|
|
252
254
|
infrahub/core/schema/definitions/core/repository.py,sha256=SZDztZRCqdAOXgURaZk1X-OPGXqBMrVur8_DhPcwQ_E,9630
|
|
253
|
-
infrahub/core/schema/definitions/core/resource_pool.py,sha256=
|
|
255
|
+
infrahub/core/schema/definitions/core/resource_pool.py,sha256=1xE3xAc4wMJCutID4S_TOY6WlM4mCGsIUYZLqb8aYuM,6066
|
|
254
256
|
infrahub/core/schema/definitions/core/template.py,sha256=rgYhpimxW0vhTmpo5cv_QA2I6MFT4r_ED7xA4BtzdKY,1037
|
|
255
257
|
infrahub/core/schema/definitions/core/transform.py,sha256=UB2TaBjabIiErivBR16srxq7fgYoKjmjZaVun8vxXvY,3061
|
|
256
258
|
infrahub/core/schema/definitions/core/webhook.py,sha256=YHeFMdsQDoG804iO6beozkfzln5cZnXKAsjB0Twlqw0,4224
|
|
@@ -268,7 +270,7 @@ infrahub/core/schema/manager.py,sha256=4lPjjtE_MtJ0acJdYAJEkuK4jap3NnTdxB5esEB71
|
|
|
268
270
|
infrahub/core/schema/node_schema.py,sha256=ld_Wrqf-RsoEUVz_lKE0tcSf5n_oYZYtRI0lTqtd63o,6150
|
|
269
271
|
infrahub/core/schema/profile_schema.py,sha256=cOPSOt5KLgQ0nbqrAN_o33hY_pUtrKmiwSbY_YpVolI,1092
|
|
270
272
|
infrahub/core/schema/relationship_schema.py,sha256=lVbyQKMP2jPZZwZGK6DBvXdXfEQEsQGMbZ2WYxOZKTw,8261
|
|
271
|
-
infrahub/core/schema/schema_branch.py,sha256=
|
|
273
|
+
infrahub/core/schema/schema_branch.py,sha256=iEKPbXCbvjT9NOD-iRyYiaSEywy2FLEUt7iJA5VNU5M,97863
|
|
272
274
|
infrahub/core/schema/schema_branch_computed.py,sha256=14UUsQJDLMHkYhg7QMqeLiTF3PO8c8rGa90ul3F2ZZo,10629
|
|
273
275
|
infrahub/core/schema/template_schema.py,sha256=O-PBS9IRM4JX6PxeoyZKwqZ0u0SdQ2zxWMc01PJ2_EA,1084
|
|
274
276
|
infrahub/core/task/__init__.py,sha256=Ied1NvKGJUDmff27z_-yWW8ArenHxGvSvQTaQyx1iHs,128
|
|
@@ -306,17 +308,18 @@ infrahub/core/validators/relationship/count.py,sha256=097U8nv52Txnx5fgWNiIX56-Lg
|
|
|
306
308
|
infrahub/core/validators/relationship/optional.py,sha256=FFAUjS9TT-IM7qO6YhMQWLcI9S-CwtBSpoD0AdWsPls,4369
|
|
307
309
|
infrahub/core/validators/relationship/peer.py,sha256=pg6dzv_aBvu2DOqKUXuyPa2IsoW0TYQU-tR2NMOJmAw,5609
|
|
308
310
|
infrahub/core/validators/shared.py,sha256=dhCz2oTM5JxA3mpcQvN83KIKIv-VNPSiG0lh4ZiTAFw,1345
|
|
309
|
-
infrahub/core/validators/tasks.py,sha256=
|
|
311
|
+
infrahub/core/validators/tasks.py,sha256=2lnF1o5YfhST7n9DyFoCKYkiTaV1NzX5nVOlBJbeoPY,3485
|
|
310
312
|
infrahub/core/validators/uniqueness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
311
313
|
infrahub/core/validators/uniqueness/checker.py,sha256=RpiLpIjbdkwwjivry-vjEkVim6ZoC-t2H5Bal7ngASQ,10375
|
|
312
314
|
infrahub/core/validators/uniqueness/index.py,sha256=Jw1o-UVinQquNduZ5vCCzt8GUfIEdVzBo-1XyRti8F8,5068
|
|
313
315
|
infrahub/core/validators/uniqueness/model.py,sha256=V2aejcuHPhgC5nTrS7xX0JFMzprVu90QAau-rUzruCY,5135
|
|
314
316
|
infrahub/core/validators/uniqueness/query.py,sha256=NudW0JziATlCloFOFIyoABeu1IGvCl2ug9itEmXS500,11843
|
|
315
|
-
infrahub/database/__init__.py,sha256=
|
|
317
|
+
infrahub/database/__init__.py,sha256=R-Hc5qOlWdPex_4mDTDPDw9N2_9prOXCP90mQDvk-VE,20564
|
|
316
318
|
infrahub/database/index.py,sha256=ATLqw9Grqbq7haGGm14VSEPmcPniid--YATiffo4sA0,1676
|
|
317
319
|
infrahub/database/memgraph.py,sha256=Fg3xHP9s0MiBBmMvcEmsJvuIUSq8U_XCS362HDE9d1s,1742
|
|
318
320
|
infrahub/database/metrics.py,sha256=xU4OSKFbsxcw_yZlt_39PmGtF7S7yPbPuOIlSCu5sI0,739
|
|
319
321
|
infrahub/database/neo4j.py,sha256=ou7PGE9rbcVD4keBEFCDFm30MEexnijbZOo3kqrfW3k,2337
|
|
322
|
+
infrahub/database/validation.py,sha256=lVB9qCCEHd0pEUylD-MmOHXyhRLg-b4wyIEhfAENFtk,4153
|
|
320
323
|
infrahub/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
321
324
|
infrahub/dependencies/builder/constraint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
322
325
|
infrahub/dependencies/builder/constraint/grouped/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -408,7 +411,7 @@ infrahub/graphql/analyzer.py,sha256=LNdNbgCKWc50rwO3VrmbchRgYy6GvSDcRFdZXXmM_pI,
|
|
|
408
411
|
infrahub/graphql/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
409
412
|
infrahub/graphql/api/dependencies.py,sha256=-NMUA_N4tWcVpS6ksCebAyza-JTmHqyYY_QZizgBR1c,1690
|
|
410
413
|
infrahub/graphql/api/endpoints.py,sha256=wH9eO3CFT-eoSe1Y32BhU9mIf6smEnPeP3tAxZkdt4g,1510
|
|
411
|
-
infrahub/graphql/app.py,sha256=
|
|
414
|
+
infrahub/graphql/app.py,sha256=4xKptosI6SXlBfQSNJHHGNrdCRAZQ2uMTpPPKY3_mzE,21004
|
|
412
415
|
infrahub/graphql/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
413
416
|
infrahub/graphql/auth/query_permission_checker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
414
417
|
infrahub/graphql/auth/query_permission_checker/anonymous_checker.py,sha256=ibsmGyOelLJbN2Kfkmffv-5D79h7tRc1Fez5tauFY8w,1377
|
|
@@ -424,8 +427,8 @@ infrahub/graphql/directives.py,sha256=wyIkJFp7l0J4JqNl1Lqu7YfKXP7glrewlQFMDTUAPc
|
|
|
424
427
|
infrahub/graphql/enums.py,sha256=9F0XWfjQpC__0YRccYG1T-3qL1V8_PmlRlVpU1-n7nQ,820
|
|
425
428
|
infrahub/graphql/initialization.py,sha256=e97vYE7lQZm7OJxJrhKA6kdxKJ4QOcVbTpoNHq9fweM,4446
|
|
426
429
|
infrahub/graphql/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
427
|
-
infrahub/graphql/loaders/node.py,sha256=
|
|
428
|
-
infrahub/graphql/loaders/peers.py,sha256=
|
|
430
|
+
infrahub/graphql/loaders/node.py,sha256=p7qJxRpXSAddq2fcwJeaIRy-5ReSn2EUitQbDhlmdM4,2618
|
|
431
|
+
infrahub/graphql/loaders/peers.py,sha256=wsB-ZtaU-BlR99EvWUbf6_SFhFJYOspz5QaTln_MZ4Q,2799
|
|
429
432
|
infrahub/graphql/loaders/shared.py,sha256=hUxLy8iVgfpEZiUMKNkUAeshPKKzEVSDMDsuaBbjJW4,389
|
|
430
433
|
infrahub/graphql/manager.py,sha256=1q3HcaIcg82-t7dq0M3uIAihmVka-7w2KKsols5UMww,45222
|
|
431
434
|
infrahub/graphql/metrics.py,sha256=viq_M57mDYd4DDK7suUttf1FJTgzQ3U50yOuSw_Nd-s,2267
|
|
@@ -441,7 +444,7 @@ infrahub/graphql/mutations/diff_conflict.py,sha256=JngQfyKXCVlmtlqQ_VyabmrOEDOEK
|
|
|
441
444
|
infrahub/graphql/mutations/generator.py,sha256=Ulw4whZm8Gc8lJjwfUFoFSsR0cOUliFKl87Oca4B9O0,3579
|
|
442
445
|
infrahub/graphql/mutations/graphql_query.py,sha256=mp_O2byChneCihUrEAFEiIAgJ1gW9WrgtwPetUQmkJw,3562
|
|
443
446
|
infrahub/graphql/mutations/ipam.py,sha256=wIN8OcTNCHVy32YgatWZi2Of-snFYBd4wlxOAJvE-AY,15961
|
|
444
|
-
infrahub/graphql/mutations/main.py,sha256=
|
|
447
|
+
infrahub/graphql/mutations/main.py,sha256=LxzNZQeSJ-03t6MZaVrw0bvwI5NlcGSeZGVdyqsuKbE,26590
|
|
445
448
|
infrahub/graphql/mutations/menu.py,sha256=u2UbOA-TFDRcZRGFkgYTmpGxN2IAUgOvJXd7SnsufyI,3708
|
|
446
449
|
infrahub/graphql/mutations/models.py,sha256=ilkSLr8OxVO9v3Ra_uDyUTJT9qPOmdPMqQbuWIydJMo,264
|
|
447
450
|
infrahub/graphql/mutations/node_getter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -449,7 +452,7 @@ infrahub/graphql/mutations/node_getter/by_default_filter.py,sha256=_owbYHXWqJ6x4
|
|
|
449
452
|
infrahub/graphql/mutations/node_getter/by_hfid.py,sha256=txpj4xPeL3eYOB9lRiHEFxxcRf6bb6lyIJnhVCHr3x8,3120
|
|
450
453
|
infrahub/graphql/mutations/node_getter/by_id.py,sha256=azERy5XBUe4fYf4t1rhKEn64MlGfm_zH4k-tJU6W69s,856
|
|
451
454
|
infrahub/graphql/mutations/node_getter/interface.py,sha256=3MVTz_3EQnI7REp-ytQvgJuEgWUmrmnRIqKpP8WHCyY,419
|
|
452
|
-
infrahub/graphql/mutations/proposed_change.py,sha256=
|
|
455
|
+
infrahub/graphql/mutations/proposed_change.py,sha256=i56UkD0URwLykiOQPcVSnhsjBaoLUaKJvWFzGBJsmU0,10123
|
|
453
456
|
infrahub/graphql/mutations/relationship.py,sha256=b-zi8O0JZo52zVoGabIrWvIFh64PbhHzjF9klZ7p8ac,20139
|
|
454
457
|
infrahub/graphql/mutations/repository.py,sha256=Whrt1uYWt7Ro6omJYN8zc3D-poZ6bOBrpBHIG4odAmo,11316
|
|
455
458
|
infrahub/graphql/mutations/resource_manager.py,sha256=Nykdo4pIJ9BOossg24-dw_nU71qelYki896NIJk5O5I,8924
|
|
@@ -466,22 +469,22 @@ infrahub/graphql/queries/diff/tree.py,sha256=4XcHIMDtJLA6nDBzGNn2WR_HeY_7lrmIU38
|
|
|
466
469
|
infrahub/graphql/queries/event.py,sha256=9kHi37WmM4bwGgnIPaPLVOaXp124tn10v60kNx5C7aU,4204
|
|
467
470
|
infrahub/graphql/queries/internal.py,sha256=pcGLpLrY1fC_HxHNs8NAFjr5FTFzcgRlS1F7b65gqfE,647
|
|
468
471
|
infrahub/graphql/queries/ipam.py,sha256=peN--58IhLgS06O44AEthefEkaVDc7f38Sib3JyGKu4,4106
|
|
469
|
-
infrahub/graphql/queries/relationship.py,sha256=
|
|
472
|
+
infrahub/graphql/queries/relationship.py,sha256=QaSqr42NHW5wCbgHiYTI9Bgo7Qov9I0-jO8xcj-RBlU,2582
|
|
470
473
|
infrahub/graphql/queries/resource_manager.py,sha256=VqULXcLZBgkisQOkuFRP-YtgAdkRxvifpcDyY9dzrNQ,14932
|
|
471
474
|
infrahub/graphql/queries/search.py,sha256=0_yp6yxPSy8TQoTmp6zpc3u0b1TRuGgUOiMTfZo6LqU,4958
|
|
472
475
|
infrahub/graphql/queries/status.py,sha256=4GtTKOUBsVSHdPoWbGAka52V99iz39fsrgmWgm8HoIY,2116
|
|
473
|
-
infrahub/graphql/queries/task.py,sha256
|
|
476
|
+
infrahub/graphql/queries/task.py,sha256=-b443BY8XlE03F-RUcH3mxX_veuQP8Jf2GLCWKrAtWc,3914
|
|
474
477
|
infrahub/graphql/resolvers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
475
|
-
infrahub/graphql/resolvers/many_relationship.py,sha256=
|
|
476
|
-
infrahub/graphql/resolvers/resolver.py,sha256=
|
|
477
|
-
infrahub/graphql/resolvers/single_relationship.py,sha256=
|
|
478
|
+
infrahub/graphql/resolvers/many_relationship.py,sha256=B9D0cXlVIFntp7tDeZsvMjq30dsJpVRMCdLbeK9sqdI,9763
|
|
479
|
+
infrahub/graphql/resolvers/resolver.py,sha256=CgCfeARqwp9khmqdyq5G0W9q1Xvr6XapnSdWr-IW404,11930
|
|
480
|
+
infrahub/graphql/resolvers/single_relationship.py,sha256=TODob8c54RJmtrDjel-KU9XUv-zncvdmvtYP2_AcjoU,6976
|
|
478
481
|
infrahub/graphql/schema.py,sha256=ekON1ic2MVHSMG_yrHJ9Zfclo2dpVOpZ3IWdpgv4G_g,3691
|
|
479
482
|
infrahub/graphql/subscription/__init__.py,sha256=rVgLryqg-kbzkd3Dywb1gMPsthR8wFqB7nluuRKKfrE,1154
|
|
480
483
|
infrahub/graphql/subscription/events.py,sha256=tDg9fy66dLmbXaf_9YC-3LmC1sqsj-smbq_LOsHdZ5Y,1838
|
|
481
|
-
infrahub/graphql/subscription/graphql_query.py,sha256=
|
|
484
|
+
infrahub/graphql/subscription/graphql_query.py,sha256=U9PwREMghxbuIoGWh3_rV33wKPzDyMILZ8_tuniwukg,2266
|
|
482
485
|
infrahub/graphql/types/__init__.py,sha256=oP4DhYAteHkc8LiQsIRHE1q2jaksfc-VvAO1urkmI4k,1895
|
|
483
486
|
infrahub/graphql/types/attribute.py,sha256=bc2q44q8j5DTNdwBMe0SgG7Rbk8si1h-8SyqGIa-Rn0,6594
|
|
484
|
-
infrahub/graphql/types/branch.py,sha256=
|
|
487
|
+
infrahub/graphql/types/branch.py,sha256=CUYvw02AovhfJVi14QQvFMytB2zBSQqC_zJqmp5kv1Q,1423
|
|
485
488
|
infrahub/graphql/types/common.py,sha256=3I3p1bPOorwWgTqKbHqcDB7AvNG0JMdRyzIGxUrrREA,401
|
|
486
489
|
infrahub/graphql/types/context.py,sha256=PrgEOGq0ERAsbFFNDA40WMlids72StbL2q88nGW46cQ,405
|
|
487
490
|
infrahub/graphql/types/enums.py,sha256=Va-39ysZXciR8arQGqRZo9piKb5b0oufUl6uiyijwNc,383
|
|
@@ -492,7 +495,7 @@ infrahub/graphql/types/permission.py,sha256=zptTaTR-ndIbcb8AEwBXm-TRxgr400T8untx
|
|
|
492
495
|
infrahub/graphql/types/relationship.py,sha256=2Bs-cRbP4ihY8gelaLnNNgBUdY1SBFZkkwien-qWgOI,436
|
|
493
496
|
infrahub/graphql/types/standard_node.py,sha256=6OnB0U2QW0PyCDV2cyvHye4-g7agnTuD4HyQ4Q6x_gw,1821
|
|
494
497
|
infrahub/graphql/types/task.py,sha256=ozjcm24Qj81JmiR2scW5APlPGs__dhFIGjlqzYXSnoo,1439
|
|
495
|
-
infrahub/graphql/types/task_log.py,sha256=
|
|
498
|
+
infrahub/graphql/types/task_log.py,sha256=jqB2SzIDVaVHRKbe10IFOvbzUv4pbTv-lb0ydwkdt7w,753
|
|
496
499
|
infrahub/graphql/utils.py,sha256=cVnF_FNR2-R8TnxxgKVgwjC6N1tXSChg5A8sKeMvE9g,3859
|
|
497
500
|
infrahub/groups/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
498
501
|
infrahub/groups/ancestors.py,sha256=ORNXupyZLOhtuQ-TxToONqJn-2OHFBPGubz-2cQpSwc,981
|
|
@@ -533,10 +536,10 @@ infrahub/message_bus/operations/git/__init__.py,sha256=0Fbz1AnU8lWKdX7PS_b0BvjiK
|
|
|
533
536
|
infrahub/message_bus/operations/git/file.py,sha256=uW1dXVCMrQNC5-DFrVJ6PvfU47CQ2CQJec-bOXoBkjc,1472
|
|
534
537
|
infrahub/message_bus/operations/git/repository.py,sha256=eQ6csfEoCbyOTAgoA5mzHerW8-TlbrQaZQ4Htj6qZu8,2432
|
|
535
538
|
infrahub/message_bus/operations/refresh/__init__.py,sha256=vBuvTL4zRRpOMXATmckQ3bx2GnNwhxicFECA8-8ZZXk,47
|
|
536
|
-
infrahub/message_bus/operations/refresh/registry.py,sha256=
|
|
539
|
+
infrahub/message_bus/operations/refresh/registry.py,sha256=JOR-71kiSgEpbEeLJAxcNv7JoV5ORahV_Gr6ytKgZSQ,1357
|
|
537
540
|
infrahub/message_bus/operations/requests/__init__.py,sha256=7BWa2wc4XSNk13zySOEUdFfcaldSIZT6WXdR6eDxk-U,131
|
|
538
541
|
infrahub/message_bus/operations/requests/generator_definition.py,sha256=AE2x0NiGoyqD5PYp7XmmjzD23SqNCTyzI8KwcTcVurg,6093
|
|
539
|
-
infrahub/message_bus/operations/requests/proposed_change.py,sha256=
|
|
542
|
+
infrahub/message_bus/operations/requests/proposed_change.py,sha256=CFxtcoYdmsdt9lKebeD407wEJB-Qo_uR8BB-t3wp-Kk,23040
|
|
540
543
|
infrahub/message_bus/operations/send/__init__.py,sha256=ivuUTAknLiWfArR44SxA40l0UKVkdHjtDIx0mg06IcE,39
|
|
541
544
|
infrahub/message_bus/operations/send/echo.py,sha256=m2z_ij7Bucl8u1E1rLAfL3fsrhKZhk_vNIvLqNErIEI,652
|
|
542
545
|
infrahub/message_bus/types.py,sha256=INOsBhOsPnTSB_6SvMWw1BrnRJZyDgG2c601IjSidgs,4418
|
|
@@ -552,8 +555,7 @@ infrahub/patch/plan_reader.py,sha256=uqHNYVBBkpmVIGwaxl2tlMNJd2tPVedNZoSmFSjTdow
|
|
|
552
555
|
infrahub/patch/plan_writer.py,sha256=x2u5Oe3ME3zXTdkz5hRnvp2EaQwt-r4LyuSATc2LkKs,4822
|
|
553
556
|
infrahub/patch/queries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
554
557
|
infrahub/patch/queries/base.py,sha256=wXtv4I-7l_u0kXJFbmFZZJ0_2_5yvuAJwmwiLqRq7AY,338
|
|
555
|
-
infrahub/patch/queries/
|
|
556
|
-
infrahub/patch/queries/delete_duplicated_edges.py,sha256=Td5LeNFASt8JH49ufaCZFHT3G8AocvYSw-ZfndqwP1A,6302
|
|
558
|
+
infrahub/patch/queries/delete_duplicated_edges.py,sha256=GjmdbkRTtZzsM2Pr53nm4AHM5MdI6oxhdaumZDcgUKU,6804
|
|
557
559
|
infrahub/patch/runner.py,sha256=ZB4aOqlG77hJNtDyQtIXmi-2WgM07WSEFtWV2NItIqk,12594
|
|
558
560
|
infrahub/patch/vertex_adder.py,sha256=lhWELYWlHwkopGOECSHRfj1mb0-COheibsu95r2Hwzs,2796
|
|
559
561
|
infrahub/patch/vertex_deleter.py,sha256=czdb8T30k_-WSbcZUVS2-DvaN3Dp4j9ss2lAz8KN0mo,1302
|
|
@@ -609,7 +611,7 @@ infrahub/task_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
609
611
|
infrahub/task_manager/constants.py,sha256=1t1BZRa8_y89gIDPNHzIbRKo63nHOP37-r5OvtHa56c,559
|
|
610
612
|
infrahub/task_manager/event.py,sha256=Dx6LHRMsx1B1BFz9HIyPqhujAK2DR-JjRB7RJVAH3ik,11091
|
|
611
613
|
infrahub/task_manager/models.py,sha256=98hoEqScfwQVc-Col_rZE5UISccYlb-1fgT3nKklZSk,8100
|
|
612
|
-
infrahub/task_manager/task.py,sha256=
|
|
614
|
+
infrahub/task_manager/task.py,sha256=Rtb_v0D43jMRq7cmi0XMpMX-WHRPPMDmE67yqLXAJ3o,12390
|
|
613
615
|
infrahub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
614
616
|
infrahub/tasks/artifact.py,sha256=AJTbD6hv2q0QIMkCvxUtC8L7n1-8Ka2nC5yo_rb7Rjo,1983
|
|
615
617
|
infrahub/tasks/check.py,sha256=WEdktFP1XzahHtF6N782OnNFzkg5uX3KIeNFRy3NEUM,730
|
|
@@ -619,10 +621,10 @@ infrahub/tasks/recurring.py,sha256=RJO2zdzCU-38Kb81lmCUbFQOBhGui8qn2QizTV4vj9I,4
|
|
|
619
621
|
infrahub/tasks/registry.py,sha256=o1ybJvkNOSpFBvqem6wkOrtxqm6nqnbDA7JcptP-aC8,3169
|
|
620
622
|
infrahub/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
621
623
|
infrahub/telemetry/constants.py,sha256=_5mJAZaT_wTCaF7Yzsd---Zn1N6GZkoP_954GK8K4-c,184
|
|
622
|
-
infrahub/telemetry/database.py,sha256=
|
|
624
|
+
infrahub/telemetry/database.py,sha256=9UVPOxRionVF65jjo8slRIaNBOv-KMRzq7I-7fe3wZE,3111
|
|
623
625
|
infrahub/telemetry/models.py,sha256=q3h_wSX0A2OZgDHo05TXTgcHrzDSxx8hSyqRKPGLvwc,1405
|
|
624
626
|
infrahub/telemetry/task_manager.py,sha256=x7bUCQ2jXi93VWmrjKZHZTzR3JhD7r0OhhqK7ymCnAM,2864
|
|
625
|
-
infrahub/telemetry/tasks.py,sha256=
|
|
627
|
+
infrahub/telemetry/tasks.py,sha256=8-eB6lCUOKCmy5SWFD5GAEu0Mz0T41aQWmENwGQbSfA,4457
|
|
626
628
|
infrahub/telemetry/utils.py,sha256=K-gmj4QilO3HXAqJRzUwVcpqdA9KcM4RYJPU_zUYpHA,308
|
|
627
629
|
infrahub/trace.py,sha256=Hir9hMWx_6IKF_dhDnMxYjusJdy0ycjB5CHWge2wXNE,3759
|
|
628
630
|
infrahub/transformations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -644,7 +646,7 @@ infrahub/visuals.py,sha256=N62G4oOOIYNFpvMjKq7uos-oZAZybGMp57uh5jsVX9w,627
|
|
|
644
646
|
infrahub/webhook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
645
647
|
infrahub/webhook/gather.py,sha256=XNaIGiHDiMjjtSjsVbswOze7cLaL0MKJmvSbZBS-WT0,691
|
|
646
648
|
infrahub/webhook/models.py,sha256=c_6Ng8BeoyUDb4TZInVruB7e8Faq_QQ8-00IVcEBwJM,10031
|
|
647
|
-
infrahub/webhook/tasks.py,sha256=
|
|
649
|
+
infrahub/webhook/tasks.py,sha256=O1M60KuxXO_eDHSXMo-Y3w_F58aRQ34F6UlPPYApTfI,7294
|
|
648
650
|
infrahub/webhook/triggers.py,sha256=v1dzFV4wX0GO2n5hft_qzp-oJOA2P_9Q2eTcSP-i0pk,1574
|
|
649
651
|
infrahub/worker.py,sha256=JtTM-temURUbpEy-bkKJuTt-GKoiHFDrOe9SyVTIXEM,49
|
|
650
652
|
infrahub/workers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -761,18 +763,19 @@ infrahub_sdk/uuidt.py,sha256=Tz-4nHkJwbi39UT3gaIe2wJeZNAoBqf6tm3sw7LZbXc,2155
|
|
|
761
763
|
infrahub_sdk/yaml.py,sha256=512OKgxAYPt4QLBFlucUB4GgwKJ09dzgC86pO57YFFw,5018
|
|
762
764
|
infrahub_testcontainers/__init__.py,sha256=oPpmesGgYBSdKTg1L37FGwYBeao1EHury5SJGul-CT8,216
|
|
763
765
|
infrahub_testcontainers/constants.py,sha256=mZ4hLvcf4rKk9wC7EId4MQxAY0sk4V99deB04N0J2bg,85
|
|
764
|
-
infrahub_testcontainers/container.py,sha256
|
|
765
|
-
infrahub_testcontainers/docker-compose.test.yml,sha256=
|
|
766
|
+
infrahub_testcontainers/container.py,sha256=CpRLoCQjN37Iv9DpMQX2WHgsDObT7_iNfE6OTWL90OE,19559
|
|
767
|
+
infrahub_testcontainers/docker-compose-cluster.test.yml,sha256=noKd7NLr6GQOn1X4qukvpsRvg15unGS7BfPDG4xkKdM,12057
|
|
768
|
+
infrahub_testcontainers/docker-compose.test.yml,sha256=NgQF0un3LNUWhY0-uKb56Ky9ZmCJP0dRssUPx4qZp-o,8562
|
|
766
769
|
infrahub_testcontainers/haproxy.cfg,sha256=QUkG2Xu-hKoknPOeYKAkBT_xJH6U9CfIS0DTMFZJsnk,1305
|
|
767
|
-
infrahub_testcontainers/helpers.py,sha256=
|
|
770
|
+
infrahub_testcontainers/helpers.py,sha256=a6qRHjeFZetkq0zQj5pgz021AI7XhArMG3ze7ZQuEHk,4288
|
|
768
771
|
infrahub_testcontainers/host.py,sha256=Z4_gGoGKKeM_HGVS7SdYL1FTNGyLBk8wzicdSKHpfmM,1486
|
|
769
772
|
infrahub_testcontainers/measurements.py,sha256=gR-uTasSIFCXrwvnNpIpfsQIopKftT7pBiarCgIShaQ,2214
|
|
770
773
|
infrahub_testcontainers/models.py,sha256=ASYyvl7d_WQz_i7y8-3iab9hwwmCl3OCJavqVbe8nXU,954
|
|
771
774
|
infrahub_testcontainers/performance_test.py,sha256=hvwiy6tc_lWniYqGkqfOXVGAmA_IV15VOZqbiD9ezno,6149
|
|
772
|
-
infrahub_testcontainers/plugin.py,sha256=
|
|
775
|
+
infrahub_testcontainers/plugin.py,sha256=I3RuZQ0dARyKHuqCf0y1Yj731P2Mwf3BJUehRJKeWrs,5645
|
|
773
776
|
infrahub_testcontainers/prometheus.yml,sha256=610xQEyj3xuVJMzPkC4m1fRnCrjGpiRBrXA2ytCLa54,599
|
|
774
|
-
infrahub_server-1.2.
|
|
775
|
-
infrahub_server-1.2.
|
|
776
|
-
infrahub_server-1.2.
|
|
777
|
-
infrahub_server-1.2.
|
|
778
|
-
infrahub_server-1.2.
|
|
777
|
+
infrahub_server-1.2.12.dist-info/LICENSE.txt,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
|
|
778
|
+
infrahub_server-1.2.12.dist-info/METADATA,sha256=LB7mZe_ufD6CAEphVR-SojpySkkZd75NxwQ1n3AOVPw,8206
|
|
779
|
+
infrahub_server-1.2.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
780
|
+
infrahub_server-1.2.12.dist-info/entry_points.txt,sha256=UXIeFWDsrV-4IllNvUEd6KieYGzQfn9paga2YyABOQI,393
|
|
781
|
+
infrahub_server-1.2.12.dist-info/RECORD,,
|