@@ -10,22 +10,28 @@ use utoipa::OpenApi;
10
10
use crate :: { actors, ctx, datacenters, namespaces, runner_configs, runners, ui} ;
11
11
12
12
#[ derive( OpenApi ) ]
13
- #[ openapi( paths(
14
- actors:: list:: list,
15
- actors:: create:: create,
16
- actors:: delete:: delete,
17
- actors:: list_names:: list_names,
18
- actors:: get_or_create:: get_or_create,
19
- runners:: list,
20
- runners:: list_names,
21
- namespaces:: list,
22
- namespaces:: create,
23
- runner_configs:: list,
24
- runner_configs:: upsert,
25
- runner_configs:: delete,
26
- datacenters:: list,
27
- ) ) ]
28
- #[ openapi( components( schemas( namespace:: keys:: RunnerConfigVariant ) ) ) ]
13
+ #[ openapi(
14
+ paths(
15
+ actors:: list:: list,
16
+ actors:: create:: create,
17
+ actors:: delete:: delete,
18
+ actors:: list_names:: list_names,
19
+ actors:: get_or_create:: get_or_create,
20
+ runners:: list,
21
+ runners:: list_names,
22
+ namespaces:: list,
23
+ namespaces:: create,
24
+ runner_configs:: list,
25
+ runner_configs:: upsert,
26
+ runner_configs:: delete,
27
+ datacenters:: list,
28
+ ) ,
29
+ components(
30
+ schemas( namespace:: keys:: RunnerConfigVariant )
31
+ ) ,
32
+ security( ( "bearer_auth" = [ ] ) ) ,
33
+ modifiers( & SecurityAddon ) ,
34
+ ) ]
29
35
pub struct ApiDoc ;
30
36
31
37
pub async fn router (
@@ -118,3 +124,19 @@ async fn auth_middleware(
118
124
119
125
Ok ( res)
120
126
}
127
+
128
+ struct SecurityAddon ;
129
+
130
+ impl utoipa:: Modify for SecurityAddon {
131
+ fn modify ( & self , openapi : & mut utoipa:: openapi:: OpenApi ) {
132
+ openapi. components . as_mut ( ) . unwrap ( ) . add_security_scheme (
133
+ "bearer_auth" ,
134
+ utoipa:: openapi:: security:: SecurityScheme :: Http (
135
+ utoipa:: openapi:: security:: HttpBuilder :: new ( )
136
+ . scheme ( utoipa:: openapi:: security:: HttpAuthScheme :: Bearer )
137
+ // .bearer_format("Rivet")
138
+ . build ( ) ,
139
+ ) ,
140
+ ) ;
141
+ }
142
+ }
0 commit comments