kinde-python-sdk 2.0.10__tar.gz → 2.1.1__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.
- {kinde_python_sdk-2.0.10/kinde_python_sdk.egg-info → kinde_python_sdk-2.1.1}/PKG-INFO +1 -1
- kinde_python_sdk-2.1.1/kinde_fastapi/examples/example_app.py +304 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1/kinde_python_sdk.egg-info}/PKG-INFO +1 -1
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_python_sdk.egg-info/SOURCES.txt +106 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/__init__.py +9 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/__init__.py +3 -1
- kinde_python_sdk-2.1.1/kinde_sdk/auth/api_options.py +3 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/async_claims.py +60 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/async_oauth.py +99 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/base_auth.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/base_oauth.py +58 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/entitlements.py +73 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/feature_flags.py +204 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/oauth.py +5 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/permissions.py +146 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/roles.py +233 -0
- kinde_python_sdk-2.1.1/kinde_sdk/auth/smart_oauth.py +120 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/token_manager.py +9 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/__init__.py +77 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/__init__.py +11 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/billing_api.py +594 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/feature_flags_api.py +326 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/o_auth_api.py +923 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/permissions_api.py +326 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/properties_api.py +326 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/roles_api.py +326 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api/self_serve_portal_api.py +326 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/api_client.py +798 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/configuration.py +589 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/exceptions.py +217 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/__init__.py +48 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/error.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/error_response.py +96 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlement_response.py +94 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlement_response_data.py +94 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlement_response_data_entitlement.py +122 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlements_response.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlements_response_data.py +108 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlements_response_data_entitlements_inner.py +122 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlements_response_data_plans_inner.py +93 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_entitlements_response_metadata.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_feature_flags_response.py +92 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_feature_flags_response_data.py +96 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner.py +100 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner_value.py +178 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_permissions_response.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_permissions_response_data.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_permissions_response_data_permissions_inner.py +92 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_permissions_response_metadata.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_properties_response.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_properties_response_data.py +96 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner_value.py +161 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_properties_response_metadata.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_roles_response.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_roles_response_data.py +98 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_roles_response_data_roles_inner.py +92 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/get_user_roles_response_metadata.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/portal_link.py +88 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/token_error_response.py +90 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/token_introspect.py +96 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/models/user_profile_v2.py +123 -0
- kinde_python_sdk-2.1.1/kinde_sdk/frontend/rest.py +259 -0
- kinde_python_sdk-2.1.1/kinde_sdk/management/api_response.py +21 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/management_client.py +32 -19
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/__init__.py +2 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/pyproject.toml +1 -1
- kinde_python_sdk-2.0.10/kinde_fastapi/examples/example_app.py +0 -130
- kinde_python_sdk-2.0.10/kinde_sdk/auth/base_auth.py +0 -39
- kinde_python_sdk-2.0.10/kinde_sdk/auth/feature_flags.py +0 -117
- kinde_python_sdk-2.0.10/kinde_sdk/auth/permissions.py +0 -66
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/LICENSE +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/MANIFEST.in +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/README.md +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/examples/management_token_example.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/examples/session.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/framework/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/framework/fastapi_framework.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/framework/fastapi_framework_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/middleware/framework_middleware.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/storage/fastapi_storage.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_fastapi/storage/fastapi_storage_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/examples/example_app.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/framework/flask_framework.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/framework/flask_framework_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/middleware/framework_middleware.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_flask/storage/flask_storage_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_python_sdk.egg-info/dependency_links.txt +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_python_sdk.egg-info/not-zip-safe +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_python_sdk.egg-info/requires.txt +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_python_sdk.egg-info/top_level.txt +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/claims.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/config_loader.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/enums.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/login_options.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/portals.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/tokens.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/auth/user_session.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/exceptions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/framework/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/framework/framework_context.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/framework/framework_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/framework/framework_interface.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/framework/null_framework.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/helpers.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/framework_aware_storage.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/local_storage.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/memory_storage.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/storage_factory.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/storage_interface.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/core/storage/storage_manager.py +0 -0
- {kinde_python_sdk-2.0.10/kinde_sdk/management → kinde_python_sdk-2.1.1/kinde_sdk/frontend}/api_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/apis_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/applications_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/billing_agreements_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/billing_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/billing_entitlements_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/billing_meter_usage_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/business_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/callbacks_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/connected_apps_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/connections_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/environment_variables_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/environments_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/feature_flags0_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/feature_flags_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/identities_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/industries_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/mfa_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/o_auth_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/organizations_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/permissions_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/properties_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/property_categories_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/roles_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/search_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/self_serve_portal_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/subscribers_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/timezones_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/users_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api/webhooks_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/api_client.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/configuration.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/custom_exceptions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/exceptions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/management_token_manager.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_api_scope_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_apis_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_organization_users_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_organization_users_request_users_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_role_scope_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/add_role_scope_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/api_result.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/applications.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/authorize_app_api_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/category.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/connected_apps_access_token.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/connected_apps_auth_url.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/connection.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/connection_connection.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_api_scopes_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_api_scopes_response_scope.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_apis_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_apis_response_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_application_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_application_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_application_response_application.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_billing_agreement_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_category_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_category_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_category_response_category.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_request_options.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_request_options_one_of.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_request_options_one_of1.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_request_options_one_of2.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_connection_response_connection.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_environment_variable_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_environment_variable_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_environment_variable_response_environment_variable.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_feature_flag_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_identity_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_identity_response_identity.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_meter_usage_record_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_meter_usage_record_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_organization_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_organization_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_organization_response_organization.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_organization_user_permission_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_organization_user_role_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_permission_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_property_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_property_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_property_response_property.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_role_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_roles_response_role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_subscriber_success_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_subscriber_success_response_subscriber.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_identity_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_request_identities_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_request_identities_inner_details.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_request_profile.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_user_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_web_hook_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/create_webhook_response_webhook.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/delete_api_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/delete_environment_variable_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/delete_role_scope_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/delete_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/environment_variable.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/error.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/error_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/event_type.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_response_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_response_api_applications_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_response_api_scopes_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_scope_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_scopes_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_api_scopes_response_scopes_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_apis_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_apis_response_apis_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_apis_response_apis_inner_scopes_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_application_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_application_response_application.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_applications_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_agreements_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_agreements_response_agreements_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_agreements_response_agreements_inner_entitlements_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_entitlements_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_entitlements_response_entitlements_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_billing_entitlements_response_plans_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_business_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_business_response_business.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_categories_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_connections_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlement_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlement_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlement_response_data_entitlement.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlements_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlements_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlements_response_data_entitlements_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlements_response_data_plans_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_entitlements_response_metadata.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_response_environment.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_response_environment_background_color.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_response_environment_link_color.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_variable_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_environment_variables_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_event_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_event_response_event.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_event_types_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_feature_flags_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_feature_flags_response_data_feature_flags_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_feature_flags_response_data_feature_flags_inner_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_identities_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_industries_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_industries_response_industries_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_feature_flags_response_feature_flags_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_response_billing.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_response_billing_agreements_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organizations_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organizations_user_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_organizations_user_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_properties_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_property_values_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_redirect_callback_urls_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_role_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_role_response_role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_subscriber_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_subscribers_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_timezones_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_timezones_response_timezones_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_mfa_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_mfa_response_mfa.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_permissions_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_permissions_response_data_permissions_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_permissions_response_metadata.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_properties_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_properties_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_properties_response_data_properties_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_properties_response_data_properties_inner_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_properties_response_metadata.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_roles_response_data.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_roles_response_data_roles_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_roles_response_metadata.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_sessions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_user_sessions_response_sessions_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/get_webhooks_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/identity.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/logout_redirect_urls.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/model_property.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/not_found_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/not_found_response_errors.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_item_schema.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user_permission.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user_permission_roles_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user_role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user_role_permissions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/organization_user_role_permissions_permissions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/permissions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/portal_link.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/property_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/read_env_logo_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/read_env_logo_response_logos_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/read_logo_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/read_logo_response_logos_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/redirect_callback_urls.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_connection_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_connection_request_options.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_connection_request_options_one_of.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_connection_request_options_one_of1.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_logout_redirect_urls_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_mfa_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_organization_mfa_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/replace_redirect_callback_urls_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/role_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/role_scopes_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/roles.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/scopes.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/search_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/search_users_response_results_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/set_user_password_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/subscriber.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/subscribers_subscriber.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/success_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/token_error_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/token_introspect.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_api_applications_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_api_applications_request_applications_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_api_scope_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_application_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_application_tokens_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_applications_property_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_applications_property_request_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_business_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_category_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_connection_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_connection_request_options.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_connection_request_options_one_of.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_environement_feature_flag_override_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_environment_variable_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_environment_variable_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_identity_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_properties_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_sessions_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_users_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_users_request_users_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_property_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_role_permissions_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_role_permissions_request_permissions_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_role_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_roles_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_user_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_user_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_web_hook_request.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/update_webhook_response_webhook.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/user.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/user_identities_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/user_identity.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/user_identity_result.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/user_profile_v2.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/users_response_users_inner.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/users_response_users_inner_billing.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/models/webhook.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/rest.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/management/schemas.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/models/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/__init__.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_add_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_api.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_api_result.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_apis.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_applications.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_category.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_connected_apps_access_token.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_connected_apps_auth_url.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_connection.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_application_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_category_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_connection_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_organization_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_property_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_subscriber_success_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_user_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_create_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_delete_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_error.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_error_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_event_type.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_application_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_applications_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_categories_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_connections_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_environment_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_event_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_event_types_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_organization_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_organizations_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_organizations_user_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_organizations_user_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_properties_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_property_values_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_redirect_callback_urls_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_roles_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_subscriber_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_subscribers_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_get_webhooks_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_logout_redirect_urls.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_model_property.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization_user.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization_user_permission.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization_user_role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization_user_role_permissions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_organization_users.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_permissions.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_property_value.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_redirect_callback_urls.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_role.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_roles.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_roles_permission_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_subscriber.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_subscribers_subscriber.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_success_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_token_error_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_token_introspect.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_update_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_update_role_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_update_user_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_update_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_user.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_user_identity.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_user_profile.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_user_profile_v2.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_users.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_users_response.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/kinde_sdk/test/test_models/test_webhook.py +0 -0
- {kinde_python_sdk-2.0.10 → kinde_python_sdk-2.1.1}/setup.cfg +0 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SmartOAuth FastAPI Example Application
|
|
3
|
+
|
|
4
|
+
This example demonstrates how to use the new SmartOAuth client in a FastAPI application.
|
|
5
|
+
SmartOAuth automatically detects the execution context (sync vs async) and uses the
|
|
6
|
+
appropriate methods, providing a consistent API across different frameworks.
|
|
7
|
+
|
|
8
|
+
Key Features Demonstrated:
|
|
9
|
+
- Automatic context detection (async in FastAPI)
|
|
10
|
+
- Both sync and async method usage
|
|
11
|
+
- Warning system for suboptimal usage
|
|
12
|
+
- Integration with auth modules (sync and async)
|
|
13
|
+
- Factory function usage
|
|
14
|
+
- Real-world authentication flow
|
|
15
|
+
|
|
16
|
+
Usage:
|
|
17
|
+
1. Set up your environment variables (see .env.example)
|
|
18
|
+
2. Run: python -m uvicorn kinde_fastapi.examples.example_app:app --reload
|
|
19
|
+
3. Visit http://localhost:5000
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from fastapi import FastAPI, Request
|
|
23
|
+
from fastapi.responses import HTMLResponse
|
|
24
|
+
from starlette.middleware.sessions import SessionMiddleware
|
|
25
|
+
from .session import InMemorySessionMiddleware
|
|
26
|
+
from pathlib import Path
|
|
27
|
+
import os
|
|
28
|
+
from dotenv import load_dotenv
|
|
29
|
+
import logging
|
|
30
|
+
from kinde_sdk import SmartOAuth, create_oauth_client
|
|
31
|
+
from kinde_sdk.auth import claims, feature_flags, permissions, tokens, async_claims
|
|
32
|
+
from kinde_sdk.management import ManagementClient;
|
|
33
|
+
from kinde_sdk.management.management_token_manager import ManagementTokenManager
|
|
34
|
+
import requests
|
|
35
|
+
|
|
36
|
+
logger = logging.getLogger(__name__)
|
|
37
|
+
|
|
38
|
+
# Load environment variables from .env file
|
|
39
|
+
load_dotenv()
|
|
40
|
+
|
|
41
|
+
# Initialize FastAPI app
|
|
42
|
+
app = FastAPI(title="Kinde FastAPI Example")
|
|
43
|
+
|
|
44
|
+
# Add session middleware with proper configuration
|
|
45
|
+
app.add_middleware(
|
|
46
|
+
InMemorySessionMiddleware,
|
|
47
|
+
max_age=3600, # 1 hour
|
|
48
|
+
https_only=False
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Initialize Kinde SmartOAuth with FastAPI framework
|
|
52
|
+
# SmartOAuth automatically detects the async context and uses the appropriate methods
|
|
53
|
+
kinde_oauth = SmartOAuth(
|
|
54
|
+
framework="fastapi",
|
|
55
|
+
app=app
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Alternative: You can also use the factory function
|
|
59
|
+
# kinde_oauth = create_oauth_client(
|
|
60
|
+
# async_mode=None, # None means auto-detect (SmartOAuth)
|
|
61
|
+
# framework="fastapi",
|
|
62
|
+
# app=app
|
|
63
|
+
# )
|
|
64
|
+
|
|
65
|
+
# Example home route
|
|
66
|
+
@app.get("/", response_class=HTMLResponse)
|
|
67
|
+
async def home(request: Request):
|
|
68
|
+
"""
|
|
69
|
+
Home page that shows different content based on authentication status.
|
|
70
|
+
"""
|
|
71
|
+
if kinde_oauth.is_authenticated():
|
|
72
|
+
# In FastAPI (async context), SmartOAuth will use async methods automatically
|
|
73
|
+
# You can use either sync or async methods - SmartOAuth will handle the context
|
|
74
|
+
|
|
75
|
+
# Option 1: Use async methods (recommended in async context)
|
|
76
|
+
user_async = await kinde_oauth.get_user_info_async()
|
|
77
|
+
|
|
78
|
+
# Use the async version for better performance
|
|
79
|
+
user = user_async
|
|
80
|
+
|
|
81
|
+
# Validate environment variables
|
|
82
|
+
domain = os.getenv("KINDE_DOMAIN")
|
|
83
|
+
client_id = os.getenv("KINDE_MANAGEMENT_CLIENT_ID")
|
|
84
|
+
client_secret = os.getenv("KINDE_MANAGEMENT_CLIENT_SECRET")
|
|
85
|
+
|
|
86
|
+
if not all([domain, client_id, client_secret]):
|
|
87
|
+
return """
|
|
88
|
+
<html>
|
|
89
|
+
<body>
|
|
90
|
+
<h1>Configuration Error</h1>
|
|
91
|
+
<p>Missing required environment variables for management client.</p>
|
|
92
|
+
<a href="/logout">Logout</a>
|
|
93
|
+
</body>
|
|
94
|
+
</html>
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
management_client = ManagementClient(
|
|
98
|
+
domain=domain,
|
|
99
|
+
client_id=client_id,
|
|
100
|
+
client_secret=client_secret
|
|
101
|
+
)
|
|
102
|
+
try:
|
|
103
|
+
api_response = management_client.get_users()
|
|
104
|
+
user_count = len(api_response.users) if hasattr(api_response, 'users') else 0
|
|
105
|
+
except Exception as e:
|
|
106
|
+
logger.error(f"Failed to fetch users: {e}")
|
|
107
|
+
user_count = 0
|
|
108
|
+
|
|
109
|
+
# Demonstrate both sync and async auth module usage
|
|
110
|
+
claims_sync = await claims.get_all_claims()
|
|
111
|
+
claims_async = await async_claims.get_all_claims()
|
|
112
|
+
feature_flags_data = await feature_flags.get_all_flags()
|
|
113
|
+
permissions_data = await permissions.get_permissions()
|
|
114
|
+
access_token = tokens.get_token_manager().get_access_token()
|
|
115
|
+
|
|
116
|
+
return f"""
|
|
117
|
+
<html>
|
|
118
|
+
<body>
|
|
119
|
+
<h1>Welcome, {user.get('email')}!</h1>
|
|
120
|
+
<h2>SmartOAuth Demo - FastAPI (Async Context)</h2>
|
|
121
|
+
<p><strong>User Info (async):</strong> {user.get('email')}</p>
|
|
122
|
+
<p><strong>Claims (sync):</strong> {claims_sync}</p>
|
|
123
|
+
<p><strong>Claims (async):</strong> {claims_async}</p>
|
|
124
|
+
<p><strong>Feature Flags:</strong> {feature_flags_data}</p>
|
|
125
|
+
<p><strong>Permissions:</strong> {permissions_data}</p>
|
|
126
|
+
<p><strong>Access Token:</strong> {access_token[:20]}...</p>
|
|
127
|
+
<p><strong>Management Users:</strong> {user_count} user(s) found</p>
|
|
128
|
+
<p><em>Note: SmartOAuth automatically detected the async context and used async methods.</em></p>
|
|
129
|
+
<p>You are logged in.</p>
|
|
130
|
+
<hr>
|
|
131
|
+
<h3>Demo Routes:</h3>
|
|
132
|
+
<ul>
|
|
133
|
+
<li><a href="/demo_smart_oauth">SmartOAuth Demo (JSON)</a></li>
|
|
134
|
+
<li><a href="/demo_auth_modules">Auth Modules Demo (JSON)</a></li>
|
|
135
|
+
<li><a href="/call_management_users">Call Management Users</a></li>
|
|
136
|
+
</ul>
|
|
137
|
+
<hr>
|
|
138
|
+
<a href="/logout">Logout</a>
|
|
139
|
+
</body>
|
|
140
|
+
</html>
|
|
141
|
+
"""
|
|
142
|
+
return """
|
|
143
|
+
<html>
|
|
144
|
+
<body>
|
|
145
|
+
<h1>Welcome to the SmartOAuth Example App</h1>
|
|
146
|
+
<p>You are not logged in.</p>
|
|
147
|
+
<p>This example demonstrates SmartOAuth in a FastAPI application.</p>
|
|
148
|
+
<a href="/login">Login with SmartOAuth</a>
|
|
149
|
+
</body>
|
|
150
|
+
</html>
|
|
151
|
+
"""
|
|
152
|
+
|
|
153
|
+
@app.get("/login")
|
|
154
|
+
async def login():
|
|
155
|
+
"""
|
|
156
|
+
Initiate login with SmartOAuth.
|
|
157
|
+
"""
|
|
158
|
+
try:
|
|
159
|
+
# SmartOAuth will automatically use async methods in FastAPI context
|
|
160
|
+
login_url = await kinde_oauth.login()
|
|
161
|
+
return {"login_url": login_url}
|
|
162
|
+
except Exception as e:
|
|
163
|
+
logger.error(f"Login error: {e}")
|
|
164
|
+
return {"error": str(e)}
|
|
165
|
+
|
|
166
|
+
@app.get("/logout")
|
|
167
|
+
async def logout():
|
|
168
|
+
"""
|
|
169
|
+
Logout using SmartOAuth.
|
|
170
|
+
"""
|
|
171
|
+
try:
|
|
172
|
+
# SmartOAuth will automatically use async methods in FastAPI context
|
|
173
|
+
logout_url = await kinde_oauth.logout()
|
|
174
|
+
return {"logout_url": logout_url}
|
|
175
|
+
except Exception as e:
|
|
176
|
+
logger.error(f"Logout error: {e}")
|
|
177
|
+
return {"error": str(e)}
|
|
178
|
+
|
|
179
|
+
@app.get("/call_management_users")
|
|
180
|
+
async def call_management_users():
|
|
181
|
+
if not kinde_oauth.is_authenticated():
|
|
182
|
+
return {"error": "Not authenticated"}
|
|
183
|
+
|
|
184
|
+
domain = os.getenv("KINDE_DOMAIN")
|
|
185
|
+
client_id = os.getenv("KINDE_MANAGEMENT_CLIENT_ID")
|
|
186
|
+
client_secret = os.getenv("KINDE_MANAGEMENT_CLIENT_SECRET")
|
|
187
|
+
|
|
188
|
+
if not all([domain, client_id, client_secret]):
|
|
189
|
+
return {"error": "Missing management credentials"}
|
|
190
|
+
|
|
191
|
+
try:
|
|
192
|
+
token_manager = ManagementTokenManager(
|
|
193
|
+
domain=domain,
|
|
194
|
+
client_id=client_id,
|
|
195
|
+
client_secret=client_secret
|
|
196
|
+
)
|
|
197
|
+
access_token = token_manager.get_access_token()
|
|
198
|
+
|
|
199
|
+
headers = {
|
|
200
|
+
"Authorization": f"Bearer {access_token}"
|
|
201
|
+
}
|
|
202
|
+
response = requests.get("http://localhost:8000/management/users", headers=headers)
|
|
203
|
+
response.raise_for_status()
|
|
204
|
+
return response.json()
|
|
205
|
+
except Exception as e:
|
|
206
|
+
logger.error(f"Failed to call management users: {e}")
|
|
207
|
+
return {"error": str(e)}
|
|
208
|
+
|
|
209
|
+
@app.get("/demo_smart_oauth")
|
|
210
|
+
async def demo_smart_oauth():
|
|
211
|
+
"""
|
|
212
|
+
Demonstrate SmartOAuth features in FastAPI context.
|
|
213
|
+
"""
|
|
214
|
+
if not kinde_oauth.is_authenticated():
|
|
215
|
+
return {"error": "Not authenticated"}
|
|
216
|
+
|
|
217
|
+
# Demonstrate different SmartOAuth usage patterns
|
|
218
|
+
results = {}
|
|
219
|
+
|
|
220
|
+
# 1. Async methods (recommended in async context)
|
|
221
|
+
try:
|
|
222
|
+
user_async = await kinde_oauth.get_user_info_async()
|
|
223
|
+
results["user_async"] = user_async.get('email')
|
|
224
|
+
except Exception as e:
|
|
225
|
+
results["user_async_error"] = str(e)
|
|
226
|
+
|
|
227
|
+
# 2. Sync methods (will show warning but still work)
|
|
228
|
+
try:
|
|
229
|
+
user_sync = kinde_oauth.get_user_info()
|
|
230
|
+
results["user_sync"] = user_sync.get('email')
|
|
231
|
+
except Exception as e:
|
|
232
|
+
results["user_sync_error"] = str(e)
|
|
233
|
+
|
|
234
|
+
# 3. Auth URL generation (async)
|
|
235
|
+
try:
|
|
236
|
+
auth_url = await kinde_oauth.generate_auth_url()
|
|
237
|
+
results["auth_url"] = auth_url
|
|
238
|
+
except Exception as e:
|
|
239
|
+
results["auth_url_error"] = str(e)
|
|
240
|
+
|
|
241
|
+
# 4. Token retrieval
|
|
242
|
+
try:
|
|
243
|
+
tokens_data = kinde_oauth.get_tokens(kinde_oauth._framework.get_user_id())
|
|
244
|
+
results["tokens"] = {
|
|
245
|
+
"has_access_token": bool(tokens_data.get('access_token')),
|
|
246
|
+
"has_refresh_token": bool(tokens_data.get('refresh_token'))
|
|
247
|
+
}
|
|
248
|
+
except Exception as e:
|
|
249
|
+
results["tokens_error"] = str(e)
|
|
250
|
+
|
|
251
|
+
# 5. Context detection
|
|
252
|
+
results["context_info"] = {
|
|
253
|
+
"is_async_context": kinde_oauth._is_async_context(),
|
|
254
|
+
"framework": "fastapi",
|
|
255
|
+
"authenticated": kinde_oauth.is_authenticated()
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return {
|
|
259
|
+
"message": "SmartOAuth Demo Results",
|
|
260
|
+
"results": results,
|
|
261
|
+
"note": "SmartOAuth automatically detected the async context and used appropriate methods."
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
@app.get("/demo_auth_modules")
|
|
265
|
+
async def demo_auth_modules():
|
|
266
|
+
"""
|
|
267
|
+
Demonstrate both sync and async auth modules.
|
|
268
|
+
"""
|
|
269
|
+
if not kinde_oauth.is_authenticated():
|
|
270
|
+
return {"error": "Not authenticated"}
|
|
271
|
+
|
|
272
|
+
results = {}
|
|
273
|
+
|
|
274
|
+
# Sync auth modules
|
|
275
|
+
try:
|
|
276
|
+
results["claims_sync"] = await claims.get_all_claims()
|
|
277
|
+
except Exception as e:
|
|
278
|
+
results["claims_sync_error"] = str(e)
|
|
279
|
+
|
|
280
|
+
# Async auth modules
|
|
281
|
+
try:
|
|
282
|
+
results["claims_async"] = await async_claims.get_all_claims()
|
|
283
|
+
except Exception as e:
|
|
284
|
+
results["claims_async_error"] = str(e)
|
|
285
|
+
|
|
286
|
+
try:
|
|
287
|
+
results["feature_flags"] = await feature_flags.get_all_flags()
|
|
288
|
+
except Exception as e:
|
|
289
|
+
results["feature_flags_error"] = str(e)
|
|
290
|
+
|
|
291
|
+
try:
|
|
292
|
+
results["permissions"] = await permissions.get_permissions()
|
|
293
|
+
except Exception as e:
|
|
294
|
+
results["permissions_error"] = str(e)
|
|
295
|
+
|
|
296
|
+
return {
|
|
297
|
+
"message": "Auth Modules Demo",
|
|
298
|
+
"results": results,
|
|
299
|
+
"note": "Both sync and async auth modules work in FastAPI context."
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if __name__ == "__main__":
|
|
303
|
+
import uvicorn
|
|
304
|
+
uvicorn.run(app, host="127.0.0.1", port=5000)
|
|
@@ -20,15 +20,22 @@ pyproject.toml
|
|
|
20
20
|
./kinde_flask/storage/flask_storage_factory.py
|
|
21
21
|
./kinde_sdk/__init__.py
|
|
22
22
|
./kinde_sdk/auth/__init__.py
|
|
23
|
+
./kinde_sdk/auth/api_options.py
|
|
24
|
+
./kinde_sdk/auth/async_claims.py
|
|
25
|
+
./kinde_sdk/auth/async_oauth.py
|
|
23
26
|
./kinde_sdk/auth/base_auth.py
|
|
27
|
+
./kinde_sdk/auth/base_oauth.py
|
|
24
28
|
./kinde_sdk/auth/claims.py
|
|
25
29
|
./kinde_sdk/auth/config_loader.py
|
|
30
|
+
./kinde_sdk/auth/entitlements.py
|
|
26
31
|
./kinde_sdk/auth/enums.py
|
|
27
32
|
./kinde_sdk/auth/feature_flags.py
|
|
28
33
|
./kinde_sdk/auth/login_options.py
|
|
29
34
|
./kinde_sdk/auth/oauth.py
|
|
30
35
|
./kinde_sdk/auth/permissions.py
|
|
31
36
|
./kinde_sdk/auth/portals.py
|
|
37
|
+
./kinde_sdk/auth/roles.py
|
|
38
|
+
./kinde_sdk/auth/smart_oauth.py
|
|
32
39
|
./kinde_sdk/auth/token_manager.py
|
|
33
40
|
./kinde_sdk/auth/tokens.py
|
|
34
41
|
./kinde_sdk/auth/user_session.py
|
|
@@ -47,6 +54,52 @@ pyproject.toml
|
|
|
47
54
|
./kinde_sdk/core/storage/storage_factory.py
|
|
48
55
|
./kinde_sdk/core/storage/storage_interface.py
|
|
49
56
|
./kinde_sdk/core/storage/storage_manager.py
|
|
57
|
+
./kinde_sdk/frontend/__init__.py
|
|
58
|
+
./kinde_sdk/frontend/api_client.py
|
|
59
|
+
./kinde_sdk/frontend/api_response.py
|
|
60
|
+
./kinde_sdk/frontend/configuration.py
|
|
61
|
+
./kinde_sdk/frontend/exceptions.py
|
|
62
|
+
./kinde_sdk/frontend/rest.py
|
|
63
|
+
./kinde_sdk/frontend/api/__init__.py
|
|
64
|
+
./kinde_sdk/frontend/api/billing_api.py
|
|
65
|
+
./kinde_sdk/frontend/api/feature_flags_api.py
|
|
66
|
+
./kinde_sdk/frontend/api/o_auth_api.py
|
|
67
|
+
./kinde_sdk/frontend/api/permissions_api.py
|
|
68
|
+
./kinde_sdk/frontend/api/properties_api.py
|
|
69
|
+
./kinde_sdk/frontend/api/roles_api.py
|
|
70
|
+
./kinde_sdk/frontend/api/self_serve_portal_api.py
|
|
71
|
+
./kinde_sdk/frontend/models/__init__.py
|
|
72
|
+
./kinde_sdk/frontend/models/error.py
|
|
73
|
+
./kinde_sdk/frontend/models/error_response.py
|
|
74
|
+
./kinde_sdk/frontend/models/get_entitlement_response.py
|
|
75
|
+
./kinde_sdk/frontend/models/get_entitlement_response_data.py
|
|
76
|
+
./kinde_sdk/frontend/models/get_entitlement_response_data_entitlement.py
|
|
77
|
+
./kinde_sdk/frontend/models/get_entitlements_response.py
|
|
78
|
+
./kinde_sdk/frontend/models/get_entitlements_response_data.py
|
|
79
|
+
./kinde_sdk/frontend/models/get_entitlements_response_data_entitlements_inner.py
|
|
80
|
+
./kinde_sdk/frontend/models/get_entitlements_response_data_plans_inner.py
|
|
81
|
+
./kinde_sdk/frontend/models/get_entitlements_response_metadata.py
|
|
82
|
+
./kinde_sdk/frontend/models/get_feature_flags_response.py
|
|
83
|
+
./kinde_sdk/frontend/models/get_feature_flags_response_data.py
|
|
84
|
+
./kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner.py
|
|
85
|
+
./kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner_value.py
|
|
86
|
+
./kinde_sdk/frontend/models/get_user_permissions_response.py
|
|
87
|
+
./kinde_sdk/frontend/models/get_user_permissions_response_data.py
|
|
88
|
+
./kinde_sdk/frontend/models/get_user_permissions_response_data_permissions_inner.py
|
|
89
|
+
./kinde_sdk/frontend/models/get_user_permissions_response_metadata.py
|
|
90
|
+
./kinde_sdk/frontend/models/get_user_properties_response.py
|
|
91
|
+
./kinde_sdk/frontend/models/get_user_properties_response_data.py
|
|
92
|
+
./kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner.py
|
|
93
|
+
./kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner_value.py
|
|
94
|
+
./kinde_sdk/frontend/models/get_user_properties_response_metadata.py
|
|
95
|
+
./kinde_sdk/frontend/models/get_user_roles_response.py
|
|
96
|
+
./kinde_sdk/frontend/models/get_user_roles_response_data.py
|
|
97
|
+
./kinde_sdk/frontend/models/get_user_roles_response_data_roles_inner.py
|
|
98
|
+
./kinde_sdk/frontend/models/get_user_roles_response_metadata.py
|
|
99
|
+
./kinde_sdk/frontend/models/portal_link.py
|
|
100
|
+
./kinde_sdk/frontend/models/token_error_response.py
|
|
101
|
+
./kinde_sdk/frontend/models/token_introspect.py
|
|
102
|
+
./kinde_sdk/frontend/models/user_profile_v2.py
|
|
50
103
|
./kinde_sdk/management/__init__.py
|
|
51
104
|
./kinde_sdk/management/api_client.py
|
|
52
105
|
./kinde_sdk/management/api_response.py
|
|
@@ -426,15 +479,22 @@ kinde_python_sdk.egg-info/requires.txt
|
|
|
426
479
|
kinde_python_sdk.egg-info/top_level.txt
|
|
427
480
|
kinde_sdk/__init__.py
|
|
428
481
|
kinde_sdk/auth/__init__.py
|
|
482
|
+
kinde_sdk/auth/api_options.py
|
|
483
|
+
kinde_sdk/auth/async_claims.py
|
|
484
|
+
kinde_sdk/auth/async_oauth.py
|
|
429
485
|
kinde_sdk/auth/base_auth.py
|
|
486
|
+
kinde_sdk/auth/base_oauth.py
|
|
430
487
|
kinde_sdk/auth/claims.py
|
|
431
488
|
kinde_sdk/auth/config_loader.py
|
|
489
|
+
kinde_sdk/auth/entitlements.py
|
|
432
490
|
kinde_sdk/auth/enums.py
|
|
433
491
|
kinde_sdk/auth/feature_flags.py
|
|
434
492
|
kinde_sdk/auth/login_options.py
|
|
435
493
|
kinde_sdk/auth/oauth.py
|
|
436
494
|
kinde_sdk/auth/permissions.py
|
|
437
495
|
kinde_sdk/auth/portals.py
|
|
496
|
+
kinde_sdk/auth/roles.py
|
|
497
|
+
kinde_sdk/auth/smart_oauth.py
|
|
438
498
|
kinde_sdk/auth/token_manager.py
|
|
439
499
|
kinde_sdk/auth/tokens.py
|
|
440
500
|
kinde_sdk/auth/user_session.py
|
|
@@ -453,6 +513,52 @@ kinde_sdk/core/storage/memory_storage.py
|
|
|
453
513
|
kinde_sdk/core/storage/storage_factory.py
|
|
454
514
|
kinde_sdk/core/storage/storage_interface.py
|
|
455
515
|
kinde_sdk/core/storage/storage_manager.py
|
|
516
|
+
kinde_sdk/frontend/__init__.py
|
|
517
|
+
kinde_sdk/frontend/api_client.py
|
|
518
|
+
kinde_sdk/frontend/api_response.py
|
|
519
|
+
kinde_sdk/frontend/configuration.py
|
|
520
|
+
kinde_sdk/frontend/exceptions.py
|
|
521
|
+
kinde_sdk/frontend/rest.py
|
|
522
|
+
kinde_sdk/frontend/api/__init__.py
|
|
523
|
+
kinde_sdk/frontend/api/billing_api.py
|
|
524
|
+
kinde_sdk/frontend/api/feature_flags_api.py
|
|
525
|
+
kinde_sdk/frontend/api/o_auth_api.py
|
|
526
|
+
kinde_sdk/frontend/api/permissions_api.py
|
|
527
|
+
kinde_sdk/frontend/api/properties_api.py
|
|
528
|
+
kinde_sdk/frontend/api/roles_api.py
|
|
529
|
+
kinde_sdk/frontend/api/self_serve_portal_api.py
|
|
530
|
+
kinde_sdk/frontend/models/__init__.py
|
|
531
|
+
kinde_sdk/frontend/models/error.py
|
|
532
|
+
kinde_sdk/frontend/models/error_response.py
|
|
533
|
+
kinde_sdk/frontend/models/get_entitlement_response.py
|
|
534
|
+
kinde_sdk/frontend/models/get_entitlement_response_data.py
|
|
535
|
+
kinde_sdk/frontend/models/get_entitlement_response_data_entitlement.py
|
|
536
|
+
kinde_sdk/frontend/models/get_entitlements_response.py
|
|
537
|
+
kinde_sdk/frontend/models/get_entitlements_response_data.py
|
|
538
|
+
kinde_sdk/frontend/models/get_entitlements_response_data_entitlements_inner.py
|
|
539
|
+
kinde_sdk/frontend/models/get_entitlements_response_data_plans_inner.py
|
|
540
|
+
kinde_sdk/frontend/models/get_entitlements_response_metadata.py
|
|
541
|
+
kinde_sdk/frontend/models/get_feature_flags_response.py
|
|
542
|
+
kinde_sdk/frontend/models/get_feature_flags_response_data.py
|
|
543
|
+
kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner.py
|
|
544
|
+
kinde_sdk/frontend/models/get_feature_flags_response_data_feature_flags_inner_value.py
|
|
545
|
+
kinde_sdk/frontend/models/get_user_permissions_response.py
|
|
546
|
+
kinde_sdk/frontend/models/get_user_permissions_response_data.py
|
|
547
|
+
kinde_sdk/frontend/models/get_user_permissions_response_data_permissions_inner.py
|
|
548
|
+
kinde_sdk/frontend/models/get_user_permissions_response_metadata.py
|
|
549
|
+
kinde_sdk/frontend/models/get_user_properties_response.py
|
|
550
|
+
kinde_sdk/frontend/models/get_user_properties_response_data.py
|
|
551
|
+
kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner.py
|
|
552
|
+
kinde_sdk/frontend/models/get_user_properties_response_data_properties_inner_value.py
|
|
553
|
+
kinde_sdk/frontend/models/get_user_properties_response_metadata.py
|
|
554
|
+
kinde_sdk/frontend/models/get_user_roles_response.py
|
|
555
|
+
kinde_sdk/frontend/models/get_user_roles_response_data.py
|
|
556
|
+
kinde_sdk/frontend/models/get_user_roles_response_data_roles_inner.py
|
|
557
|
+
kinde_sdk/frontend/models/get_user_roles_response_metadata.py
|
|
558
|
+
kinde_sdk/frontend/models/portal_link.py
|
|
559
|
+
kinde_sdk/frontend/models/token_error_response.py
|
|
560
|
+
kinde_sdk/frontend/models/token_introspect.py
|
|
561
|
+
kinde_sdk/frontend/models/user_profile_v2.py
|
|
456
562
|
kinde_sdk/management/__init__.py
|
|
457
563
|
kinde_sdk/management/api_client.py
|
|
458
564
|
kinde_sdk/management/api_response.py
|
|
@@ -8,12 +8,17 @@ The SDK is organized into three main components:
|
|
|
8
8
|
- auth: Authentication and OAuth functionality
|
|
9
9
|
- core: Core utilities and framework support
|
|
10
10
|
- management: Management API client (separate module)
|
|
11
|
+
|
|
12
|
+
The SDK now supports both sync and async operations with consistent APIs.
|
|
11
13
|
"""
|
|
12
14
|
|
|
13
15
|
from kinde_sdk.auth.oauth import OAuth
|
|
16
|
+
from kinde_sdk.auth.async_oauth import AsyncOAuth
|
|
17
|
+
from kinde_sdk.auth.smart_oauth import SmartOAuth, create_oauth_client
|
|
14
18
|
from kinde_sdk.auth.token_manager import TokenManager
|
|
15
19
|
from kinde_sdk.auth.user_session import UserSession
|
|
16
20
|
from kinde_sdk.auth import permissions, claims, portals, feature_flags
|
|
21
|
+
from kinde_sdk.auth.async_claims import async_claims
|
|
17
22
|
from kinde_sdk.core.storage.storage_factory import StorageFactory
|
|
18
23
|
from kinde_sdk.core.framework.framework_factory import FrameworkFactory
|
|
19
24
|
from kinde_sdk.core.framework.framework_interface import FrameworkInterface
|
|
@@ -23,10 +28,14 @@ __version__ = "2.1.0"
|
|
|
23
28
|
|
|
24
29
|
__all__ = [
|
|
25
30
|
"OAuth",
|
|
31
|
+
"AsyncOAuth",
|
|
32
|
+
"SmartOAuth",
|
|
33
|
+
"create_oauth_client",
|
|
26
34
|
"TokenManager",
|
|
27
35
|
"UserSession",
|
|
28
36
|
"permissions",
|
|
29
37
|
"claims",
|
|
38
|
+
"async_claims",
|
|
30
39
|
"portals",
|
|
31
40
|
"feature_flags",
|
|
32
41
|
"StorageFactory",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
from .oauth import OAuth
|
|
2
2
|
from .token_manager import TokenManager
|
|
3
3
|
from .user_session import UserSession
|
|
4
|
+
from .api_options import ApiOptions
|
|
4
5
|
from .permissions import permissions
|
|
5
6
|
from .claims import claims
|
|
6
7
|
from .feature_flags import feature_flags
|
|
7
8
|
from .portals import portals
|
|
8
9
|
from .tokens import tokens
|
|
10
|
+
from .roles import roles
|
|
9
11
|
|
|
10
|
-
__all__ = ["OAuth", "TokenManager", "UserSession", "permissions", "claims", "feature_flags", "portals", "tokens"]
|
|
12
|
+
__all__ = ["OAuth", "TokenManager", "UserSession", "permissions", "ApiOptions", "claims", "feature_flags", "portals", "tokens", "roles"]
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Async claims module that provides async versions of claims operations.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from typing import Dict, Any
|
|
6
|
+
from .base_auth import BaseAuth
|
|
7
|
+
|
|
8
|
+
class AsyncClaims(BaseAuth):
|
|
9
|
+
"""
|
|
10
|
+
Async claims implementation that provides async versions of claims operations.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
async def get_claim(self, claim_name: str, token_type: str = "access_token") -> Dict[str, Any]:
|
|
14
|
+
"""
|
|
15
|
+
Get a specific claim from the user's tokens asynchronously.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
claim_name: The name of the claim to retrieve (e.g. "aud", "given_name")
|
|
19
|
+
token_type: The type of token to get the claim from ("access_token" or "id_token")
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
Dict containing claim details:
|
|
23
|
+
{
|
|
24
|
+
"name": str,
|
|
25
|
+
"value": Any
|
|
26
|
+
}
|
|
27
|
+
"""
|
|
28
|
+
token_manager = self._get_token_manager()
|
|
29
|
+
if not token_manager:
|
|
30
|
+
return {
|
|
31
|
+
"name": claim_name,
|
|
32
|
+
"value": None
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
claims = token_manager.get_claims(token_type)
|
|
36
|
+
value = claims.get(claim_name)
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
"name": claim_name,
|
|
40
|
+
"value": value
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async def get_all_claims(self, token_type: str = "access_token") -> Dict[str, Any]:
|
|
44
|
+
"""
|
|
45
|
+
Get all claims from the user's tokens asynchronously.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
token_type: The type of token to get claims from ("access_token" or "id_token")
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
Dict containing all claims from the token
|
|
52
|
+
"""
|
|
53
|
+
token_manager = self._get_token_manager()
|
|
54
|
+
if not token_manager:
|
|
55
|
+
return {}
|
|
56
|
+
|
|
57
|
+
return token_manager.get_claims(token_type)
|
|
58
|
+
|
|
59
|
+
# Create a singleton instance
|
|
60
|
+
async_claims = AsyncClaims()
|