@@ -9,6 +9,7 @@ capabilities:
99 get_state : true
1010 get_status : true
1111 send_action : true
12+ get_action_status : true
1213 get_action_result : true
1314 get_action_history : true
1415 action_files : true
@@ -29,15 +30,19 @@ actions:
2930 args :
3031 temp :
3132 name : temp
32- description : target temperature
33+ description : target temperature in celsius
3334 argument_type : float
3435 required : true
3536 default : null
3637 locations : {}
3738 files : {}
3839 results : {}
39- blocking : false
40+ blocking : true
4041 asynchronous : true
42+ accepts_var_args : false
43+ accepts_var_kwargs : false
44+ var_args_schema : null
45+ var_kwargs_schema : null
4146 set_target_humidity :
4247 name : set_target_humidity
4348 description : Set the target humidity of the incubator
@@ -51,8 +56,12 @@ actions:
5156 locations : {}
5257 files : {}
5358 results : {}
54- blocking : false
59+ blocking : true
5560 asynchronous : true
61+ accepts_var_args : false
62+ accepts_var_kwargs : false
63+ var_args_schema : null
64+ var_kwargs_schema : null
5665 begin_shake :
5766 name : begin_shake
5867 description : Begin shaking the incubator at the specified speed
@@ -73,8 +82,12 @@ actions:
7382 locations : {}
7483 files : {}
7584 results : {}
76- blocking : false
85+ blocking : true
7786 asynchronous : true
87+ accepts_var_args : false
88+ accepts_var_kwargs : false
89+ var_args_schema : null
90+ var_kwargs_schema : null
7891 end_shake :
7992 name : end_shake
8093 description : Stop shaking the incubator
@@ -89,8 +102,12 @@ actions:
89102 locations : {}
90103 files : {}
91104 results : {}
92- blocking : false
105+ blocking : true
93106 asynchronous : true
107+ accepts_var_args : false
108+ accepts_var_kwargs : false
109+ var_args_schema : null
110+ var_kwargs_schema : null
94111 load_plate :
95112 name : load_plate
96113 description : Load a plate into the incubator
@@ -123,8 +140,12 @@ actions:
123140 locations : {}
124141 files : {}
125142 results : {}
126- blocking : false
143+ blocking : true
127144 asynchronous : true
145+ accepts_var_args : false
146+ accepts_var_kwargs : false
147+ var_args_schema : null
148+ var_kwargs_schema : null
128149 unload_plate :
129150 name : unload_plate
130151 description : Unload a plate from the incubator
@@ -150,22 +171,33 @@ actions:
150171 locations : {}
151172 files : {}
152173 results : {}
153- blocking : false
174+ blocking : true
154175 asynchronous : true
176+ accepts_var_args : false
177+ accepts_var_kwargs : false
178+ var_args_schema : null
179+ var_kwargs_schema : null
155180config :
156181 node_definition : default.node.yaml
157182 node_info_path : null
158183 update_node_files : true
159184 status_update_interval : 2.0
160185 state_update_interval : 2.0
161- node_url : http://hudson01.cels.anl.gov:2005
162- uvicorn_kwargs : {}
186+ node_url : http://hudson01.cels.anl.gov:2005/
187+ uvicorn_kwargs :
188+ limit_concurrency : 10
189+ enable_rate_limiting : true
190+ rate_limit_requests : 100
191+ rate_limit_window : 60
192+ rate_limit_short_requests : 50
193+ rate_limit_short_window : 1
194+ rate_limit_cleanup_interval : 300
163195 liconic_driver_port : 3333
164196 liconic_driver_host : localhost
165- liconic_driver_cassette_config : C:\Liconic\stxdriver_64bit\DriverConfig\Devices\CassettesConfig1.xml
166- resources_path : C:\Users\svcaibio\.madsci\liconic\liconic_resources.yaml
197+ inventory_tracker_path : C:\Users\svcaibio\.madsci\liconic\liconic_resources.yaml
198+ cassette_config_path : C:\Liconic\stxdriver_64bit\DriverConfig\Devices\CassettesConfig1.xml
167199config_schema :
168- description : Configuration for the Liconic REST node
200+ description : Configuration for the LiCONiC REST node
169201 properties :
170202 node_definition :
171203 anyOf :
@@ -210,14 +242,65 @@ config_schema:
210242 description : The interval in seconds at which the node should update its state.
211243 title : State Update Interval
212244 node_url :
213- default : http://hudson01.cels.anl.gov:2005
214- title : Node Url
245+ default : http://127.0.0.1:2000/
246+ description : The URL used to communicate with the node. This is the base URL
247+ for the REST API.
248+ format : uri
249+ minLength : 1
250+ title : Node URL
215251 type : string
216252 uvicorn_kwargs :
217253 additionalProperties : true
218- description : Configuration for the Uvicorn server that runs the REST API.
254+ description : Configuration for the Uvicorn server that runs the REST API. By
255+ default, sets limit_concurrency=10 to protect against connection exhaustion
256+ attacks.
219257 title : Uvicorn Configuration
220258 type : object
259+ enable_rate_limiting :
260+ default : true
261+ description : Enable rate limiting middleware for the REST API.
262+ title : Enable Rate Limiting
263+ type : boolean
264+ rate_limit_requests :
265+ default : 100
266+ description : Maximum number of requests allowed per long time window (only used
267+ if enable_rate_limiting is True).
268+ minimum : 1
269+ title : Rate Limit Requests
270+ type : integer
271+ rate_limit_window :
272+ default : 60
273+ description : Long time window in seconds for rate limiting (only used if enable_rate_limiting
274+ is True).
275+ minimum : 1
276+ title : Rate Limit Window
277+ type : integer
278+ rate_limit_short_requests :
279+ anyOf :
280+ - minimum : 1
281+ type : integer
282+ - type : ' null'
283+ default : 50
284+ description : Maximum number of requests allowed per short time window for burst
285+ protection (only used if enable_rate_limiting is True). If None, short window
286+ limiting is disabled.
287+ title : Rate Limit Short Requests
288+ rate_limit_short_window :
289+ anyOf :
290+ - minimum : 1
291+ type : integer
292+ - type : ' null'
293+ default : 1
294+ description : Short time window for burst protection in seconds (only used if
295+ enable_rate_limiting is True). If None, short window limiting is disabled.
296+ title : Rate Limit Short Window
297+ rate_limit_cleanup_interval :
298+ default : 300
299+ description : Interval in seconds between cleanup operations to prevent memory
300+ leaks (only used if enable_rate_limiting is True).
301+ minimum : 1
302+ title : Rate Limit Cleanup Interval
303+ type : integer
221304 liconic_driver_port :
222305 default : 3333
223306 title : Liconic Driver Port
@@ -226,14 +309,15 @@ config_schema:
226309 default : localhost
227310 title : Liconic Driver Host
228311 type : string
229- liconic_driver_cassette_config :
230- default : C:\Liconic\stxdriver_64bit\DriverConfig\Devices\CassettesConfig1.xml
231- title : Liconic Driver Cassette Config
232- type : string
233- resources_path :
312+ inventory_tracker_path :
234313 default : C:\Users\svcaibio\.madsci\liconic\liconic_resources.yaml
235314 format : path
236- title : Resources Path
315+ title : Inventory Tracker Path
316+ type : string
317+ cassette_config_path :
318+ default : C:\Liconic\stxdriver_64bit\DriverConfig\Devices\CassettesConfig1.xml
319+ format : path
320+ title : Cassette Config Path
237321 type : string
238322 title : LiconicNodeConfig
239323 type : object
0 commit comments