Skip to content

Commit 4f40960

Browse files
Merge pull request #86 from kinde-oss/fix/management-api-issues
fix(management): resolve management API client issues
2 parents 3527354 + 2e81d6c commit 4f40960

3 files changed

Lines changed: 40 additions & 9 deletions

File tree

kinde_fastapi/examples/example_app.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import logging
99
from kinde_sdk.auth.oauth import OAuth
1010
from kinde_sdk.auth import claims, feature_flags, permissions, tokens
11+
from kinde_sdk.management import ManagementClient;
1112

1213
logger = logging.getLogger(__name__)
1314

@@ -38,6 +39,35 @@ async def home(request: Request):
3839
"""
3940
if kinde_oauth.is_authenticated():
4041
user = kinde_oauth.get_user_info()
42+
43+
# Validate environment variables
44+
domain = os.getenv("KINDE_DOMAIN")
45+
client_id = os.getenv("KINDE_MANAGEMENT_CLIENT_ID")
46+
client_secret = os.getenv("KINDE_MANAGEMENT_CLIENT_SECRET")
47+
48+
if not all([domain, client_id, client_secret]):
49+
return """
50+
<html>
51+
<body>
52+
<h1>Configuration Error</h1>
53+
<p>Missing required environment variables for management client.</p>
54+
<a href="/logout">Logout</a>
55+
</body>
56+
</html>
57+
"""
58+
59+
management_client = ManagementClient(
60+
domain=domain,
61+
client_id=client_id,
62+
client_secret=client_secret
63+
)
64+
try:
65+
api_response = management_client.get_users()
66+
user_count = len(api_response.users) if hasattr(api_response, 'users') else 0
67+
except Exception as e:
68+
logger.error(f"Failed to fetch users: {e}")
69+
user_count = 0
70+
4171
return f"""
4272
<html>
4373
<body>
@@ -46,6 +76,7 @@ async def home(request: Request):
4676
<p>feature flags: {await feature_flags.get_all_flags()}</p>
4777
<p>permissions: {await permissions.get_permissions()}</p>
4878
<p>tokens: {tokens.get_token_manager().get_access_token()}</p>
79+
<p>users: {user_count} user(s) found</p>
4980
<p>You are logged in.</p>
5081
<a href="/logout">Logout</a>
5182
</body>

kinde_sdk/management/management_client.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ class ManagementClient:
108108
# Define response types for each endpoint
109109
RESPONSE_TYPES = {
110110
'users': {
111-
'list': {'200': 'GetUsersResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
112-
'get': {'200': 'GetUserResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
111+
'list': {'200': 'UsersResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
112+
'get': {'200': 'User', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
113113
'create': {'201': 'CreateUserResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
114114
'update': {'200': 'UpdateUserResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
115115
'delete': {'200': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
@@ -130,16 +130,16 @@ class ManagementClient:
130130
},
131131
'permissions': {
132132
'list': {'200': 'GetPermissionsResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
133-
'get': {'200': 'GetPermissionResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
134-
'create': {'201': 'CreatePermissionResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
135-
'update': {'200': 'UpdatePermissionResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
133+
'get': {'200': 'Permissions', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
134+
'create': {'201': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
135+
'update': {'200': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
136136
'delete': {'200': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
137137
},
138138
'feature_flags': {
139139
'list': {'200': 'GetFeatureFlagsResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
140-
'get': {'200': 'GetFeatureFlagResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
141-
'create': {'201': 'CreateFeatureFlagResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
142-
'update': {'200': 'UpdateFeatureFlagResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
140+
'get': {'200': 'GetFeatureFlagsResponseDataFeatureFlagsInner', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
141+
'create': {'201': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '429': 'ErrorResponse'},
142+
'update': {'200': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
143143
'delete': {'200': 'SuccessResponse', '400': 'ErrorResponse', '403': 'ErrorResponse', '404': 'ErrorResponse', '429': 'ErrorResponse'},
144144
},
145145
'subscribers': {

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "kinde-python-sdk"
3-
version = "2.0.2"
3+
version = "2.0.6"
44
authors = [
55
{ name = "Kinde Engineering", email = "engineering@kinde.com" },
66
]

0 commit comments

Comments
 (0)