qwak-core 0.4.254__py3-none-any.whl → 0.4.256__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.
@@ -20,7 +20,7 @@ from _qwak_proto.qwak.administration.v0.environments import configuration_pb2 as
20
20
  from _qwak_proto.qwak.administration.v0.users import user_pb2 as qwak_dot_administration_dot_v0_dot_users_dot_user__pb2
21
21
 
22
22
 
23
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!qwak/ecosystem/v0/ecosystem.proto\x12\x11qwak.ecosystem.v0\x1a\x30qwak/administration/account/v1/preferences.proto\x1a*qwak/administration/account/v1/terms.proto\x1a,qwak/administration/account/v1/account.proto\x1a\x39qwak/administration/account/v1/jfrog_tenant_details.proto\x1a\x37qwak/administration/v0/environments/configuration.proto\x1a\'qwak/administration/v0/users/user.proto\"<\n\x16UsernamePasswordMethod\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"(\n\x10QwakApiKeyMethod\x12\x14\n\x0cqwak_api_key\x18\x01 \x01(\t\"\\\n\x18\x41uthenticatedUserContext\x12@\n\x04user\x18\x01 \x01(\x0b\x32\x32.qwak.ecosystem.v0.AuthenticatedUnifiedUserContext\"\xfe\x01\n\x1f\x41uthenticatedUnifiedUserContext\x12\x0f\n\x07user_id\x18\x04 \x01(\t\x12\x45\n\x0f\x61\x63\x63ount_details\x18\x05 \x01(\x0b\x32,.qwak.ecosystem.v0.UserContextAccountDetails\x12?\n\x0c\x61\x63\x63ount_role\x18\x01 \x01(\x0e\x32).qwak.administration.user.QwakAccountRole\x12\x42\n\x13\x65nvironment_details\x18\x06 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails\"\xd6\x06\n\x19UserContextAccountDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x03 \x01(\t\x12\x44\n\x0bpreferences\x18\x05 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\\\n\x11\x65nvironment_by_id\x18\x04 \x03(\x0b\x32\x41.qwak.ecosystem.v0.UserContextAccountDetails.EnvironmentByIdEntry\x12t\n\x1euser_context_environment_by_id\x18\x06 \x03(\x0b\x32L.qwak.ecosystem.v0.UserContextAccountDetails.UserContextEnvironmentByIdEntry\x12\x39\n\x04type\x18\x07 \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\x08 \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\t \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\n \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\x1a]\n\x14\x45nvironmentByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails:\x02\x38\x01\x1as\n\x1fUserContextEnvironmentByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.qwak.ecosystem.v0.UserContextEnvironmentDetails:\x02\x38\x01\"\x1f\n\x1dUserContextEnvironmentDetails\"\xd8\x04\n\x0e\x41\x63\x63ountDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x44\n\x0bpreferences\x18\x03 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x05 \x01(\t\x12S\n\x12\x65nvironments_by_id\x18\x04 \x03(\x0b\x32\x37.qwak.ecosystem.v0.AccountDetails.EnvironmentsByIdEntry\x12\x39\n\x04type\x18\x06 \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\x07 \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\x08 \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\t \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\x1a^\n\x15\x45nvironmentsByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails:\x02\x38\x01\"\x84\x01\n\x12\x45nvironmentDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12T\n\rconfiguration\x18\x03 \x01(\x0b\x32=.qwak.administration.environment.QwakEnvironmentConfiguration\"\xde\x01\n\x0fUserAccountList\x12\x1a\n\x12\x64\x65\x66\x61ult_account_id\x18\x01 \x01(\t\x12L\n\x0e\x61\x63\x63ounts_by_id\x18\x02 \x03(\x0b\x32\x34.qwak.ecosystem.v0.UserAccountList.AccountsByIdEntry\x1a\x61\n\x11\x41\x63\x63ountsByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.qwak.ecosystem.v0.UserContextAccountDetails:\x02\x38\x01\x42\xb7\x01\n\x1c\x63om.qwak.ai.common.ecosystemP\x01Z\x94\x01github.com/qwak-ai/qwak-platform/services/shared/java/libs/qwak-common/qwak-common-api/qwak-platform-ecosystem-api/pb/qwak/ecosystem/v0;ecosystem_v0b\x06proto3')
23
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!qwak/ecosystem/v0/ecosystem.proto\x12\x11qwak.ecosystem.v0\x1a\x30qwak/administration/account/v1/preferences.proto\x1a*qwak/administration/account/v1/terms.proto\x1a,qwak/administration/account/v1/account.proto\x1a\x39qwak/administration/account/v1/jfrog_tenant_details.proto\x1a\x37qwak/administration/v0/environments/configuration.proto\x1a\'qwak/administration/v0/users/user.proto\"<\n\x16UsernamePasswordMethod\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"(\n\x10QwakApiKeyMethod\x12\x14\n\x0cqwak_api_key\x18\x01 \x01(\t\"\\\n\x18\x41uthenticatedUserContext\x12@\n\x04user\x18\x01 \x01(\x0b\x32\x32.qwak.ecosystem.v0.AuthenticatedUnifiedUserContext\"\xfe\x01\n\x1f\x41uthenticatedUnifiedUserContext\x12\x0f\n\x07user_id\x18\x04 \x01(\t\x12\x45\n\x0f\x61\x63\x63ount_details\x18\x05 \x01(\x0b\x32,.qwak.ecosystem.v0.UserContextAccountDetails\x12?\n\x0c\x61\x63\x63ount_role\x18\x01 \x01(\x0e\x32).qwak.administration.user.QwakAccountRole\x12\x42\n\x13\x65nvironment_details\x18\x06 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails\"\xd6\x06\n\x19UserContextAccountDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x03 \x01(\t\x12\x44\n\x0bpreferences\x18\x05 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\\\n\x11\x65nvironment_by_id\x18\x04 \x03(\x0b\x32\x41.qwak.ecosystem.v0.UserContextAccountDetails.EnvironmentByIdEntry\x12t\n\x1euser_context_environment_by_id\x18\x06 \x03(\x0b\x32L.qwak.ecosystem.v0.UserContextAccountDetails.UserContextEnvironmentByIdEntry\x12\x39\n\x04type\x18\x07 \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\x08 \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\t \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\n \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\x1a]\n\x14\x45nvironmentByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails:\x02\x38\x01\x1as\n\x1fUserContextEnvironmentByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.qwak.ecosystem.v0.UserContextEnvironmentDetails:\x02\x38\x01\"\x1f\n\x1dUserContextEnvironmentDetails\"\xd8\x04\n\x0e\x41\x63\x63ountDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x44\n\x0bpreferences\x18\x03 \x01(\x0b\x32/.qwak.administration.account.AccountPreferences\x12\x1e\n\x16\x64\x65\x66\x61ult_environment_id\x18\x05 \x01(\t\x12S\n\x12\x65nvironments_by_id\x18\x04 \x03(\x0b\x32\x37.qwak.ecosystem.v0.AccountDetails.EnvironmentsByIdEntry\x12\x39\n\x04type\x18\x06 \x01(\x0e\x32+.qwak.administration.account.v1.AccountType\x12\x39\n\x04tier\x18\x07 \x01(\x0e\x32+.qwak.administration.account.v1.AccountTier\x12I\n\x0e\x61\x63\x63\x65pted_terms\x18\x08 \x01(\x0b\x32\x31.qwak.administration.account.AccountAcceptedTerms\x12P\n\x14jfrog_tenant_details\x18\t \x01(\x0b\x32\x32.qwak.administration.account.v1.JfrogTenantDetails\x1a^\n\x15\x45nvironmentsByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.qwak.ecosystem.v0.EnvironmentDetails:\x02\x38\x01\"\x98\x01\n\x12\x45nvironmentDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12T\n\rconfiguration\x18\x03 \x01(\x0b\x32=.qwak.administration.environment.QwakEnvironmentConfiguration\x12\x12\n\ncluster_id\x18\x04 \x01(\t\"\xde\x01\n\x0fUserAccountList\x12\x1a\n\x12\x64\x65\x66\x61ult_account_id\x18\x01 \x01(\t\x12L\n\x0e\x61\x63\x63ounts_by_id\x18\x02 \x03(\x0b\x32\x34.qwak.ecosystem.v0.UserAccountList.AccountsByIdEntry\x1a\x61\n\x11\x41\x63\x63ountsByIdEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.qwak.ecosystem.v0.UserContextAccountDetails:\x02\x38\x01\x42\xb7\x01\n\x1c\x63om.qwak.ai.common.ecosystemP\x01Z\x94\x01github.com/qwak-ai/qwak-platform/services/shared/java/libs/qwak-common/qwak-common-api/qwak-platform-ecosystem-api/pb/qwak/ecosystem/v0;ecosystem_v0b\x06proto3')
24
24
 
25
25
 
26
26
 
@@ -165,9 +165,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
165
165
  _ACCOUNTDETAILS_ENVIRONMENTSBYIDENTRY._serialized_start=2205
166
166
  _ACCOUNTDETAILS_ENVIRONMENTSBYIDENTRY._serialized_end=2299
167
167
  _ENVIRONMENTDETAILS._serialized_start=2302
168
- _ENVIRONMENTDETAILS._serialized_end=2434
169
- _USERACCOUNTLIST._serialized_start=2437
170
- _USERACCOUNTLIST._serialized_end=2659
171
- _USERACCOUNTLIST_ACCOUNTSBYIDENTRY._serialized_start=2562
172
- _USERACCOUNTLIST_ACCOUNTSBYIDENTRY._serialized_end=2659
168
+ _ENVIRONMENTDETAILS._serialized_end=2454
169
+ _USERACCOUNTLIST._serialized_start=2457
170
+ _USERACCOUNTLIST._serialized_end=2679
171
+ _USERACCOUNTLIST_ACCOUNTSBYIDENTRY._serialized_start=2582
172
+ _USERACCOUNTLIST_ACCOUNTSBYIDENTRY._serialized_end=2679
173
173
  # @@protoc_insertion_point(module_scope)
@@ -280,6 +280,7 @@ class EnvironmentDetails(google.protobuf.message.Message):
280
280
  ID_FIELD_NUMBER: builtins.int
281
281
  NAME_FIELD_NUMBER: builtins.int
282
282
  CONFIGURATION_FIELD_NUMBER: builtins.int
283
+ CLUSTER_ID_FIELD_NUMBER: builtins.int
283
284
  id: builtins.str
284
285
  """Environment id"""
285
286
  name: builtins.str
@@ -287,15 +288,17 @@ class EnvironmentDetails(google.protobuf.message.Message):
287
288
  @property
288
289
  def configuration(self) -> qwak.administration.v0.environments.configuration_pb2.QwakEnvironmentConfiguration:
289
290
  """Environment configuration"""
291
+ cluster_id: builtins.str
290
292
  def __init__(
291
293
  self,
292
294
  *,
293
295
  id: builtins.str = ...,
294
296
  name: builtins.str = ...,
295
297
  configuration: qwak.administration.v0.environments.configuration_pb2.QwakEnvironmentConfiguration | None = ...,
298
+ cluster_id: builtins.str = ...,
296
299
  ) -> None: ...
297
300
  def HasField(self, field_name: typing_extensions.Literal["configuration", b"configuration"]) -> builtins.bool: ...
298
- def ClearField(self, field_name: typing_extensions.Literal["configuration", b"configuration", "id", b"id", "name", b"name"]) -> None: ...
301
+ def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "configuration", b"configuration", "id", b"id", "name", b"name"]) -> None: ...
299
302
 
300
303
  global___EnvironmentDetails = EnvironmentDetails
301
304
 
qwak/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """Top-level package for qwak-core."""
2
2
 
3
3
  __author__ = "Qwak.ai"
4
- __version__ = "0.4.254"
4
+ __version__ = "0.4.256"
5
5
 
6
6
  from qwak.inner.di_configuration import wire_dependencies
7
7
  from qwak.model.experiment_tracking import log_metric, log_param
qwak/inner/tool/auth.py CHANGED
@@ -1,5 +1,7 @@
1
1
  import warnings
2
2
  from filelock import FileLock
3
+ from typing_extensions import Self
4
+
3
5
  from qwak.inner.di_configuration.session import Session
4
6
  from abc import ABC, abstractmethod
5
7
  from typing import Optional
@@ -131,6 +133,8 @@ class Auth0ClientBase(BaseAuthClient):
131
133
 
132
134
 
133
135
  class FrogMLAuthClient(BaseAuthClient):
136
+ __MIN_TOKEN_LENGTH: int = 64
137
+
134
138
  def __init__(self, auth_config: Optional[AuthConfig] = None):
135
139
  self.auth_config = auth_config
136
140
  self._token = None
@@ -148,32 +152,45 @@ class FrogMLAuthClient(BaseAuthClient):
148
152
 
149
153
  def login(self) -> None:
150
154
  artifactory_url, auth = get_credentials(self.auth_config)
151
- if hasattr(auth, "token"): # For BearerAuth
152
- self._token = auth.token
153
- # Remove '/artifactory/' from the URL
154
- if "/artifactory" in artifactory_url:
155
- base_url = artifactory_url.replace("/artifactory", "/ui")
156
- else:
157
- # Remove trailing slash if it exists and append /ui
158
- base_url = artifactory_url.rstrip("/") + "/ui"
159
- try:
160
- response = requests.get(
161
- f"{base_url}/api/v1/system/auth/screen/footer",
162
- headers={"Authorization": f"Bearer {self._token}"},
163
- timeout=60,
164
- )
165
- response.raise_for_status() # Raises an HTTPError for bad responses
166
- response_data = response.json()
167
- if "serverId" not in response_data:
168
- raise QwakLoginException(
169
- "Failed to authenticate with JFrog. Please check your credentials"
170
- )
171
- self._tenant_id = response_data["serverId"]
172
- except requests.exceptions.RequestException:
173
- raise QwakLoginException(
174
- "Failed to authenticate with JFrog. Please check your credentials"
175
- )
176
- except ValueError: # This catches JSON decode errors
155
+ # For now, we only support Bearer token authentication
156
+ if not hasattr(auth, "token"):
157
+ return
158
+
159
+ # noinspection PyUnresolvedReferences
160
+ self._token = auth.token
161
+ self.__validate_token()
162
+
163
+ # Remove '/artifactory/' from the URL
164
+ if "/artifactory" in artifactory_url:
165
+ base_url = artifactory_url.replace("/artifactory", "/ui")
166
+ else:
167
+ # Remove trailing slash if it exists and append /ui
168
+ base_url = artifactory_url.rstrip("/") + "/ui"
169
+ try:
170
+ response = requests.get(
171
+ f"{base_url}/api/v1/system/auth/screen/footer",
172
+ headers={"Authorization": f"Bearer {self._token}"},
173
+ timeout=60,
174
+ )
175
+ response.raise_for_status() # Raises an HTTPError for bad responses
176
+ response_data = response.json()
177
+ if "serverId" not in response_data:
177
178
  raise QwakLoginException(
178
179
  "Failed to authenticate with JFrog. Please check your credentials"
179
180
  )
181
+ self._tenant_id = response_data["serverId"]
182
+ except requests.exceptions.RequestException:
183
+ raise QwakLoginException(
184
+ "Failed to authenticate with JFrog. Please check your credentials"
185
+ )
186
+ except ValueError: # This catches JSON decode errors
187
+ raise QwakLoginException(
188
+ "Failed to authenticate with JFrog. Please check your credentials"
189
+ )
190
+
191
+ def __validate_token(self: Self):
192
+ if self._token is None or len(self._token) <= self.__MIN_TOKEN_LENGTH:
193
+ raise QwakLoginException(
194
+ "Authentication with JFrog failed: Only JWT Access Tokens are supported. "
195
+ "Please ensure you are using a valid JWT Access Token."
196
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qwak-core
3
- Version: 0.4.254
3
+ Version: 0.4.256
4
4
  Summary: Qwak Core contains the necessary objects and communication tools for using the Qwak Platform
5
5
  License: Apache-2.0
6
6
  Keywords: mlops,ml,deployment,serving,model
@@ -228,8 +228,8 @@ _qwak_proto/qwak/ecosystem/jfrog/v0/token_service_pb2_grpc.py,sha256=kuXr3zLXMZE
228
228
  _qwak_proto/qwak/ecosystem/v0/credentials_pb2.py,sha256=4oqDkkwkbrxJtRhJ4wYSrRF_YOThbGgCm_ax8wu0GYg,3628
229
229
  _qwak_proto/qwak/ecosystem/v0/credentials_pb2.pyi,sha256=7sxOny-BUipUxrEpBxKVNuJF3-N77Z6Ov1eWI-87Uoo,4098
230
230
  _qwak_proto/qwak/ecosystem/v0/credentials_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
231
- _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.py,sha256=Szu68cFbLXk4QcAREwbd7JM7dWLGNCnvbnIBsrXG1Es,13815
232
- _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.pyi,sha256=9U9peCiTTTgrckSIVN5sGa7nZKzRk0hu-ioz-aRKSBE,15537
231
+ _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.py,sha256=r8mRlTSj4KPEPdlYwrsNDihqEs1fWbZyGMu8CgEmsQE,13853
232
+ _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2.pyi,sha256=xRANthZMq3TQzVjkEOIOGIFj9bAPtFnqzDjvdY3YdUA,15677
233
233
  _qwak_proto/qwak/ecosystem/v0/ecosystem_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
234
234
  _qwak_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.py,sha256=pfL0pvHRf1kSFURfcP3pZFKIfMezZdI12a3sMiZf220,18876
235
235
  _qwak_proto/qwak/ecosystem/v0/ecosystem_runtime_service_pb2.pyi,sha256=o76SJT3pLpScJZuTB2mOgbt0c7bnScrYsRxlAiygMNk,19362
@@ -591,7 +591,7 @@ _qwak_proto/qwak/workspace/workspace_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
591
591
  _qwak_proto/qwak/workspace/workspace_service_pb2.py,sha256=AB3C9S_AbOD7Nx1Ni4j1rW6PNtYTV1zjiqFQk-goQ74,21429
592
592
  _qwak_proto/qwak/workspace/workspace_service_pb2.pyi,sha256=nKKCHwnovZhsy8TSVmdz-Vtl0nviOOoX56HD-41Xo08,13726
593
593
  _qwak_proto/qwak/workspace/workspace_service_pb2_grpc.py,sha256=yKGuexxTBza99Ihe0DSTniV2ZSd_AG47inHenqfi890,27193
594
- qwak/__init__.py,sha256=HiiVw4d7Hawddft8J68Jq1jh1WMaOD0rChI2Yxp2uwY,587
594
+ qwak/__init__.py,sha256=UcJax5rs9mVTBW5Wlf37bYqxiGdRgXLVpTytmIsyxh0,587
595
595
  qwak/automations/__init__.py,sha256=qFZRvCxUUn8gcxkJR0v19ulHW2oJ0x6-Rif7HiheDP4,1522
596
596
  qwak/automations/automation_executions.py,sha256=5MeH_epYYWb8NKXgAozwT_jPyyUDednBHG7izloi7RY,3228
597
597
  qwak/automations/automations.py,sha256=3yx8e2v0uSKDnXbqyknasyEoQ5vxGni6K40Hbi1_zkk,12599
@@ -846,7 +846,7 @@ qwak/inner/runtime_di/__init__.py,sha256=ylaHwo2Hlq3pmeziA0Ip87DMnkcuBffKKi0tTH7
846
846
  qwak/inner/runtime_di/containers.py,sha256=-AREM-IUAd9JhrhQablqixxpj4L9Tk1iQkK1fA5YbrA,545
847
847
  qwak/inner/singleton_meta.py,sha256=1cU99I0f9tjuMQLMJyLsK1oK3fZJMsO5-TbRHAMXqds,627
848
848
  qwak/inner/tool/__init__.py,sha256=DDoMZk7LIZNfu63Ft0mLE5wflwlQoghAJ1ZmMAcAeVE,74
849
- qwak/inner/tool/auth.py,sha256=hplzXD9R-AvSDbFHdcAvKIQjy-S2btwUCoe_N7im8DA,6439
849
+ qwak/inner/tool/auth.py,sha256=nCDtphlFkwgIrVewSrI9p1vh-63rB-cARXFtVl8XHcY,6878
850
850
  qwak/inner/tool/grpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
851
851
  qwak/inner/tool/grpc/grpc_auth.py,sha256=nHfIk2R5ljCvU8hsgk_X6grfNhVrbTvQe6uJffe5W5o,2291
852
852
  qwak/inner/tool/grpc/grpc_tools.py,sha256=ArtsEZz5V-YxOVE6vH_UHJwOn6gAJVIolda8hF6qwMs,7256
@@ -1065,6 +1065,6 @@ qwak_services_mock/mocks/workspace_manager_service_mock.py,sha256=O9ZSwln4T4kHVk
1065
1065
  qwak_services_mock/services_mock.py,sha256=zXtHcX8a_acz7ynxuCBxxVpHpde7aAGjIn6Uw52LY1s,19593
1066
1066
  qwak_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1067
1067
  qwak_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1068
- qwak_core-0.4.254.dist-info/METADATA,sha256=tiz-kqINS0DFiZg3zno0xsSUylUq1gDK-M65JbvxpPo,2549
1069
- qwak_core-0.4.254.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1070
- qwak_core-0.4.254.dist-info/RECORD,,
1068
+ qwak_core-0.4.256.dist-info/METADATA,sha256=F7eU1nqnmqO5PHnfV39Zt_P6tCoZKhxzoNY881QbiQg,2549
1069
+ qwak_core-0.4.256.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1070
+ qwak_core-0.4.256.dist-info/RECORD,,