1
1
import os
2
2
from flask import Flask , render_template , request
3
- from typing_extensions import assert_never
4
3
import workos
5
- from workos import client as workos_client
6
- from flask_socketio import SocketIO , emit
4
+ from flask_socketio import SocketIO
7
5
import json
8
6
from flask_lucide import Lucide
9
- import workos .directory_sync
10
- import workos .resources
11
- import workos .resources .directory_sync
12
- import workos .typing
13
- import workos .utils
14
- import workos .utils .connection_types
15
7
16
8
17
9
DEBUG = False
25
17
if __name__ == "__main__" :
26
18
socketio .run (app ) # type: ignore
27
19
28
- workos .api_key = os .getenv ("WORKOS_API_KEY" )
29
- workos .base_api_url = "http://localhost:5000/" if DEBUG else workos .base_api_url
30
- workos .client_id = os .getenv ("WORKOS_CLIENT_ID" )
20
+ workos_client = workos .WorkOSClient (api_key = os .getenv ("WORKOS_API_KEY" ), client_id = os .getenv ("WORKOS_CLIENT_ID" ))
31
21
directory_id = os .getenv ("DIRECTORY_ID" )
32
22
33
23
@@ -42,7 +32,7 @@ def to_pretty_json(value):
42
32
def home ():
43
33
before = request .args .get ("before" )
44
34
after = request .args .get ("after" )
45
- directories = workos . client .directory_sync .list_directories (
35
+ directories = workos_client .directory_sync .list_directories (
46
36
before = before , after = after , limit = 5
47
37
)
48
38
@@ -58,7 +48,7 @@ def directory():
58
48
directory_id = request .args .get ("id" )
59
49
if not directory_id :
60
50
return "No directory ID provided" , 400
61
- directory = workos . client .directory_sync .get_directory (directory_id )
51
+ directory = workos_client .directory_sync .get_directory (directory_id )
62
52
63
53
return render_template (
64
54
"directory.html" , directory = directory .model_dump (), id = directory .id
@@ -68,7 +58,7 @@ def directory():
68
58
@app .route ("/users" )
69
59
def directory_users ():
70
60
directory_id = request .args .get ("id" )
71
- users = workos . client . directory_sync .list_users (directory = directory_id , limit = 100 )
61
+ users = workos_client . directory_sync .list_users (directory_id = directory_id , limit = 100 )
72
62
return render_template ("users.html" , users = users )
73
63
74
64
@@ -77,15 +67,15 @@ def directory_user():
77
67
user_id = request .args .get ("id" )
78
68
if not user_id :
79
69
return "No user ID provided" , 400
80
- user = workos . client . directory_sync .get_user (user = user_id )
70
+ user = workos_client . directory_sync .get_user (user_id )
81
71
82
72
return render_template ("user.html" , user = user .model_dump (), id = user_id )
83
73
84
74
85
75
@app .route ("/groups" )
86
76
def directory_groups ():
87
77
directory_id = request .args .get ("id" )
88
- groups = workos_client .directory_sync .list_groups (directory = directory_id , limit = 100 )
78
+ groups = workos_client .directory_sync .list_groups (directory_id = directory_id , limit = 100 )
89
79
90
80
return render_template ("groups.html" , groups = groups )
91
81
@@ -96,15 +86,15 @@ def directory_group():
96
86
if not group_id :
97
87
return "No user ID provided" , 400
98
88
99
- group = workos_client .directory_sync .get_group (group = group_id )
89
+ group = workos_client .directory_sync .get_group (group_id )
100
90
101
91
return render_template ("group.html" , group = group .model_dump (), id = group_id )
102
92
103
93
104
94
@app .route ("/events" )
105
95
def events ():
106
96
after = request .args .get ("after" )
107
- events = workos . client .events .list_events (
97
+ events = workos_client .events .list_events (
108
98
events = [
109
99
"dsync.activated" ,
110
100
"dsync.deleted" ,
@@ -134,7 +124,7 @@ def webhooks():
134
124
payload = request .get_data ()
135
125
sig_header = request .headers ["WorkOS-Signature" ]
136
126
response = workos_client .webhooks .verify_event (
137
- payload = payload , sig_header = sig_header , secret = signing_secret
127
+ payload = payload , event_signature = sig_header , secret = signing_secret
138
128
)
139
129
message = json .dumps (response .dict ())
140
130
socketio .emit ("webhook_received" , message )
0 commit comments