Server configuration
The server configuration file model_api_server.cfg is used to set server related parameters and can be found in the root directory of the aime-api-server repository. Is it divided to certain sections explained in detail below.
Basic Server Parameters
The basic server parameters like its address and the location of the endpoint config files are set in the section [SERVER]:
port
(int): The port of the AIME API Serverhost
(str): The IP address of the AIME API Serverendpoint_configs
(str): The location of the endpoint configuration files. Default location is"./endpoints"
Example:
[SERVER]
port = 0000
host = "0.0.0.0"
endpoint_configs = "./endpoints"
Sanic Server Parameters
The sanic server parameters like its address and the location of the endpoint config files are set in the section [SANIC]:
access_log
(bool): How long to hold a TCP connection open in seconds. Default =false
proxies_count
(int): The number of proxy servers in front of the app. Default =None
keep_alive_timeout
(int): How long to hold a TCP connection open in seconds. Default =120
keep_alive
(bool): Disables keep-alive when False. Default =true
request_buffer_size
(int): Request buffer size in bytes before request is paused. Default =65536
request_max_size
(int): How big a request may be in bytes. Default =100000000
request_max_header_size
(int): How big a request header may be in bytes. Default =8192
request_timeout
(int): How long a request can take to arrive in seconds. Default =60
response_timeout
(int): How long a response can take to process in seconds. Default =60
websocket_max_size
(int): Maximum size for incoming messages in bytes. Default =1048576
websocket_ping_interval
(int): A Ping frame is sent every ping_interval seconds. Default =20
websocket_ping_timeout
(int): Connection is closed when Pong is not received after ping_timeout seconds. Default =20
Example:
[SANIC]
access_log = false
proxies_count = 1
keep_alive_timeout = 10
keep_alive = true
request_buffer_size = 65536
request_max_size = 100000000
request_max_header_size = 8192
request_timeout = 60
response_timeout = 60
websocket_max_size = 1048576
websocket_ping_interval = 20
websocket_ping_timeout = 20
Administrator Parameters
The section [ADMIN] deals with administrator backend related settings:
user
(str): The name of the administratorpassword
(str): The password of the administrator
Example:
[ADMIN]
user = "admin"
password = ""
Worker Parameters
default_job_timeout
(int): Default timeout in seconds after the worker will receive the response “no_job”, if no job was offereddefault_auth_key
(str): The default worker authorization key is used if the endpoint configuration file doesn’t contain the authorization key
Settings concerning the workers like job_timeout and default auth keys are to be configured in the section [WORKERS]
Example:
[WORKERS]
default_job_timeout = 60
default_auth_key = "XXX"
Client Parameters
Default configuration concerning the clients like its authorization and authentication, if not specified in the endpoint configuration file. To have different behaviour in specific endpoints
default_authentication
(str): Default method for the client login authenticationAvailable settings:
"None"
(default): The client login request has no restrictions"User"
: The client login request has to contain the name of the user
default_authorization
(str): Default method for the client login authorizationdefault_authorization_keys
(dict): Authorized user name - key pairs{ "name" = "key" }
Available settings:
"None"
(default): The client login request has no restrictions"Key"
: The client login request has to contain the name of the user (default_authentication
has to be"User"
) and the related key listed indefault_authorization_keys
default_provide_worker_meta_data
(bool): Whether the client receives meta data about the job from the worker. Default =false
default_client_request_limit
(int): The default maximum allowed number of requests per client.0
= not limited. Default =0
Example:
[CLIENTS]
default_authentication = "User"
default_authorization = "Key"
default_authorization_keys = { "aime" = "XXX" }
default_provide_worker_meta_data = true
default_client_request_limit = 0
Input Parameters
Attribute restrictions of certain input parameter types can be set in the section [INPUTS]
. Be aware that all input parameters of that type having attributes with values not being allowed here will be rejected no matter of the supported values in the endpoint configuration file!
See section in Input Parameters in documentation of the endpoint configuration for supported attributes and its supported values.
Example:
[INPUTS]
image.format = { allowed = [ "png", "jpeg" ] }
audio.format = { allowed = [ "wav", "mp3", "ogg", "webm", "mp4" ] }
Static Routes
In the section [STATIC]
the static routes can be redirected to a desired destination. All destinations here are relative to the location of the configuration file.
file
(str): To redirect a single filepath
(str): To redirect a whole pathcompile
(str): To compile certain file types to a designated formatAvailable values:
"None"
(default): No compilation."scss"
: scss files will be compiled to css and saved incompiled_path
."md"
: Markdown files will be compiled to html sand saved incompiled_path
with related css file incss_file
.
compiled_path
(str): Path to save the compiled filescss_file
(str): Destination to the related css files for html compiled files
Example:
[STATIC]
"/desired/destination/to/the/js/client/interface.js" = { file = "./frontend/static/js/model_api.js" }
"/desired/destination/to/your/frontend/folder/" = { path = "./frontend/" }
"/desired/destination/to/your/css/folder" = {compile = "scss", path = "./frontend/scss", compiled_path = "./frontend/static/_compiled_/css", }
"/desired/destination/to/your/readme.html" = { compile = "md", file = "./destination/to/your/md/readme/README.md", compiled_path = "./destination/to/save/your/compiled/html/", css_file = "./destination/to/your/css/file/md_style.css" }
"/desired/destination/to/your/documentation/path/" = { path = "./destination/to/your/documentation/path/" }