infrahub-server 1.4.3__py3-none-any.whl → 1.4.4__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/cli/__init__.py +84 -17
- infrahub/core/graph/__init__.py +1 -1
- infrahub/core/migrations/graph/__init__.py +2 -0
- infrahub/core/migrations/graph/m038_redo_0000_prefix_fix.py +63 -0
- infrahub/graphql/auth/query_permission_checker/object_permission_checker.py +31 -19
- infrahub/lock.py +5 -4
- infrahub/tasks/registry.py +13 -3
- {infrahub_server-1.4.3.dist-info → infrahub_server-1.4.4.dist-info}/METADATA +1 -1
- {infrahub_server-1.4.3.dist-info → infrahub_server-1.4.4.dist-info}/RECORD +12 -11
- {infrahub_server-1.4.3.dist-info → infrahub_server-1.4.4.dist-info}/LICENSE.txt +0 -0
- {infrahub_server-1.4.3.dist-info → infrahub_server-1.4.4.dist-info}/WHEEL +0 -0
- {infrahub_server-1.4.3.dist-info → infrahub_server-1.4.4.dist-info}/entry_points.txt +0 -0
infrahub/cli/__init__.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from asyncio import run as aiorun
|
|
2
|
-
|
|
3
1
|
import typer
|
|
4
2
|
from infrahub_sdk.async_typer import AsyncTyper
|
|
5
3
|
|
|
@@ -43,18 +41,87 @@ async def _init_shell(config_file: str) -> None:
|
|
|
43
41
|
|
|
44
42
|
|
|
45
43
|
@app.command()
|
|
46
|
-
def shell(
|
|
47
|
-
"""Start a python shell within Infrahub context."""
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
from
|
|
53
|
-
from
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
def shell() -> None:
|
|
45
|
+
"""Start a python shell within Infrahub context (requires IPython)."""
|
|
46
|
+
from infrahub_sdk import InfrahubClient
|
|
47
|
+
from IPython import start_ipython
|
|
48
|
+
from traitlets.config import Config
|
|
49
|
+
|
|
50
|
+
from infrahub import config
|
|
51
|
+
from infrahub.components import ComponentType
|
|
52
|
+
from infrahub.core.branch import Branch
|
|
53
|
+
from infrahub.core.initialization import initialization
|
|
54
|
+
from infrahub.core.manager import NodeManager
|
|
55
|
+
from infrahub.core.registry import registry
|
|
56
|
+
from infrahub.dependencies.registry import build_component_registry
|
|
57
|
+
from infrahub.lock import initialize_lock
|
|
58
|
+
from infrahub.services import InfrahubServices
|
|
59
|
+
from infrahub.workers.dependencies import (
|
|
60
|
+
get_cache,
|
|
61
|
+
get_component,
|
|
62
|
+
get_database,
|
|
63
|
+
get_workflow,
|
|
64
|
+
set_component_type,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
async def initialize_service() -> InfrahubServices:
|
|
68
|
+
config.load_and_exit()
|
|
69
|
+
client = InfrahubClient()
|
|
70
|
+
|
|
71
|
+
component_type = ComponentType.GIT_AGENT
|
|
72
|
+
set_component_type(component_type=component_type)
|
|
73
|
+
|
|
74
|
+
database = await get_database()
|
|
75
|
+
|
|
76
|
+
build_component_registry()
|
|
77
|
+
|
|
78
|
+
workflow = get_workflow()
|
|
79
|
+
cache = await get_cache()
|
|
80
|
+
component = await get_component()
|
|
81
|
+
service = await InfrahubServices.new(
|
|
82
|
+
cache=cache,
|
|
83
|
+
client=client,
|
|
84
|
+
database=database,
|
|
85
|
+
workflow=workflow,
|
|
86
|
+
component=component,
|
|
87
|
+
component_type=component_type,
|
|
88
|
+
)
|
|
89
|
+
initialize_lock(service=service)
|
|
90
|
+
|
|
91
|
+
async with service.database as db:
|
|
92
|
+
await initialization(db=db)
|
|
93
|
+
await service.component.refresh_schema_hash()
|
|
94
|
+
|
|
95
|
+
return service
|
|
96
|
+
|
|
97
|
+
def welcome() -> None:
|
|
98
|
+
print("--------------------------------------")
|
|
99
|
+
print("infrahub interactive shell initialized")
|
|
100
|
+
print("--------------------------------------")
|
|
101
|
+
print("Available objects:")
|
|
102
|
+
print("* db: InfrahubDatabase")
|
|
103
|
+
print("* Branch: Branch")
|
|
104
|
+
print("* NodeManager: NodeManager")
|
|
105
|
+
print("* registry: Registry")
|
|
106
|
+
print("* service: InfrahubServices")
|
|
107
|
+
print()
|
|
108
|
+
print("Example use:")
|
|
109
|
+
print("In [1] tags = await NodeManager.query(schema='BuiltinTag', db=db)")
|
|
110
|
+
|
|
111
|
+
c = Config()
|
|
112
|
+
c.InteractiveShellApp.exec_lines = [
|
|
113
|
+
"service = await initialize_service()",
|
|
114
|
+
"db = service.database",
|
|
115
|
+
"welcome()",
|
|
116
|
+
]
|
|
117
|
+
c.TerminalInteractiveShell.colors = "Neutral"
|
|
118
|
+
|
|
119
|
+
user_ns = {
|
|
120
|
+
"initialize_service": initialize_service,
|
|
121
|
+
"welcome": welcome,
|
|
122
|
+
"NodeManager": NodeManager,
|
|
123
|
+
"Branch": Branch,
|
|
124
|
+
"registry": registry,
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
start_ipython(argv=[], config=c, user_ns=user_ns)
|
infrahub/core/graph/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
GRAPH_VERSION =
|
|
1
|
+
GRAPH_VERSION = 38
|
|
@@ -39,6 +39,7 @@ from .m034_find_orphaned_schema_fields import Migration034
|
|
|
39
39
|
from .m035_orphan_relationships import Migration035
|
|
40
40
|
from .m036_drop_attr_value_index import Migration036
|
|
41
41
|
from .m037_index_attr_vals import Migration037
|
|
42
|
+
from .m038_redo_0000_prefix_fix import Migration038
|
|
42
43
|
|
|
43
44
|
if TYPE_CHECKING:
|
|
44
45
|
from infrahub.core.root import Root
|
|
@@ -83,6 +84,7 @@ MIGRATIONS: list[type[GraphMigration | InternalSchemaMigration | ArbitraryMigrat
|
|
|
83
84
|
Migration035,
|
|
84
85
|
Migration036,
|
|
85
86
|
Migration037,
|
|
87
|
+
Migration038,
|
|
86
88
|
]
|
|
87
89
|
|
|
88
90
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import ipaddress
|
|
4
|
+
from typing import TYPE_CHECKING, Sequence
|
|
5
|
+
|
|
6
|
+
from infrahub.core.branch.models import Branch
|
|
7
|
+
from infrahub.core.initialization import initialization
|
|
8
|
+
from infrahub.core.ipam.reconciler import IpamReconciler
|
|
9
|
+
from infrahub.core.manager import NodeManager
|
|
10
|
+
from infrahub.core.migrations.shared import MigrationResult
|
|
11
|
+
from infrahub.core.timestamp import Timestamp
|
|
12
|
+
from infrahub.lock import initialize_lock
|
|
13
|
+
from infrahub.log import get_logger
|
|
14
|
+
|
|
15
|
+
from ..shared import InternalSchemaMigration, SchemaMigration
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from infrahub.database import InfrahubDatabase
|
|
19
|
+
|
|
20
|
+
log = get_logger()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Migration038(InternalSchemaMigration):
|
|
24
|
+
"""
|
|
25
|
+
Re-run migration 026 after Migration037 updates AttributeValueIndexed vertices correctly so that the call to
|
|
26
|
+
NodeManager.query will work
|
|
27
|
+
|
|
28
|
+
If someone is upgrading from 1.2.4 (release before migration 026) or earlier to 1.4.x or later, then migration 026
|
|
29
|
+
fail to find any 0.0.0.0 prefix nodes even if they exist. So we run it again here after migration 037 makes the
|
|
30
|
+
AttributeValueIndexed changes to be sure it completes correctly.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
name: str = "038_prefix_0000_fix"
|
|
34
|
+
minimum_version: int = 37
|
|
35
|
+
migrations: Sequence[SchemaMigration] = []
|
|
36
|
+
|
|
37
|
+
async def validate_migration(self, db: InfrahubDatabase) -> MigrationResult: # noqa: ARG002
|
|
38
|
+
return MigrationResult()
|
|
39
|
+
|
|
40
|
+
async def execute(self, db: InfrahubDatabase) -> MigrationResult:
|
|
41
|
+
# load schemas from database into registry
|
|
42
|
+
initialize_lock()
|
|
43
|
+
await initialization(db=db)
|
|
44
|
+
|
|
45
|
+
at = Timestamp()
|
|
46
|
+
for branch in await Branch.get_list(db=db):
|
|
47
|
+
prefix_0000s = await NodeManager.query(
|
|
48
|
+
db=db, schema="BuiltinIPPrefix", branch=branch, filters={"prefix__values": ["0.0.0.0/0", "::/0"]}
|
|
49
|
+
)
|
|
50
|
+
if not prefix_0000s:
|
|
51
|
+
continue
|
|
52
|
+
ipam_reconciler = IpamReconciler(db=db, branch=branch)
|
|
53
|
+
for prefix in prefix_0000s:
|
|
54
|
+
ip_namespace = await prefix.ip_namespace.get_peer(db=db)
|
|
55
|
+
ip_network = ipaddress.ip_network(prefix.prefix.value)
|
|
56
|
+
await ipam_reconciler.reconcile(
|
|
57
|
+
ip_value=ip_network,
|
|
58
|
+
namespace=ip_namespace,
|
|
59
|
+
node_uuid=prefix.get_id(),
|
|
60
|
+
at=at,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
return MigrationResult()
|
|
@@ -7,7 +7,7 @@ from infrahub.core.constants import GLOBAL_BRANCH_NAME, GlobalPermissions, Infra
|
|
|
7
7
|
from infrahub.core.manager import get_schema
|
|
8
8
|
from infrahub.core.schema.node_schema import NodeSchema
|
|
9
9
|
from infrahub.database import InfrahubDatabase
|
|
10
|
-
from infrahub.graphql.analyzer import InfrahubGraphQLQueryAnalyzer
|
|
10
|
+
from infrahub.graphql.analyzer import GraphQLOperation, InfrahubGraphQLQueryAnalyzer
|
|
11
11
|
from infrahub.graphql.initialization import GraphqlParams
|
|
12
12
|
from infrahub.permissions.constants import PermissionDecisionFlag
|
|
13
13
|
from infrahub.utils import extract_camelcase_words
|
|
@@ -119,34 +119,46 @@ class PermissionManagerPermissionChecker(GraphQLQueryPermissionCheckerInterface)
|
|
|
119
119
|
permission_required = GlobalPermission(
|
|
120
120
|
action=GlobalPermissions.MANAGE_PERMISSIONS.value, decision=PermissionDecision.ALLOW_ALL.value
|
|
121
121
|
)
|
|
122
|
+
# Map kinds and the relationship to protect from being read
|
|
123
|
+
kind_relationship_to_check = {
|
|
124
|
+
InfrahubKind.ACCOUNTROLE: "permissions",
|
|
125
|
+
InfrahubKind.BASEPERMISSION: "roles",
|
|
126
|
+
InfrahubKind.GLOBALPERMISSION: "roles",
|
|
127
|
+
InfrahubKind.OBJECTPERMISSION: "roles",
|
|
128
|
+
}
|
|
122
129
|
|
|
123
130
|
async def supports(self, db: InfrahubDatabase, account_session: AccountSession, branch: Branch) -> bool: # noqa: ARG002
|
|
124
131
|
return config.SETTINGS.main.allow_anonymous_access or account_session.authenticated
|
|
125
132
|
|
|
126
133
|
async def check(
|
|
127
134
|
self,
|
|
128
|
-
db: InfrahubDatabase,
|
|
135
|
+
db: InfrahubDatabase, # noqa: ARG002
|
|
129
136
|
account_session: AccountSession, # noqa: ARG002
|
|
130
137
|
analyzed_query: InfrahubGraphQLQueryAnalyzer,
|
|
131
138
|
query_parameters: GraphqlParams,
|
|
132
|
-
branch: Branch,
|
|
139
|
+
branch: Branch, # noqa: ARG002
|
|
133
140
|
) -> CheckerResolution:
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
141
|
+
for kind, relationship in self.kind_relationship_to_check.items():
|
|
142
|
+
if (
|
|
143
|
+
kind in analyzed_query.query_report.requested_read
|
|
144
|
+
and relationship in analyzed_query.query_report.requested_read[kind].relationships
|
|
145
|
+
):
|
|
146
|
+
query_parameters.context.active_permissions.raise_for_permission(permission=self.permission_required)
|
|
147
|
+
|
|
148
|
+
for query in analyzed_query.query_report.queries:
|
|
149
|
+
if not query.infrahub_model:
|
|
150
|
+
continue
|
|
151
|
+
|
|
152
|
+
# Prevent mutations on permissions and account roles
|
|
153
|
+
if (
|
|
154
|
+
query.operation == GraphQLOperation.MUTATION
|
|
155
|
+
and isinstance(query.infrahub_model, NodeSchema)
|
|
156
|
+
and (
|
|
157
|
+
InfrahubKind.BASEPERMISSION in query.infrahub_model.inherit_from
|
|
158
|
+
or query.infrahub_model.kind == InfrahubKind.ACCOUNTROLE
|
|
159
|
+
)
|
|
160
|
+
):
|
|
161
|
+
query_parameters.context.active_permissions.raise_for_permission(permission=self.permission_required)
|
|
150
162
|
|
|
151
163
|
return CheckerResolution.NEXT_CHECKER
|
|
152
164
|
|
infrahub/lock.py
CHANGED
|
@@ -13,6 +13,7 @@ from redis.asyncio.lock import Lock as GlobalLock
|
|
|
13
13
|
|
|
14
14
|
from infrahub import config
|
|
15
15
|
from infrahub.core.timestamp import current_timestamp
|
|
16
|
+
from infrahub.worker import WORKER_IDENTITY
|
|
16
17
|
|
|
17
18
|
if TYPE_CHECKING:
|
|
18
19
|
from types import TracebackType
|
|
@@ -92,7 +93,7 @@ class NATSLock:
|
|
|
92
93
|
await self.release()
|
|
93
94
|
|
|
94
95
|
async def acquire(self) -> None:
|
|
95
|
-
token = current_timestamp()
|
|
96
|
+
token = f"{current_timestamp()}::{WORKER_IDENTITY}"
|
|
96
97
|
while True:
|
|
97
98
|
if await self.do_acquire(token):
|
|
98
99
|
self.token = token
|
|
@@ -138,9 +139,9 @@ class InfrahubLock:
|
|
|
138
139
|
if self.use_local:
|
|
139
140
|
self.local = LocalLock()
|
|
140
141
|
elif config.SETTINGS.cache.driver == config.CacheDriver.Redis:
|
|
141
|
-
self.remote = GlobalLock(redis=self.connection, name=self.name)
|
|
142
|
+
self.remote = GlobalLock(redis=self.connection, name=f"lock.{self.name}")
|
|
142
143
|
else:
|
|
143
|
-
self.remote = NATSLock(service=self.connection, name=self.name)
|
|
144
|
+
self.remote = NATSLock(service=self.connection, name=f"lock.{self.name}")
|
|
144
145
|
|
|
145
146
|
async def __aenter__(self):
|
|
146
147
|
await self.acquire()
|
|
@@ -156,7 +157,7 @@ class InfrahubLock:
|
|
|
156
157
|
async def acquire(self) -> None:
|
|
157
158
|
with LOCK_ACQUIRE_TIME_METRICS.labels(self.name, self.lock_type).time():
|
|
158
159
|
if not self.use_local:
|
|
159
|
-
await self.remote.acquire(token=current_timestamp())
|
|
160
|
+
await self.remote.acquire(token=f"{current_timestamp()}::{WORKER_IDENTITY}")
|
|
160
161
|
else:
|
|
161
162
|
await self.local.acquire()
|
|
162
163
|
self.acquire_time = time.time_ns()
|
infrahub/tasks/registry.py
CHANGED
|
@@ -42,7 +42,7 @@ async def create_branch_registry(db: InfrahubDatabase, branch: Branch) -> None:
|
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
async def update_branch_registry(db: InfrahubDatabase, branch: Branch) -> None:
|
|
45
|
-
"""Update the registry for a branch if the schema hash has changed."""
|
|
45
|
+
"""Update the registry for a branch if the schema hash has changed or the branch was rebased."""
|
|
46
46
|
|
|
47
47
|
existing_branch: Branch = registry.branch[branch.name]
|
|
48
48
|
|
|
@@ -50,13 +50,23 @@ async def update_branch_registry(db: InfrahubDatabase, branch: Branch) -> None:
|
|
|
50
50
|
log.warning("Branch schema hash is not set, cannot update branch registry")
|
|
51
51
|
return
|
|
52
52
|
|
|
53
|
-
if existing_branch.schema_hash
|
|
53
|
+
if existing_branch.schema_hash.main == branch.active_schema_hash.main:
|
|
54
54
|
log.debug(
|
|
55
|
-
"Branch schema hash is the same, no need to
|
|
55
|
+
"Branch schema hash is the same, no need to refresh the GraphQL schema within the registry",
|
|
56
56
|
branch=branch.name,
|
|
57
57
|
hash=existing_branch.schema_hash.main,
|
|
58
58
|
worker=WORKER_IDENTITY,
|
|
59
59
|
)
|
|
60
|
+
if existing_branch.branched_from != branch.branched_from:
|
|
61
|
+
# If the hash is the same but the branched_from timestamp differs it means
|
|
62
|
+
# that the branch has been rebased and these timestamps need to be refreshed
|
|
63
|
+
# in the registry even though the schema doesn't need to be reloaded.
|
|
64
|
+
log.info(
|
|
65
|
+
"Updating branched_from property in registry for rebased branch",
|
|
66
|
+
branch=branch.name,
|
|
67
|
+
worker=WORKER_IDENTITY,
|
|
68
|
+
)
|
|
69
|
+
registry.branch[branch.name] = branch
|
|
60
70
|
return
|
|
61
71
|
|
|
62
72
|
log.info(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: infrahub-server
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.4
|
|
4
4
|
Summary: Infrahub is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Author: OpsMill
|
|
@@ -36,7 +36,7 @@ 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
|
|
38
38
|
infrahub/branch/triggers.py,sha256=4sywoEX79fY2NkaGe6tTHnmytf4k6gXDm2FJHkkRJOw,793
|
|
39
|
-
infrahub/cli/__init__.py,sha256=
|
|
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
42
|
infrahub/cli/db.py,sha256=hqZcklxTgAKuXWOthrltOdENsiiTthq6tqySxu4HPFE,37727
|
|
@@ -139,7 +139,7 @@ infrahub/core/diff/repository/deserializer.py,sha256=bhN9ao8HxqKyRz273QGLNV9z9_S
|
|
|
139
139
|
infrahub/core/diff/repository/repository.py,sha256=u0QTMY1e2dknG_DuRAwzFt-Lp1_mdj5lqF2ymt77k9E,25581
|
|
140
140
|
infrahub/core/diff/tasks.py,sha256=jSXlenTJ5Fc189Xvm971e3-gBDRnfN19cxNaWvEFwAE,3306
|
|
141
141
|
infrahub/core/enums.py,sha256=qGbhRVoH43Xi0iDkUfWdQiKapJbLT9UKsCobFk_paIk,491
|
|
142
|
-
infrahub/core/graph/__init__.py,sha256=
|
|
142
|
+
infrahub/core/graph/__init__.py,sha256=O8Xci_50VdpSOWWUsegCGQvL7gUWJAJNc1ompQbvhf0,19
|
|
143
143
|
infrahub/core/graph/constraints.py,sha256=lmuzrKDFoeSKRiLtycB9PXi6zhMYghczKrPYvfWyy90,10396
|
|
144
144
|
infrahub/core/graph/index.py,sha256=A9jzEE_wldBJsEsflODeMt4GM8sPmmbHAJRNdFioR1k,1736
|
|
145
145
|
infrahub/core/graph/schema.py,sha256=o50Jcy6GBRk55RkDJSMIDDwHhLD7y_RWOirI9rCex4A,10776
|
|
@@ -158,7 +158,7 @@ infrahub/core/ipam/utilization.py,sha256=d-zpXCaWsHgJxBLopCDd7y4sJYvHcIzzpYhbTMI
|
|
|
158
158
|
infrahub/core/manager.py,sha256=xMXPwlaGNnghkRUW0ILwJAUlBQJZqo9cGp9GVyqkqYk,47564
|
|
159
159
|
infrahub/core/merge.py,sha256=TNZpxjNYcl3dnvE8eYXaWSXFDYeEa8DDsS9XbR2XKlA,11217
|
|
160
160
|
infrahub/core/migrations/__init__.py,sha256=dIExw90CrdTByeJqpiWkaZBclpAfzatG2H6fXx54su0,1305
|
|
161
|
-
infrahub/core/migrations/graph/__init__.py,sha256=
|
|
161
|
+
infrahub/core/migrations/graph/__init__.py,sha256=8NNpXMWWxKbuliktUJg7JllIePGERZxOnumC-UmkpX0,4161
|
|
162
162
|
infrahub/core/migrations/graph/m001_add_version_to_graph.py,sha256=YcLN6cFjE6IGheXR4Ujb6CcyY8bJ7WE289hcKJaENOc,1515
|
|
163
163
|
infrahub/core/migrations/graph/m002_attribute_is_default.py,sha256=wB6f2N_ChTvGajqHD-OWCG5ahRMDhhXZuwo79ieq_II,1036
|
|
164
164
|
infrahub/core/migrations/graph/m003_relationship_parent_optional.py,sha256=Aya-s98XfE9C7YluOwEjilwgnjaBnZxp27w_Xdv_NmU,2330
|
|
@@ -196,6 +196,7 @@ infrahub/core/migrations/graph/m034_find_orphaned_schema_fields.py,sha256=Fekohf
|
|
|
196
196
|
infrahub/core/migrations/graph/m035_orphan_relationships.py,sha256=K0J5gzFF5gY-QMom0tRGDckqw19aN0uSV8AZ8KdKSMo,1371
|
|
197
197
|
infrahub/core/migrations/graph/m036_drop_attr_value_index.py,sha256=z2BplzX0mue3lOxrM7xnWDNrs7N3TGdFKHZR-u0wDDY,1439
|
|
198
198
|
infrahub/core/migrations/graph/m037_index_attr_vals.py,sha256=bJB4yPWE73XA_ErUcnY90CR09_jbtA0jW6tE5U0GvQ4,22730
|
|
199
|
+
infrahub/core/migrations/graph/m038_redo_0000_prefix_fix.py,sha256=8seWnXQhgEJDFLWxYHVcnMNDPcHq5C24c0RYrtn_WGE,2411
|
|
199
200
|
infrahub/core/migrations/query/__init__.py,sha256=JoWOUWlV6IzwxWxObsfCnAAKUOHJkE7dZlOsfB64ZEo,876
|
|
200
201
|
infrahub/core/migrations/query/attribute_add.py,sha256=oitzB-PPAclfyNtcwCWJY3RdI5Zi4oEnR62BDzn1UQk,4835
|
|
201
202
|
infrahub/core/migrations/query/attribute_rename.py,sha256=onb9Nanht1Tz47JgneAcFsuhqqvPS6dvI2nNjRupLLo,6892
|
|
@@ -460,7 +461,7 @@ infrahub/graphql/auth/query_permission_checker/checker.py,sha256=OSJmoiqETvRtayY
|
|
|
460
461
|
infrahub/graphql/auth/query_permission_checker/default_branch_checker.py,sha256=QiuZXFnaTPaILeIl7MoEu4e6EYexRJd-AZLgAHwaCQc,2173
|
|
461
462
|
infrahub/graphql/auth/query_permission_checker/interface.py,sha256=p4IIicoD1QAM1Q_NiNqOMQqSAIkbNrSHJ-pAlrJfBfo,848
|
|
462
463
|
infrahub/graphql/auth/query_permission_checker/merge_operation_checker.py,sha256=_cv3jSsIA3MXQcD2etCgKzvTKaKNAhwDNqPRIlIzUo4,1640
|
|
463
|
-
infrahub/graphql/auth/query_permission_checker/object_permission_checker.py,sha256=
|
|
464
|
+
infrahub/graphql/auth/query_permission_checker/object_permission_checker.py,sha256=1IVUWIV-GOY_pc3zApii2WNdAG7xHhnw05mUUtXbN6A,9093
|
|
464
465
|
infrahub/graphql/auth/query_permission_checker/super_admin_checker.py,sha256=2RlJ1G-BmJIQW33SletzK1gIQ3nyEB2edTiX0xAjR2E,1550
|
|
465
466
|
infrahub/graphql/constants.py,sha256=iVvo3HK-ch7YmHw1Eg2E_ja3I45cNAwjpYahsnu85CI,37
|
|
466
467
|
infrahub/graphql/context.py,sha256=ahp-MvX_0glg9mSPbPVhEwvbYzrIKtaEAGt7CVnAusE,1681
|
|
@@ -550,7 +551,7 @@ infrahub/groups/models.py,sha256=eOiNtmJapT4zRQ3XbUf8TVb_bhzG2lUfVPhIBZv3Wz0,759
|
|
|
550
551
|
infrahub/groups/parsers.py,sha256=A60n-JmT-8F-7ATugV97R-mPWpRhNVNxqEbpibxiiUs,4260
|
|
551
552
|
infrahub/groups/tasks.py,sha256=yg-VNj37iWdBHyPE9BhN2QzjVo2D8glnlO37pwGcdsU,1563
|
|
552
553
|
infrahub/helpers.py,sha256=KchbQqgipU4VjfwnDbzCGjnEv-4espw_g63Zw4KAhbo,251
|
|
553
|
-
infrahub/lock.py,sha256=
|
|
554
|
+
infrahub/lock.py,sha256=EagMvKKPqWXKLvOpw2OXNPxNa1XLG0JNZgMzCU45EuA,8654
|
|
554
555
|
infrahub/log.py,sha256=4FP80DGY5sk9R7CjcDpPiTfxuow-nfbhXWVpDByCVrw,2817
|
|
555
556
|
infrahub/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
556
557
|
infrahub/menu/constants.py,sha256=z9aAxIBlAMXrjl3dXo0vZxBU0pcfh1FQOiqIussvpD0,195
|
|
@@ -662,7 +663,7 @@ infrahub/tasks/check.py,sha256=37n1U1Knb3AV6kz2sw_IabL9pnlqceLVICWf9GdSxZE,687
|
|
|
662
663
|
infrahub/tasks/dummy.py,sha256=6SxlQqQXZqgTuwLaAsK-p1O1TYNKfdGmUYjNJFNHe9s,1209
|
|
663
664
|
infrahub/tasks/keepalive.py,sha256=D6yh3Vmlr1WCEpZibk2YLc2n0dCcX6tM62HCSxyGEu8,783
|
|
664
665
|
infrahub/tasks/recurring.py,sha256=RJO2zdzCU-38Kb81lmCUbFQOBhGui8qn2QizTV4vj9I,447
|
|
665
|
-
infrahub/tasks/registry.py,sha256=
|
|
666
|
+
infrahub/tasks/registry.py,sha256=ncoiZ-GAkyeuKTy5gRkGzQhtx1rSLsMX4o9uZ1A0Kkk,4543
|
|
666
667
|
infrahub/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
667
668
|
infrahub/telemetry/constants.py,sha256=_5mJAZaT_wTCaF7Yzsd---Zn1N6GZkoP_954GK8K4-c,184
|
|
668
669
|
infrahub/telemetry/database.py,sha256=9UVPOxRionVF65jjo8slRIaNBOv-KMRzq7I-7fe3wZE,3111
|
|
@@ -826,8 +827,8 @@ infrahub_testcontainers/models.py,sha256=ASYyvl7d_WQz_i7y8-3iab9hwwmCl3OCJavqVbe
|
|
|
826
827
|
infrahub_testcontainers/performance_test.py,sha256=hvwiy6tc_lWniYqGkqfOXVGAmA_IV15VOZqbiD9ezno,6149
|
|
827
828
|
infrahub_testcontainers/plugin.py,sha256=I3RuZQ0dARyKHuqCf0y1Yj731P2Mwf3BJUehRJKeWrs,5645
|
|
828
829
|
infrahub_testcontainers/prometheus.yml,sha256=610xQEyj3xuVJMzPkC4m1fRnCrjGpiRBrXA2ytCLa54,599
|
|
829
|
-
infrahub_server-1.4.
|
|
830
|
-
infrahub_server-1.4.
|
|
831
|
-
infrahub_server-1.4.
|
|
832
|
-
infrahub_server-1.4.
|
|
833
|
-
infrahub_server-1.4.
|
|
830
|
+
infrahub_server-1.4.4.dist-info/LICENSE.txt,sha256=7GQO7kxVoQYnZtFrjZBKLRXbrGwwwimHPPOJtqXsozQ,11340
|
|
831
|
+
infrahub_server-1.4.4.dist-info/METADATA,sha256=FO70Jv93bMA5iuHIz3mW36epeZJC6wHgKttC65vvzMU,8277
|
|
832
|
+
infrahub_server-1.4.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
833
|
+
infrahub_server-1.4.4.dist-info/entry_points.txt,sha256=UXIeFWDsrV-4IllNvUEd6KieYGzQfn9paga2YyABOQI,393
|
|
834
|
+
infrahub_server-1.4.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|