zenml-nightly 0.82.1.dev20250521__py3-none-any.whl → 0.82.1.dev20250524__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. zenml/VERSION +1 -1
  2. zenml/client.py +6 -2
  3. zenml/config/build_configuration.py +7 -0
  4. zenml/config/docker_settings.py +25 -0
  5. zenml/config/server_config.py +7 -0
  6. zenml/constants.py +1 -0
  7. zenml/enums.py +1 -0
  8. zenml/environment.py +12 -0
  9. zenml/integrations/gcp/__init__.py +1 -1
  10. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +12 -11
  11. zenml/integrations/hyperai/orchestrators/hyperai_orchestrator.py +1 -1
  12. zenml/integrations/kubernetes/orchestrators/kube_utils.py +16 -12
  13. zenml/materializers/built_in_materializer.py +9 -3
  14. zenml/zen_server/cloud_utils.py +45 -21
  15. zenml/zen_server/routers/actions_endpoints.py +6 -6
  16. zenml/zen_server/routers/artifact_endpoint.py +6 -6
  17. zenml/zen_server/routers/artifact_version_endpoints.py +11 -11
  18. zenml/zen_server/routers/auth_endpoints.py +4 -3
  19. zenml/zen_server/routers/code_repositories_endpoints.py +6 -6
  20. zenml/zen_server/routers/devices_endpoints.py +6 -6
  21. zenml/zen_server/routers/event_source_endpoints.py +6 -6
  22. zenml/zen_server/routers/flavors_endpoints.py +7 -7
  23. zenml/zen_server/routers/logs_endpoints.py +2 -2
  24. zenml/zen_server/routers/model_versions_endpoints.py +13 -13
  25. zenml/zen_server/routers/models_endpoints.py +6 -6
  26. zenml/zen_server/routers/pipeline_builds_endpoints.py +5 -5
  27. zenml/zen_server/routers/pipeline_deployments_endpoints.py +6 -6
  28. zenml/zen_server/routers/pipelines_endpoints.py +7 -7
  29. zenml/zen_server/routers/plugin_endpoints.py +3 -3
  30. zenml/zen_server/routers/projects_endpoints.py +7 -7
  31. zenml/zen_server/routers/run_metadata_endpoints.py +2 -2
  32. zenml/zen_server/routers/run_templates_endpoints.py +7 -7
  33. zenml/zen_server/routers/runs_endpoints.py +11 -11
  34. zenml/zen_server/routers/schedule_endpoints.py +6 -6
  35. zenml/zen_server/routers/secrets_endpoints.py +8 -8
  36. zenml/zen_server/routers/server_endpoints.py +13 -9
  37. zenml/zen_server/routers/service_accounts_endpoints.py +12 -12
  38. zenml/zen_server/routers/service_connectors_endpoints.py +13 -13
  39. zenml/zen_server/routers/service_endpoints.py +6 -6
  40. zenml/zen_server/routers/stack_components_endpoints.py +18 -9
  41. zenml/zen_server/routers/stack_deployment_endpoints.py +4 -4
  42. zenml/zen_server/routers/stacks_endpoints.py +6 -6
  43. zenml/zen_server/routers/steps_endpoints.py +8 -8
  44. zenml/zen_server/routers/tag_resource_endpoints.py +5 -5
  45. zenml/zen_server/routers/tags_endpoints.py +6 -6
  46. zenml/zen_server/routers/triggers_endpoints.py +9 -9
  47. zenml/zen_server/routers/users_endpoints.py +12 -12
  48. zenml/zen_server/routers/webhook_endpoints.py +2 -2
  49. zenml/zen_server/utils.py +72 -33
  50. zenml/zen_server/zen_server_api.py +211 -55
  51. zenml/zen_stores/rest_zen_store.py +40 -11
  52. zenml/zen_stores/sql_zen_store.py +79 -2
  53. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250524.dist-info}/METADATA +1 -1
  54. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250524.dist-info}/RECORD +57 -57
  55. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250524.dist-info}/LICENSE +0 -0
  56. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250524.dist-info}/WHEEL +0 -0
  57. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250524.dist-info}/entry_points.txt +0 -0
@@ -40,7 +40,7 @@ from zenml.zen_server.rbac.models import Action, ResourceType
40
40
  from zenml.zen_server.rbac.utils import verify_permission_for_model
41
41
  from zenml.zen_server.routers.projects_endpoints import workspace_router
42
42
  from zenml.zen_server.utils import (
43
- handle_exceptions,
43
+ async_fastapi_endpoint_wrapper,
44
44
  make_dependable,
45
45
  zen_store,
46
46
  )
@@ -70,7 +70,7 @@ types_router = APIRouter(
70
70
  deprecated=True,
71
71
  tags=["stack_components"],
72
72
  )
73
- @handle_exceptions
73
+ @async_fastapi_endpoint_wrapper
74
74
  def create_stack_component(
75
75
  component: ComponentRequest,
76
76
  project_name_or_id: Optional[Union[str, UUID]] = None,
@@ -93,7 +93,7 @@ def create_stack_component(
93
93
 
94
94
  from zenml.stack.utils import validate_stack_component_config
95
95
 
96
- validate_stack_component_config(
96
+ validated_config = validate_stack_component_config(
97
97
  configuration_dict=component.configuration,
98
98
  flavor=component.flavor,
99
99
  component_type=component.type,
@@ -102,6 +102,11 @@ def create_stack_component(
102
102
  validate_custom_flavors=False,
103
103
  )
104
104
 
105
+ if validated_config:
106
+ component.configuration = validated_config.model_dump(
107
+ mode="json", exclude_unset=True
108
+ )
109
+
105
110
  return verify_permissions_and_create_entity(
106
111
  request_model=component,
107
112
  create_method=zen_store().create_stack_component,
@@ -120,7 +125,7 @@ def create_stack_component(
120
125
  deprecated=True,
121
126
  tags=["stack_components"],
122
127
  )
123
- @handle_exceptions
128
+ @async_fastapi_endpoint_wrapper
124
129
  def list_stack_components(
125
130
  component_filter_model: ComponentFilter = Depends(
126
131
  make_dependable(ComponentFilter)
@@ -153,7 +158,7 @@ def list_stack_components(
153
158
  "/{component_id}",
154
159
  responses={401: error_response, 404: error_response, 422: error_response},
155
160
  )
156
- @handle_exceptions
161
+ @async_fastapi_endpoint_wrapper
157
162
  def get_stack_component(
158
163
  component_id: UUID,
159
164
  hydrate: bool = True,
@@ -180,7 +185,7 @@ def get_stack_component(
180
185
  "/{component_id}",
181
186
  responses={401: error_response, 404: error_response, 422: error_response},
182
187
  )
183
- @handle_exceptions
188
+ @async_fastapi_endpoint_wrapper
184
189
  def update_stack_component(
185
190
  component_id: UUID,
186
191
  component_update: ComponentUpdate,
@@ -199,7 +204,7 @@ def update_stack_component(
199
204
  from zenml.stack.utils import validate_stack_component_config
200
205
 
201
206
  existing_component = zen_store().get_stack_component(component_id)
202
- validate_stack_component_config(
207
+ validated_config = validate_stack_component_config(
203
208
  configuration_dict=component_update.configuration,
204
209
  flavor=existing_component.flavor_name,
205
210
  component_type=existing_component.type,
@@ -207,6 +212,10 @@ def update_stack_component(
207
212
  # We allow custom flavors to fail import on the server side.
208
213
  validate_custom_flavors=False,
209
214
  )
215
+ if validated_config:
216
+ component_update.configuration = validated_config.model_dump(
217
+ mode="json", exclude_unset=True
218
+ )
210
219
 
211
220
  if component_update.connector:
212
221
  service_connector = zen_store().get_service_connector(
@@ -226,7 +235,7 @@ def update_stack_component(
226
235
  "/{component_id}",
227
236
  responses={401: error_response, 404: error_response, 422: error_response},
228
237
  )
229
- @handle_exceptions
238
+ @async_fastapi_endpoint_wrapper
230
239
  def deregister_stack_component(
231
240
  component_id: UUID,
232
241
  _: AuthContext = Security(authorize),
@@ -247,7 +256,7 @@ def deregister_stack_component(
247
256
  "",
248
257
  responses={401: error_response, 404: error_response, 422: error_response},
249
258
  )
250
- @handle_exceptions
259
+ @async_fastapi_endpoint_wrapper
251
260
  def get_stack_component_types(
252
261
  _: AuthContext = Security(authorize),
253
262
  ) -> List[str]:
@@ -39,7 +39,7 @@ from zenml.zen_server.exceptions import error_response
39
39
  from zenml.zen_server.rbac.models import Action, ResourceType
40
40
  from zenml.zen_server.rbac.utils import verify_permission
41
41
  from zenml.zen_server.utils import (
42
- handle_exceptions,
42
+ async_fastapi_endpoint_wrapper,
43
43
  server_config,
44
44
  )
45
45
 
@@ -53,7 +53,7 @@ router = APIRouter(
53
53
  @router.get(
54
54
  INFO,
55
55
  )
56
- @handle_exceptions
56
+ @async_fastapi_endpoint_wrapper
57
57
  def get_stack_deployment_info(
58
58
  provider: StackDeploymentProvider,
59
59
  _: AuthContext = Security(authorize),
@@ -73,7 +73,7 @@ def get_stack_deployment_info(
73
73
  @router.get(
74
74
  CONFIG,
75
75
  )
76
- @handle_exceptions
76
+ @async_fastapi_endpoint_wrapper
77
77
  def get_stack_deployment_config(
78
78
  request: Request,
79
79
  provider: StackDeploymentProvider,
@@ -139,7 +139,7 @@ def get_stack_deployment_config(
139
139
  @router.get(
140
140
  STACK,
141
141
  )
142
- @handle_exceptions
142
+ @async_fastapi_endpoint_wrapper
143
143
  def get_deployed_stack(
144
144
  provider: StackDeploymentProvider,
145
145
  stack_name: str,
@@ -42,7 +42,7 @@ from zenml.zen_server.rbac.utils import (
42
42
  )
43
43
  from zenml.zen_server.routers.projects_endpoints import workspace_router
44
44
  from zenml.zen_server.utils import (
45
- handle_exceptions,
45
+ async_fastapi_endpoint_wrapper,
46
46
  make_dependable,
47
47
  zen_store,
48
48
  )
@@ -66,7 +66,7 @@ router = APIRouter(
66
66
  deprecated=True,
67
67
  tags=["stacks"],
68
68
  )
69
- @handle_exceptions
69
+ @async_fastapi_endpoint_wrapper
70
70
  def create_stack(
71
71
  stack: StackRequest,
72
72
  project_name_or_id: Optional[Union[str, UUID]] = None,
@@ -136,7 +136,7 @@ def create_stack(
136
136
  deprecated=True,
137
137
  tags=["stacks"],
138
138
  )
139
- @handle_exceptions
139
+ @async_fastapi_endpoint_wrapper
140
140
  def list_stacks(
141
141
  project_name_or_id: Optional[Union[str, UUID]] = None,
142
142
  stack_filter_model: StackFilter = Depends(make_dependable(StackFilter)),
@@ -167,7 +167,7 @@ def list_stacks(
167
167
  "/{stack_id}",
168
168
  responses={401: error_response, 404: error_response, 422: error_response},
169
169
  )
170
- @handle_exceptions
170
+ @async_fastapi_endpoint_wrapper
171
171
  def get_stack(
172
172
  stack_id: UUID,
173
173
  hydrate: bool = True,
@@ -192,7 +192,7 @@ def get_stack(
192
192
  "/{stack_id}",
193
193
  responses={401: error_response, 404: error_response, 422: error_response},
194
194
  )
195
- @handle_exceptions
195
+ @async_fastapi_endpoint_wrapper
196
196
  def update_stack(
197
197
  stack_id: UUID,
198
198
  stack_update: StackUpdate,
@@ -230,7 +230,7 @@ def update_stack(
230
230
  "/{stack_id}",
231
231
  responses={401: error_response, 404: error_response, 422: error_response},
232
232
  )
233
- @handle_exceptions
233
+ @async_fastapi_endpoint_wrapper
234
234
  def delete_stack(
235
235
  stack_id: UUID,
236
236
  _: AuthContext = Security(authorize),
@@ -48,7 +48,7 @@ from zenml.zen_server.rbac.utils import (
48
48
  verify_permission_for_model,
49
49
  )
50
50
  from zenml.zen_server.utils import (
51
- handle_exceptions,
51
+ async_fastapi_endpoint_wrapper,
52
52
  make_dependable,
53
53
  set_filter_project_scope,
54
54
  zen_store,
@@ -65,7 +65,7 @@ router = APIRouter(
65
65
  "",
66
66
  responses={401: error_response, 404: error_response, 422: error_response},
67
67
  )
68
- @handle_exceptions
68
+ @async_fastapi_endpoint_wrapper
69
69
  def list_run_steps(
70
70
  step_run_filter_model: StepRunFilter = Depends(
71
71
  make_dependable(StepRunFilter)
@@ -109,7 +109,7 @@ def list_run_steps(
109
109
  "",
110
110
  responses={401: error_response, 409: error_response, 422: error_response},
111
111
  )
112
- @handle_exceptions
112
+ @async_fastapi_endpoint_wrapper
113
113
  def create_run_step(
114
114
  step: StepRunRequest,
115
115
  _: AuthContext = Security(authorize),
@@ -136,7 +136,7 @@ def create_run_step(
136
136
  "/{step_id}",
137
137
  responses={401: error_response, 404: error_response, 422: error_response},
138
138
  )
139
- @handle_exceptions
139
+ @async_fastapi_endpoint_wrapper
140
140
  def get_step(
141
141
  step_id: UUID,
142
142
  hydrate: bool = True,
@@ -169,7 +169,7 @@ def get_step(
169
169
  "/{step_id}",
170
170
  responses={401: error_response, 404: error_response, 422: error_response},
171
171
  )
172
- @handle_exceptions
172
+ @async_fastapi_endpoint_wrapper
173
173
  def update_step(
174
174
  step_id: UUID,
175
175
  step_model: StepRunUpdate,
@@ -198,7 +198,7 @@ def update_step(
198
198
  "/{step_id}" + STEP_CONFIGURATION,
199
199
  responses={401: error_response, 404: error_response, 422: error_response},
200
200
  )
201
- @handle_exceptions
201
+ @async_fastapi_endpoint_wrapper
202
202
  def get_step_configuration(
203
203
  step_id: UUID,
204
204
  _: AuthContext = Security(authorize),
@@ -222,7 +222,7 @@ def get_step_configuration(
222
222
  "/{step_id}" + STATUS,
223
223
  responses={401: error_response, 404: error_response, 422: error_response},
224
224
  )
225
- @handle_exceptions
225
+ @async_fastapi_endpoint_wrapper
226
226
  def get_step_status(
227
227
  step_id: UUID,
228
228
  _: AuthContext = Security(authorize),
@@ -246,7 +246,7 @@ def get_step_status(
246
246
  "/{step_id}" + LOGS,
247
247
  responses={401: error_response, 404: error_response, 422: error_response},
248
248
  )
249
- @handle_exceptions
249
+ @async_fastapi_endpoint_wrapper
250
250
  def get_step_logs(
251
251
  step_id: UUID,
252
252
  offset: int = 0,
@@ -27,7 +27,7 @@ from zenml.models import TagResourceRequest, TagResourceResponse
27
27
  from zenml.zen_server.auth import AuthContext, authorize
28
28
  from zenml.zen_server.exceptions import error_response
29
29
  from zenml.zen_server.utils import (
30
- handle_exceptions,
30
+ async_fastapi_endpoint_wrapper,
31
31
  zen_store,
32
32
  )
33
33
 
@@ -42,7 +42,7 @@ router = APIRouter(
42
42
  "",
43
43
  responses={401: error_response, 404: error_response, 422: error_response},
44
44
  )
45
- @handle_exceptions
45
+ @async_fastapi_endpoint_wrapper
46
46
  def create_tag_resource(
47
47
  tag_resource: TagResourceRequest,
48
48
  _: AuthContext = Security(authorize),
@@ -62,7 +62,7 @@ def create_tag_resource(
62
62
  BATCH,
63
63
  responses={401: error_response, 409: error_response, 422: error_response},
64
64
  )
65
- @handle_exceptions
65
+ @async_fastapi_endpoint_wrapper
66
66
  def batch_create_tag_resource(
67
67
  tag_resources: List[TagResourceRequest],
68
68
  _: AuthContext = Security(authorize),
@@ -85,7 +85,7 @@ def batch_create_tag_resource(
85
85
  "",
86
86
  responses={401: error_response, 404: error_response, 422: error_response},
87
87
  )
88
- @handle_exceptions
88
+ @async_fastapi_endpoint_wrapper
89
89
  def delete_tag_resource(
90
90
  tag_resource: TagResourceRequest,
91
91
  _: AuthContext = Security(authorize),
@@ -102,7 +102,7 @@ def delete_tag_resource(
102
102
  BATCH,
103
103
  responses={401: error_response, 404: error_response, 422: error_response},
104
104
  )
105
- @handle_exceptions
105
+ @async_fastapi_endpoint_wrapper
106
106
  def batch_delete_tag_resource(
107
107
  tag_resources: List[TagResourceRequest],
108
108
  _: AuthContext = Security(authorize),
@@ -38,7 +38,7 @@ from zenml.zen_server.rbac.endpoint_utils import (
38
38
  verify_permissions_and_update_entity,
39
39
  )
40
40
  from zenml.zen_server.utils import (
41
- handle_exceptions,
41
+ async_fastapi_endpoint_wrapper,
42
42
  make_dependable,
43
43
  zen_store,
44
44
  )
@@ -58,7 +58,7 @@ router = APIRouter(
58
58
  "",
59
59
  responses={401: error_response, 409: error_response, 422: error_response},
60
60
  )
61
- @handle_exceptions
61
+ @async_fastapi_endpoint_wrapper
62
62
  def create_tag(
63
63
  tag: TagRequest,
64
64
  _: AuthContext = Security(authorize),
@@ -78,7 +78,7 @@ def create_tag(
78
78
  "",
79
79
  responses={401: error_response, 404: error_response, 422: error_response},
80
80
  )
81
- @handle_exceptions
81
+ @async_fastapi_endpoint_wrapper
82
82
  def list_tags(
83
83
  tag_filter_model: TagFilter = Depends(make_dependable(TagFilter)),
84
84
  hydrate: bool = False,
@@ -105,7 +105,7 @@ def list_tags(
105
105
  "/{tag_name_or_id}",
106
106
  responses={401: error_response, 404: error_response, 422: error_response},
107
107
  )
108
- @handle_exceptions
108
+ @async_fastapi_endpoint_wrapper
109
109
  def get_tag(
110
110
  tag_name_or_id: Union[str, UUID],
111
111
  hydrate: bool = True,
@@ -132,7 +132,7 @@ def get_tag(
132
132
  "/{tag_id}",
133
133
  responses={401: error_response, 404: error_response, 422: error_response},
134
134
  )
135
- @handle_exceptions
135
+ @async_fastapi_endpoint_wrapper
136
136
  def update_tag(
137
137
  tag_id: UUID,
138
138
  tag_update_model: TagUpdate,
@@ -159,7 +159,7 @@ def update_tag(
159
159
  "/{tag_name_or_id}",
160
160
  responses={401: error_response, 404: error_response, 422: error_response},
161
161
  )
162
- @handle_exceptions
162
+ @async_fastapi_endpoint_wrapper
163
163
  def delete_tag(
164
164
  tag_name_or_id: Union[str, UUID],
165
165
  _: AuthContext = Security(authorize),
@@ -43,7 +43,7 @@ from zenml.zen_server.rbac.utils import (
43
43
  verify_permission_for_model,
44
44
  )
45
45
  from zenml.zen_server.utils import (
46
- handle_exceptions,
46
+ async_fastapi_endpoint_wrapper,
47
47
  make_dependable,
48
48
  plugin_flavor_registry,
49
49
  zen_store,
@@ -60,7 +60,7 @@ router = APIRouter(
60
60
  "",
61
61
  responses={401: error_response, 404: error_response, 422: error_response},
62
62
  )
63
- @handle_exceptions
63
+ @async_fastapi_endpoint_wrapper
64
64
  def list_triggers(
65
65
  trigger_filter_model: TriggerFilter = Depends(
66
66
  make_dependable(TriggerFilter)
@@ -91,7 +91,7 @@ def list_triggers(
91
91
  "/{trigger_id}",
92
92
  responses={401: error_response, 404: error_response, 422: error_response},
93
93
  )
94
- @handle_exceptions
94
+ @async_fastapi_endpoint_wrapper
95
95
  def get_trigger(
96
96
  trigger_id: UUID,
97
97
  hydrate: bool = True,
@@ -116,7 +116,7 @@ def get_trigger(
116
116
  "",
117
117
  responses={401: error_response, 409: error_response, 422: error_response},
118
118
  )
119
- @handle_exceptions
119
+ @async_fastapi_endpoint_wrapper
120
120
  def create_trigger(
121
121
  trigger: TriggerRequest,
122
122
  _: AuthContext = Security(authorize),
@@ -167,7 +167,7 @@ def create_trigger(
167
167
  "/{trigger_id}",
168
168
  responses={401: error_response, 404: error_response, 422: error_response},
169
169
  )
170
- @handle_exceptions
170
+ @async_fastapi_endpoint_wrapper
171
171
  def update_trigger(
172
172
  trigger_id: UUID,
173
173
  trigger_update: TriggerUpdate,
@@ -230,7 +230,7 @@ def update_trigger(
230
230
  "/{trigger_id}",
231
231
  responses={401: error_response, 404: error_response, 422: error_response},
232
232
  )
233
- @handle_exceptions
233
+ @async_fastapi_endpoint_wrapper
234
234
  def delete_trigger(
235
235
  trigger_id: UUID,
236
236
  _: AuthContext = Security(authorize),
@@ -258,7 +258,7 @@ executions_router = APIRouter(
258
258
  "",
259
259
  responses={401: error_response, 404: error_response, 422: error_response},
260
260
  )
261
- @handle_exceptions
261
+ @async_fastapi_endpoint_wrapper
262
262
  def list_trigger_executions(
263
263
  trigger_execution_filter_model: TriggerExecutionFilter = Depends(
264
264
  make_dependable(TriggerExecutionFilter)
@@ -289,7 +289,7 @@ def list_trigger_executions(
289
289
  "/{trigger_execution_id}",
290
290
  responses={401: error_response, 404: error_response, 422: error_response},
291
291
  )
292
- @handle_exceptions
292
+ @async_fastapi_endpoint_wrapper
293
293
  def get_trigger_execution(
294
294
  trigger_execution_id: UUID,
295
295
  hydrate: bool = True,
@@ -316,7 +316,7 @@ def get_trigger_execution(
316
316
  "/{trigger_execution_id}",
317
317
  responses={401: error_response, 404: error_response, 422: error_response},
318
318
  )
319
- @handle_exceptions
319
+ @async_fastapi_endpoint_wrapper
320
320
  def delete_trigger_execution(
321
321
  trigger_execution_id: UUID,
322
322
  _: AuthContext = Security(authorize),
@@ -56,7 +56,7 @@ from zenml.zen_server.rbac.utils import (
56
56
  verify_permission_for_model,
57
57
  )
58
58
  from zenml.zen_server.utils import (
59
- handle_exceptions,
59
+ async_fastapi_endpoint_wrapper,
60
60
  make_dependable,
61
61
  server_config,
62
62
  verify_admin_status_if_no_rbac,
@@ -95,7 +95,7 @@ current_user_router = APIRouter(
95
95
  "",
96
96
  responses={401: error_response, 404: error_response, 422: error_response},
97
97
  )
98
- @handle_exceptions
98
+ @async_fastapi_endpoint_wrapper
99
99
  def list_users(
100
100
  user_filter_model: UserFilter = Depends(make_dependable(UserFilter)),
101
101
  hydrate: bool = False,
@@ -144,7 +144,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
144
144
  422: error_response,
145
145
  },
146
146
  )
147
- @handle_exceptions
147
+ @async_fastapi_endpoint_wrapper
148
148
  def create_user(
149
149
  user: UserRequest,
150
150
  auth_context: AuthContext = Security(authorize),
@@ -193,7 +193,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
193
193
  "/{user_name_or_id}",
194
194
  responses={401: error_response, 404: error_response, 422: error_response},
195
195
  )
196
- @handle_exceptions
196
+ @async_fastapi_endpoint_wrapper
197
197
  def get_user(
198
198
  user_name_or_id: Union[str, UUID],
199
199
  hydrate: bool = True,
@@ -237,7 +237,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
237
237
  422: error_response,
238
238
  },
239
239
  )
240
- @handle_exceptions
240
+ @async_fastapi_endpoint_wrapper
241
241
  def activate_user(
242
242
  user_name_or_id: Union[str, UUID],
243
243
  user_update: UserUpdate,
@@ -297,7 +297,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
297
297
  422: error_response,
298
298
  },
299
299
  )
300
- @handle_exceptions
300
+ @async_fastapi_endpoint_wrapper
301
301
  def deactivate_user(
302
302
  user_name_or_id: Union[str, UUID],
303
303
  auth_context: AuthContext = Security(authorize),
@@ -345,7 +345,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
345
345
  422: error_response,
346
346
  },
347
347
  )
348
- @handle_exceptions
348
+ @async_fastapi_endpoint_wrapper
349
349
  def delete_user(
350
350
  user_name_or_id: Union[str, UUID],
351
351
  auth_context: AuthContext = Security(authorize),
@@ -387,7 +387,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
387
387
  422: error_response,
388
388
  },
389
389
  )
390
- @handle_exceptions
390
+ @async_fastapi_endpoint_wrapper
391
391
  def email_opt_in_response(
392
392
  user_name_or_id: Union[str, UUID],
393
393
  user_response: UserUpdate,
@@ -439,7 +439,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
439
439
  422: error_response,
440
440
  },
441
441
  )
442
- @handle_exceptions
442
+ @async_fastapi_endpoint_wrapper
443
443
  def update_user(
444
444
  user_name_or_id: Union[str, UUID],
445
445
  user_update: UserUpdate,
@@ -599,7 +599,7 @@ def update_user(
599
599
  "/current-user",
600
600
  responses={401: error_response, 404: error_response, 422: error_response},
601
601
  )
602
- @handle_exceptions
602
+ @async_fastapi_endpoint_wrapper
603
603
  def get_current_user(
604
604
  auth_context: AuthContext = Security(authorize),
605
605
  ) -> UserResponse:
@@ -626,7 +626,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
626
626
  422: error_response,
627
627
  },
628
628
  )
629
- @handle_exceptions
629
+ @async_fastapi_endpoint_wrapper
630
630
  def update_myself(
631
631
  user: UserUpdate,
632
632
  request: Request,
@@ -705,7 +705,7 @@ if server_config().rbac_enabled:
705
705
  422: error_response,
706
706
  },
707
707
  )
708
- @handle_exceptions
708
+ @async_fastapi_endpoint_wrapper
709
709
  def update_user_resource_membership(
710
710
  resource_type: str,
711
711
  resource_id: UUID,
@@ -26,7 +26,7 @@ from zenml.event_sources.webhooks.base_webhook_event_source import (
26
26
  from zenml.exceptions import AuthorizationException, WebhookInactiveError
27
27
  from zenml.logger import get_logger
28
28
  from zenml.zen_server.utils import (
29
- handle_exceptions,
29
+ async_fastapi_endpoint_wrapper,
30
30
  plugin_flavor_registry,
31
31
  zen_store,
32
32
  )
@@ -55,7 +55,7 @@ async def get_body(request: Request) -> bytes:
55
55
  "/{event_source_id}",
56
56
  response_model=Dict[str, str],
57
57
  )
58
- @handle_exceptions
58
+ @async_fastapi_endpoint_wrapper
59
59
  def webhook(
60
60
  event_source_id: UUID,
61
61
  request: Request,