@@ -99,8 +99,9 @@ async def inner(app: FastAPI):
9999 return inner
100100
101101
102- secure_router = APIRouter ()
103102open_router = APIRouter ()
103+ secure_router = APIRouter (deprecated = True )
104+ secure_router_v1 = APIRouter (prefix = "/api/v1" )
104105
105106
106107def get_app (config : ApplicationConfig ):
@@ -122,6 +123,7 @@ def get_app(config: ApplicationConfig):
122123 }
123124 app .include_router (open_router )
124125 app .include_router (secure_router , dependencies = dependencies )
126+ app .include_router (secure_router_v1 , dependencies = dependencies )
125127 app .add_exception_handler (KeyError , on_key_error_404 )
126128 app .add_exception_handler (jwt .PyJWTError , on_token_error_401 )
127129 app .middleware ("http" )(add_version_headers )
@@ -188,6 +190,7 @@ def root_redirect() -> RedirectResponse:
188190 )
189191
190192
193+ @secure_router_v1 .get ("/environment" , tags = [Tag .ENV ])
191194@secure_router .get ("/environment" , tags = [Tag .ENV ])
192195@start_as_current_span (TRACER , "runner" )
193196def get_environment (
@@ -197,6 +200,7 @@ def get_environment(
197200 return runner .state
198201
199202
203+ @secure_router_v1 .delete ("/environment" , tags = [Tag .ENV ])
200204@secure_router .delete ("/environment" , tags = [Tag .ENV ])
201205async def delete_environment (
202206 background_tasks : BackgroundTasks ,
@@ -227,6 +231,7 @@ def get_oidc_config(
227231 return config
228232
229233
234+ @secure_router_v1 .get ("/plans" , tags = [Tag .PLAN ])
230235@secure_router .get ("/plans" , tags = [Tag .PLAN ])
231236@start_as_current_span (TRACER )
232237def get_plans (runner : Annotated [WorkerDispatcher , Depends (_runner )]) -> PlanResponse :
@@ -235,6 +240,7 @@ def get_plans(runner: Annotated[WorkerDispatcher, Depends(_runner)]) -> PlanResp
235240 return PlanResponse (plans = plans )
236241
237242
243+ @secure_router_v1 .get ("/plans/{name}" , tags = [Tag .PLAN ])
238244@secure_router .get ("/plans/{name}" , tags = [Tag .PLAN ])
239245@start_as_current_span (TRACER , "name" )
240246def get_plan_by_name (
@@ -244,6 +250,7 @@ def get_plan_by_name(
244250 return runner .run (interface .get_plan , name )
245251
246252
253+ @secure_router_v1 .get ("/devices" , tags = [Tag .DEVICE ])
247254@secure_router .get ("/devices" , tags = [Tag .DEVICE ])
248255@start_as_current_span (TRACER )
249256def get_devices (
@@ -254,6 +261,7 @@ def get_devices(
254261 return DeviceResponse (devices = devices )
255262
256263
264+ @secure_router_v1 .get ("/devices/{name}" , tags = [Tag .DEVICE ])
257265@secure_router .get ("/devices/{name}" , tags = [Tag .DEVICE ])
258266@start_as_current_span (TRACER , "name" )
259267def get_device_by_name (
@@ -270,6 +278,7 @@ def get_device_by_name(
270278)
271279
272280
281+ @secure_router_v1 .post ("/tasks" , status_code = status .HTTP_201_CREATED , tags = [Tag .TASK ])
273282@secure_router .post ("/tasks" , status_code = status .HTTP_201_CREATED , tags = [Tag .TASK ])
274283@start_as_current_span (
275284 TRACER ,
@@ -318,6 +327,9 @@ def submit_task(
318327 ) from e
319328
320329
330+ @secure_router_v1 .delete (
331+ "/tasks/{task_id}" , status_code = status .HTTP_200_OK , tags = [Tag .TASK ]
332+ )
321333@secure_router .delete (
322334 "/tasks/{task_id}" , status_code = status .HTTP_200_OK , tags = [Tag .TASK ]
323335)
@@ -337,6 +349,7 @@ def validate_task_status(v: str) -> TaskStatusEnum:
337349 return TaskStatusEnum (v_upper )
338350
339351
352+ @secure_router_v1 .get ("/tasks" , status_code = status .HTTP_200_OK , tags = [Tag .TASK ])
340353@secure_router .get ("/tasks" , status_code = status .HTTP_200_OK , tags = [Tag .TASK ])
341354@start_as_current_span (TRACER )
342355def get_tasks (
@@ -363,6 +376,11 @@ def get_tasks(
363376 return TasksListResponse (tasks = tasks )
364377
365378
379+ @secure_router_v1 .put (
380+ "/worker/task" ,
381+ responses = {status .HTTP_409_CONFLICT : {}},
382+ tags = [Tag .TASK ],
383+ )
366384@secure_router .put (
367385 "/worker/task" ,
368386 responses = {status .HTTP_409_CONFLICT : {}},
@@ -397,6 +415,7 @@ def get_passthrough_headers(request: Request) -> dict[str, str]:
397415 }
398416
399417
418+ @secure_router_v1 .get ("/tasks/{task_id}" , tags = [Tag .TASK ])
400419@secure_router .get ("/tasks/{task_id}" , tags = [Tag .TASK ])
401420@start_as_current_span (TRACER , "task_id" )
402421def get_task (
@@ -410,6 +429,10 @@ def get_task(
410429 return task
411430
412431
432+ @secure_router_v1 .get (
433+ "/worker/task" ,
434+ tags = [Tag .TASK ],
435+ )
413436@secure_router .get (
414437 "/worker/task" ,
415438 tags = [Tag .TASK ],
@@ -423,6 +446,10 @@ def get_active_task(
423446 return WorkerTask (task_id = task_id )
424447
425448
449+ @secure_router_v1 .get (
450+ "/worker/state" ,
451+ tags = [Tag .TASK ],
452+ )
426453@secure_router .get (
427454 "/worker/state" ,
428455 tags = [Tag .TASK ],
@@ -448,6 +475,15 @@ def get_state(runner: Annotated[WorkerDispatcher, Depends(_runner)]) -> WorkerSt
448475}
449476
450477
478+ @secure_router_v1 .put (
479+ "/worker/state" ,
480+ status_code = status .HTTP_202_ACCEPTED ,
481+ responses = {
482+ status .HTTP_400_BAD_REQUEST : {},
483+ status .HTTP_202_ACCEPTED : {},
484+ },
485+ tags = [Tag .TASK ],
486+ )
451487@secure_router .put (
452488 "/worker/state" ,
453489 status_code = status .HTTP_202_ACCEPTED ,
@@ -506,6 +542,7 @@ def set_state(
506542 return runner .run (interface .get_worker_state )
507543
508544
545+ @secure_router_v1 .get ("/python_environment" , tags = [Tag .ENV ])
509546@secure_router .get ("/python_environment" , tags = [Tag .ENV ])
510547@start_as_current_span (TRACER )
511548def get_python_environment (
@@ -527,6 +564,7 @@ def health_probe() -> HealthProbeResponse:
527564 return HealthProbeResponse (status = Health .OK )
528565
529566
567+ @secure_router_v1 .get ("/logout" , include_in_schema = False )
530568@secure_router .get ("/logout" , include_in_schema = False )
531569def logout (runner : Annotated [WorkerDispatcher , Depends (_runner )]) -> Response :
532570 """Redirect to logout url"""
0 commit comments