scalekit-sdk-python 2.4.7__tar.gz → 2.4.8__tar.gz
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.
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/PKG-INFO +1 -1
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/client.py +56 -14
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/core.py +2 -2
- scalekit_sdk_python-2.4.8/scalekit/sessions.py +134 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/auditlogs_pb2.py +1 -1
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/auditlogs_pb2.pyi +2 -2
- scalekit_sdk_python-2.4.8/scalekit/v1/clients/clients_pb2.py +782 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/clients/clients_pb2.pyi +138 -16
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/clients/clients_pb2_grpc.py +165 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/members/members_pb2.py +34 -34
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/members/members_pb2.pyi +4 -2
- scalekit_sdk_python-2.4.8/scalekit/v1/sessions/sessions_pb2.py +70 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/sessions/sessions_pb2.pyi +38 -2
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/sessions/sessions_pb2_grpc.py +40 -7
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit_sdk_python.egg-info/PKG-INFO +1 -1
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/setup.py +1 -1
- scalekit_sdk_python-2.4.7/scalekit/sessions.py +0 -66
- scalekit_sdk_python-2.4.7/scalekit/v1/clients/clients_pb2.py +0 -681
- scalekit_sdk_python-2.4.7/scalekit/v1/sessions/sessions_pb2.py +0 -60
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/LICENSE +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/README.md +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/expression_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/expression_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/expression_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/priv/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/priv/private_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/priv/private_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/priv/private_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/validate_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/validate_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/buf/validate/validate_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/actions.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/google_adk.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/langchain.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/types/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/types/google_adk_tool.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/frameworks/util.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/requests/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/requests/create_connected_account_request.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/requests/mcp_request.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/requests/tool_request.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/requests/update_connected_account_request.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/create_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/create_mcp_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/delete_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/execute_tool_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/get_connected_account_auth_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/get_mcp_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/list_connected_accounts_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/magic_link_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/responses/update_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/tool_input_output.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/models/tool_mapping.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/modifier.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/actions/types.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/common/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/common/exceptions.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/common/scalekit.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/common/user.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/connected_accounts.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/connection.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/constants/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/constants/user.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/directory.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/domain.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/m2m_client.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/mcp.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/organization.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/passwordless.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/permissions.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/role.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/tools.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/users.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/utils/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/utils/directory.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/auth_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/auth_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/auth_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/passwordless_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/totp_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/totp_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auth/totp_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/clients/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/commons/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/commons/commons_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/commons/commons_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connected_accounts/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connected_accounts/connected_accounts_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connected_accounts/connected_accounts_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connected_accounts/connected_accounts_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connections/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connections/connections_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connections/connections_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/connections/connections_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/directories/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/directories/directories_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/directories/directories_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/domains/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/domains/domains_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/domains/domains_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/emails/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/emails/emails_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/emails/emails_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/environments/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/environments/environments_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/environments/environments_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/environments/environments_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/errdetails/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/errdetails/errdetails_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/errdetails/errdetails_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/events/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/events/events_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/events/events_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/events/events_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/mcp/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/mcp/mcp_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/mcp/mcp_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/mcp/mcp_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/members/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/members/members_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/migrations/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/migrations/migrations_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/options/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/options/options_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/options/options_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/options/options_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/organizations/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/organizations/organizations_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/organizations/organizations_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/providers/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/providers/providers_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/providers/providers_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/providers/providers_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/roles/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/roles/roles_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/roles/roles_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/roles/roles_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/sessions/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/tools/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/tools/tools_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/tools/tools_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/tools/tools_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/user_attributes/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/users/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/users/users_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/users/users_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/users/users_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/webhooks/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/workspaces/__init__.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/workspaces/workspaces_pb2.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/workspaces/workspaces_pb2.pyi +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit_sdk_python.egg-info/SOURCES.txt +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit_sdk_python.egg-info/requires.txt +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
- {scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/setup.cfg +0 -0
|
@@ -360,25 +360,24 @@ class ScalekitClient:
|
|
|
360
360
|
scopes = payload.get("scopes", [])
|
|
361
361
|
return [scope for scope in scopes if scope and scope.strip()]
|
|
362
362
|
|
|
363
|
-
def
|
|
363
|
+
def __verify_payload_signature(self, secret: str, webhook_id: str, webhook_timestamp: str, webhook_signature: str, payload: str) -> bool:
|
|
364
364
|
"""
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
:param secret
|
|
368
|
-
:type
|
|
369
|
-
:param
|
|
370
|
-
:type
|
|
371
|
-
:param
|
|
372
|
-
:type
|
|
365
|
+
Private method to verify payload signature (common logic for both webhook and interceptor verification)
|
|
366
|
+
|
|
367
|
+
:param secret : Secret for verification
|
|
368
|
+
:type : ``` str ```
|
|
369
|
+
:param webhook_id : Webhook/Interceptor ID
|
|
370
|
+
:type : ``` str ```
|
|
371
|
+
:param webhook_timestamp : Webhook/Interceptor timestamp
|
|
372
|
+
:type : ``` str ```
|
|
373
|
+
:param webhook_signature : Webhook/Interceptor signature
|
|
374
|
+
:type : ``` str ```
|
|
375
|
+
:param payload : Payload string
|
|
376
|
+
:type : ``` str ```
|
|
373
377
|
|
|
374
378
|
:returns:
|
|
375
379
|
bool
|
|
376
380
|
"""
|
|
377
|
-
payload = payload if isinstance(payload, str) else payload.decode()
|
|
378
|
-
webhook_id = headers.get("webhook-id")
|
|
379
|
-
webhook_timestamp = headers.get("webhook-timestamp")
|
|
380
|
-
webhook_signature = headers.get("webhook-signature")
|
|
381
|
-
|
|
382
381
|
if not all([webhook_id, webhook_timestamp, webhook_signature]):
|
|
383
382
|
raise WebhookVerificationError("Missing required headers")
|
|
384
383
|
|
|
@@ -417,6 +416,49 @@ class ScalekitClient:
|
|
|
417
416
|
|
|
418
417
|
raise WebhookVerificationError("Invalid signature")
|
|
419
418
|
|
|
419
|
+
def verify_webhook_payload(self, secret: str, headers: Dict[str, str], payload: str | bytes) -> bool:
|
|
420
|
+
"""
|
|
421
|
+
Method to verify webhook payload
|
|
422
|
+
|
|
423
|
+
:param secret : Secret for webhook verification
|
|
424
|
+
:type : ``` str ```
|
|
425
|
+
:param headers : Webhook request headers
|
|
426
|
+
:type : ``` dict[str, str] ```
|
|
427
|
+
:param payload : Webhook payload in str or bytes
|
|
428
|
+
:type : ``` str | bytes ```
|
|
429
|
+
|
|
430
|
+
:returns:
|
|
431
|
+
bool
|
|
432
|
+
"""
|
|
433
|
+
payload_str = payload if isinstance(payload, str) else payload.decode()
|
|
434
|
+
webhook_id = headers.get("webhook-id")
|
|
435
|
+
webhook_timestamp = headers.get("webhook-timestamp")
|
|
436
|
+
webhook_signature = headers.get("webhook-signature")
|
|
437
|
+
|
|
438
|
+
return self.__verify_payload_signature(secret, webhook_id, webhook_timestamp, webhook_signature, payload_str)
|
|
439
|
+
|
|
440
|
+
def verify_interceptor_payload(self, secret: str, headers: Dict[str, str], payload: str | bytes) -> bool:
|
|
441
|
+
"""
|
|
442
|
+
Method to verify interceptor payload using common verification logic
|
|
443
|
+
|
|
444
|
+
:param secret : Secret for interceptor verification
|
|
445
|
+
:type : ``` str ```
|
|
446
|
+
:param headers : Interceptor request headers (with interceptor-id, interceptor-timestamp, interceptor-signature)
|
|
447
|
+
:type : ``` dict[str, str] ```
|
|
448
|
+
:param payload : Interceptor payload in str or bytes
|
|
449
|
+
:type : ``` str | bytes ```
|
|
450
|
+
|
|
451
|
+
:returns:
|
|
452
|
+
bool
|
|
453
|
+
"""
|
|
454
|
+
payload_str = payload if isinstance(payload, str) else payload.decode()
|
|
455
|
+
|
|
456
|
+
interceptor_id = headers.get("interceptor-id") or headers.get("webhook-id")
|
|
457
|
+
interceptor_timestamp = headers.get("interceptor-timestamp") or headers.get("webhook-timestamp")
|
|
458
|
+
interceptor_signature = headers.get("interceptor-signature") or headers.get("webhook-signature")
|
|
459
|
+
|
|
460
|
+
return self.__verify_payload_signature(secret, interceptor_id, interceptor_timestamp, interceptor_signature, payload_str)
|
|
461
|
+
|
|
420
462
|
@staticmethod
|
|
421
463
|
def __verify_timestamp(timestamp_str: str):
|
|
422
464
|
"""
|
|
@@ -26,8 +26,8 @@ class WithCall(Protocol):
|
|
|
26
26
|
class CoreClient:
|
|
27
27
|
"""Class definition for Core Client"""
|
|
28
28
|
|
|
29
|
-
sdk_version = "Scalekit-Python/2.4.
|
|
30
|
-
api_version = "
|
|
29
|
+
sdk_version = "Scalekit-Python/2.4.8"
|
|
30
|
+
api_version = "20250104"
|
|
31
31
|
user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
|
|
32
32
|
|
|
33
33
|
def __init__(self, env_url, client_id, client_secret):
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
from scalekit.core import CoreClient
|
|
2
|
+
from scalekit.v1.sessions.sessions_pb2 import *
|
|
3
|
+
from scalekit.v1.sessions.sessions_pb2_grpc import SessionServiceStub
|
|
4
|
+
from google.protobuf.timestamp_pb2 import Timestamp
|
|
5
|
+
from typing import List, Optional
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class SessionsClient:
|
|
9
|
+
"""Class definition for Sessions Client"""
|
|
10
|
+
|
|
11
|
+
def __init__(self, core_client: CoreClient):
|
|
12
|
+
"""
|
|
13
|
+
Initializer for Sessions Client
|
|
14
|
+
|
|
15
|
+
:param core_client : CoreClient Object
|
|
16
|
+
:type : ``` obj ```
|
|
17
|
+
:returns
|
|
18
|
+
None
|
|
19
|
+
"""
|
|
20
|
+
self.core_client = core_client
|
|
21
|
+
self.session_service = SessionServiceStub(
|
|
22
|
+
self.core_client.grpc_secure_channel
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
def get_session(self, session_id: str) -> SessionDetails:
|
|
26
|
+
"""
|
|
27
|
+
Method to get session details by session ID
|
|
28
|
+
|
|
29
|
+
:param session_id : Session ID to get session details
|
|
30
|
+
:type : ``` str ```
|
|
31
|
+
|
|
32
|
+
:returns:
|
|
33
|
+
Session Details
|
|
34
|
+
"""
|
|
35
|
+
return self.core_client.grpc_exec(
|
|
36
|
+
self.session_service.GetSession.with_call,
|
|
37
|
+
SessionDetailsRequest(session_id=session_id),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def get_user_sessions(
|
|
41
|
+
self,
|
|
42
|
+
user_id: str,
|
|
43
|
+
page_size: int = None,
|
|
44
|
+
page_token: str = None,
|
|
45
|
+
filter: UserSessionFilter = None
|
|
46
|
+
) -> UserSessionDetails:
|
|
47
|
+
"""
|
|
48
|
+
Method to get all session details for a user with pagination and filtering support
|
|
49
|
+
|
|
50
|
+
:param user_id : User ID to get all session details for
|
|
51
|
+
:type : ``` str ```
|
|
52
|
+
:param page_size : Number of sessions to return per page
|
|
53
|
+
:type : ``` int ```
|
|
54
|
+
:param page_token : Token for pagination to get next/previous page
|
|
55
|
+
:type : ``` str ```
|
|
56
|
+
:param filter : Filter to apply to sessions (status, time range)
|
|
57
|
+
:type : ``` UserSessionFilter ```
|
|
58
|
+
|
|
59
|
+
:returns:
|
|
60
|
+
User Session Details with pagination info
|
|
61
|
+
"""
|
|
62
|
+
request = UserSessionDetailsRequest(user_id=user_id)
|
|
63
|
+
|
|
64
|
+
if page_size is not None:
|
|
65
|
+
request.page_size = page_size
|
|
66
|
+
if page_token is not None:
|
|
67
|
+
request.page_token = page_token
|
|
68
|
+
if filter is not None:
|
|
69
|
+
request.filter.CopyFrom(filter)
|
|
70
|
+
|
|
71
|
+
return self.core_client.grpc_exec(
|
|
72
|
+
self.session_service.GetUserSessions.with_call,
|
|
73
|
+
request,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
def revoke_session(self, session_id: str) -> RevokeSessionResponse:
|
|
77
|
+
"""
|
|
78
|
+
Method to revoke a session for a user
|
|
79
|
+
|
|
80
|
+
:param session_id : Session ID to revoke
|
|
81
|
+
:type : ``` str ```
|
|
82
|
+
|
|
83
|
+
:returns:
|
|
84
|
+
Revoke Session Response
|
|
85
|
+
"""
|
|
86
|
+
return self.core_client.grpc_exec(
|
|
87
|
+
self.session_service.RevokeSession.with_call,
|
|
88
|
+
RevokeSessionRequest(session_id=session_id),
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
def revoke_all_user_sessions(self, user_id: str) -> RevokeAllUserSessionsResponse:
|
|
92
|
+
"""
|
|
93
|
+
Method to revoke all sessions for a user
|
|
94
|
+
|
|
95
|
+
:param user_id : User ID to revoke all sessions for
|
|
96
|
+
:type : ``` str ```
|
|
97
|
+
|
|
98
|
+
:returns:
|
|
99
|
+
Revoke All User Sessions Response
|
|
100
|
+
"""
|
|
101
|
+
return self.core_client.grpc_exec(
|
|
102
|
+
self.session_service.RevokeAllUserSessions.with_call,
|
|
103
|
+
RevokeAllUserSessionsRequest(user_id=user_id),
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
@staticmethod
|
|
107
|
+
def create_session_filter(
|
|
108
|
+
status: Optional[List[str]] = None,
|
|
109
|
+
start_time: Optional[Timestamp] = None,
|
|
110
|
+
end_time: Optional[Timestamp] = None
|
|
111
|
+
) -> UserSessionFilter:
|
|
112
|
+
"""
|
|
113
|
+
Helper method to create a UserSessionFilter for filtering sessions
|
|
114
|
+
|
|
115
|
+
:param status : List of session statuses to filter by
|
|
116
|
+
:type : ``` List[str] ```
|
|
117
|
+
:param start_time : Filter sessions from this timestamp
|
|
118
|
+
:type : ``` Timestamp ```
|
|
119
|
+
:param end_time : Filter sessions until this timestamp
|
|
120
|
+
:type : ``` Timestamp ```
|
|
121
|
+
|
|
122
|
+
:returns:
|
|
123
|
+
UserSessionFilter object
|
|
124
|
+
"""
|
|
125
|
+
filter_obj = UserSessionFilter()
|
|
126
|
+
|
|
127
|
+
if status is not None:
|
|
128
|
+
filter_obj.status.extend(status)
|
|
129
|
+
if start_time is not None:
|
|
130
|
+
filter_obj.start_time.CopyFrom(start_time)
|
|
131
|
+
if end_time is not None:
|
|
132
|
+
filter_obj.end_time.CopyFrom(end_time)
|
|
133
|
+
|
|
134
|
+
return filter_obj
|
{scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/auditlogs_pb2.py
RENAMED
|
@@ -18,7 +18,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
|
|
|
18
18
|
from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%scalekit/v1/auditlogs/auditlogs.proto\x12\x15scalekit.v1.auditlogs\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scalekit/v1/options/options.proto\"\xf0\x01\n\x12ListAuthLogRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x14\n\x05\x65mail\x18\x03 \x01(\tR\x05\x65mail\x12\x16\n\x06status\x18\x04 \
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%scalekit/v1/auditlogs/auditlogs.proto\x12\x15scalekit.v1.auditlogs\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scalekit/v1/options/options.proto\"\xf0\x01\n\x12ListAuthLogRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x14\n\x05\x65mail\x18\x03 \x01(\tR\x05\x65mail\x12\x16\n\x06status\x18\x04 \x03(\tR\x06status\x12\x39\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xcf\x01\n\x13ListAuthLogResponse\x12&\n\x0fnext_page_token\x18\x01 \x01(\tR\rnextPageToken\x12&\n\x0fprev_page_token\x18\x02 \x01(\tR\rprevPageToken\x12\x1d\n\ntotal_size\x18\x03 \x01(\rR\ttotalSize\x12I\n\x0c\x61uthRequests\x18\x04 \x03(\x0b\x32%.scalekit.v1.auditlogs.AuthLogRequestR\x0c\x61uthRequests\"\xe4\x03\n\x0e\x41uthLogRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12%\n\x0e\x65nvironment_id\x18\x02 \x01(\tR\renvironmentId\x12#\n\rconnection_id\x18\x03 \x01(\tR\x0c\x63onnectionId\x12&\n\x0f\x61uth_request_id\x18\x04 \x01(\tR\rauthRequestId\x12\x14\n\x05\x65mail\x18\x05 \x01(\tR\x05\x65mail\x12\'\n\x0f\x63onnection_type\x18\x06 \x01(\tR\x0e\x63onnectionType\x12/\n\x13\x63onnection_provider\x18\x07 \x01(\tR\x12\x63onnectionProvider\x12\x16\n\x06status\x18\x08 \x01(\tR\x06status\x12\x38\n\ttimestamp\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12W\n\x12\x63onnection_details\x18\n \x03(\x0b\x32(.scalekit.v1.auditlogs.ConnectionDetailsR\x11\x63onnectionDetails\x12\x1a\n\x08workflow\x18\x0b \x01(\tR\x08workflow\"\xbb\x01\n\x11\x43onnectionDetails\x12#\n\rconnection_id\x18\x01 \x01(\tR\x0c\x63onnectionId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\'\n\x0f\x63onnection_type\x18\x03 \x01(\tR\x0e\x63onnectionType\x12/\n\x13\x63onnection_provider\x18\x04 \x01(\tR\x12\x63onnectionProvider2\xb2\x01\n\x10\x41uditLogsService\x12\x9d\x01\n\x10ListAuthRequests\x12).scalekit.v1.auditlogs.ListAuthLogRequest\x1a*.scalekit.v1.auditlogs.ListAuthLogResponse\"2\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02&\x12$/api/v1/logs/authentication/requestsB5Z3github.com/scalekit-inc/scalekit/pkg/grpc/auditlogsb\x06proto3')
|
|
22
22
|
|
|
23
23
|
_globals = globals()
|
|
24
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
{scalekit_sdk_python-2.4.7 → scalekit_sdk_python-2.4.8}/scalekit/v1/auditlogs/auditlogs_pb2.pyi
RENAMED
|
@@ -20,10 +20,10 @@ class ListAuthLogRequest(_message.Message):
|
|
|
20
20
|
page_size: int
|
|
21
21
|
page_token: str
|
|
22
22
|
email: str
|
|
23
|
-
status: str
|
|
23
|
+
status: _containers.RepeatedScalarFieldContainer[str]
|
|
24
24
|
start_time: _timestamp_pb2.Timestamp
|
|
25
25
|
end_time: _timestamp_pb2.Timestamp
|
|
26
|
-
def __init__(self, page_size: _Optional[int] = ..., page_token: _Optional[str] = ..., email: _Optional[str] = ..., status: _Optional[str] = ..., start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
26
|
+
def __init__(self, page_size: _Optional[int] = ..., page_token: _Optional[str] = ..., email: _Optional[str] = ..., status: _Optional[_Iterable[str]] = ..., start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
27
27
|
|
|
28
28
|
class ListAuthLogResponse(_message.Message):
|
|
29
29
|
__slots__ = ("next_page_token", "prev_page_token", "total_size", "authRequests")
|