X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fafb-daemon-options.md;h=d8618bba1f73ed514787d71fcb38611992d5988e;hb=87446697d54dd1eebe2f4b5528520af7a0e8f027;hp=84f7ce98465b9231e8866ef0f8b2ec8ddb88f035;hpb=98b3f3bfed183a89eec13386d5138ef73b13ea34;p=src%2Fapp-framework-binder.git diff --git a/docs/afb-daemon-options.md b/docs/afb-daemon-options.md index 84f7ce98..d8618bba 100644 --- a/docs/afb-daemon-options.md +++ b/docs/afb-daemon-options.md @@ -1,200 +1,354 @@ - -Launching options of afb-daemon ---------------------- +# Launching options of afb-daemon The launch options for binder **afb-daemon** are: - --help +``` + -v, --verbose Verbose Mode, repeat to increase verbosity + -c, --color Colorize the ouput + -q, --quiet Quiet Mode, repeat to decrease verbosity + -l, --log=xxxx Tune log level + --foreground Get all in foreground mode + --background Get all in background mode + -D, --daemon Get all in background mode + -n, --name=xxxx Set the visible name + -p, --port=xxxx HTTP listening TCP port [default 1234] + --roothttp=xxxx HTTP Root Directory [default no root http (files not served but apis still available)] + --rootbase=xxxx Angular Base Root URL [default /opa] + --rootapi=xxxx HTML Root API URL [default /api] + --alias=xxxx Multiple url map outside of rootdir [eg: --alias=/icons:/usr/share/icons] + --apitimeout=xxxx Binding API timeout in seconds [default 20] + --cntxtimeout=xxxx Client Session Context Timeout [default 32000000] + --cache-eol=xxxx Client cache end of live [default 100000] + -w, --workdir=xxxx Set the working directory [default: $PWD or current working directory] + -u, --uploaddir=xxxx Directory for uploading files [default: workdir] relative to workdir + --rootdir=xxxx Root Directory of the application [default: workdir] relative to workdir + --ldpaths=xxxx Load bindings from dir1:dir2:... [default: path of afb-dbus-binding.so] + -b, --binding=xxxx Load the binding of path + --weak-ldpaths=xxxx Same as --ldpaths but ignore errors + --no-ldpaths Discard default ldpaths loading + -t, --token=xxxx Initial Secret [default=random, use --token= to allow any token] + -r, --random-token Enforce a random token + -V, --version Display version and copyright + -h, --help Display this help + --ws-client=xxxx Bind to an afb service through websocket + --ws-server=xxxx Provide an afb service through websockets + -A, --auto-api=xxxx Automatic load of api of the given directory + --session-max=xxxx Max count of session simultaneously [default 200] + --tracereq=xxxx Log the requests: no, common, extra, all + --traceevt=xxxx Log the events: no, common, extra, all + --traceses=xxxx Log the sessions: no, all + --traceapi=xxxx Log the apis: no, common, api, event, all + --traceglob=xxxx Log the globals: none, all + --traceditf=xxxx Log the daemons: no, common, all + --tracesvc=xxxx Log the services: no, all + --call=xxxx call at start, format of val: API/VERB:json-args + --no-httpd Forbid HTTP service + -e, --exec Execute the remaining arguments + -M, --monitoring Enable HTTP monitoring at /monitoring/ + -C, --config=xxxx Load options from the given config file + -Z, --dump-config Dump the config to stdout and exit + -s, --set=xxxx Set parameters ([API]/[KEY]:JSON or {"API":{"KEY":JSON}} + -o, --output=xxxx Redirect stdout and stderr to output file (when --daemon) + --trap-faults=xxxx Trap faults: on, off, yes, no, true, false, 1, 0 (default: true) +``` + +## help + +Prints help with available options + +## version + +Display version and copyright + +## verbose + +Increases the verbosity, can be repeated + +## color + +Add basic colorization to the ouput. + +## quiet + +Decreases the verbosity, can be repeated + +## log=xxxx + +Tune the log level mask. The levels are: + + - error + - warning + - notice + - info + - debug + +The level can be set using + or -. + +| Examples | descritpion +|-----------------|------------------- +| error,warning | selects only the levels error and warning +| +debug | adds level debug to the current verbosity +| -warning | remove the level warning from the current verbosity +| +warning-debug,info | Adds error and remove errors and warnings + +## port=xxxx + +HTTP listening TCP port [default 1234] + +## workdir=xxxx + +Directory where the daemon must run [default: $PWD if defined +or the current working directory] + +## uploaddir=xxxx + +Directory where uploaded files are temporarily stored [default: workdir] + +## rootdir=xxxx + +Root directory of the application to serve [default: workdir] + +## roothttp=xxxx + +Directory of HTTP served files. If not set, files are not served +but apis are still accessible. + +## rootbase=xxxx + +Angular Base Root URL [default /opa] + +This is used for any application of kind OPA (one page application). +When set, any missing document whose url has the form /opa/zzz +is translated to /opa/#!zzz + +## rootapi=xxxx + +HTML Root API URL [default /api] + +The bindings are available within that url. - Prints help with available options +## alias=xxxx - --version +Maps a path located anywhere in the file system to the +a subdirectory. The syntax for mapping a PATH to the +subdirectory NAME is: --alias=/NAME:PATH. - Display version and copyright +Example: --alias=/icons:/usr/share/icons maps the +content of /usr/share/icons within the subpath /icons. - --verbose +This option can be repeated. - Increases the verbosity, can be repeated +## apitimeout=xxxx - --quiet +binding API timeout in seconds [default 20] - Decreases the verbosity, can be repeated +Defines how many seconds maximum a method is allowed to run. +0 means no limit. - --port=xxxx +## cntxtimeout=xxxx - HTTP listening TCP port [default 1234] +Client Session Timeout in seconds [default 32000000 that is 1 year] - --workdir=xxxx +## cache-eol=xxxx - Directory where the daemon must run [default: $PWD if defined - or the current working directory] +Client cache end of live [default 100000 that is 27,7 hours] - --uploaddir=xxxx +## session-max=xxxx - Directory where uploaded files are temporarily stored [default: workdir] +Maximum count of simultaneous sessions [default 200] - --rootdir=xxxx +## ldpaths=xxxx - Root directory of the application to serve [default: workdir] +Load bindings from given paths separated by colons +as for dir1:dir2:binding1.so:... [default = $libdir/afb] - --roothttp=xxxx +You can mix path to directories and to bindings. +The sub-directories of the given directories are searched +recursively. - Directory of HTTP served files. If not set, files are not served - but apis are still accessible. +The bindings are the files terminated by '.so' (the extension +so denotes shared object) that contain the public entry symbol. - --rootbase=xxxx +## weak-ldpaths=xxxx - Angular Base Root URL [default /opa] +Same as --ldpaths but instead of stopping on error, ignore errors and continue. - This is used for any application of kind OPA (one page application). - When set, any missing document whose url has the form /opa/zzz - is translated to /opa/#!zzz +## binding=xxxx - --rootapi=xxxx +Load the binding of given path. - HTML Root API URL [default /api] +## token=xxxx - The bindings are available within that url. +Initial Secret token to authenticate. - --alias=xxxx +If not set, no client can authenticate. - Maps a path located anywhere in the file system to the - a subdirectory. The syntax for mapping a PATH to the - subdirectory NAME is: --alias=/NAME:PATH. +If set to the empty string, then any initial token is accepted. - Example: --alias=/icons:/usr/share/icons maps the - content of /usr/share/icons within the subpath /icons. +## random-token - This option can be repeated. +Generate a random starting token. See option --exec. - --apitimeout=xxxx +## ws-client=xxxx - binding API timeout in seconds [default 20] +Transparent binding to a binder afb-daemon service through a WebSocket. - Defines how many seconds maximum a method is allowed to run. - 0 means no limit. +The value of xxxx is either a unix naming socket, of the form "unix:path/api", +or an internet socket, of the form "host:port/api". - --cntxtimeout=xxxx +## ws-server=xxxx - Client Session Timeout in seconds [default 3600] +Provides a binder afb-daemon service through WebSocket. - --cache-eol=xxxx +The value of xxxx is either a unix naming socket, of the form "unix:path/api", +or an internet socket, of the form "host:port/api". - Client cache end of live [default 100000 that is 27,7 hours] +## foreground - --session-max=xxxx +Get all in foreground mode (default) - Maximum count of simultaneous sessions [default 10] +## daemon - --ldpaths=xxxx +Get all in background mode - Load bindings from given paths separated by colons - as for dir1:dir2:binding1.so:... [default = $libdir/afb] +## no-httpd - You can mix path to directories and to bindings. - The sub-directories of the given directories are searched - recursively. +Forbids HTTP serve - The bindings are the files terminated by '.so' (the extension - so denotes shared object) that contain the public entry symbol. +## exec - --binding=xxxx +Must be the last option for afb-daemon. The remaining +arguments define a command that afb-daemon will launch. +The sequences @p, @t and @@ of the arguments are replaced +with the port, the token and @. - Load the binding of given path. +## tracereq=xxxx - --token=xxxx +Trace the processing of requests in the log file. - Initial Secret token to authenticate. +Valid values are 'no' (default), 'common', 'extra' or 'all'. - If not set, no client can authenticate. +## traceapi=xxxx - If set to the empty string, then any initial token is accepted. +Trace the accesses to functions of class api. - --random-token +Valid values are 'no' (default), 'common', 'api', 'event' or 'all'. - Generate a random starting token. See option --exec. +## traceevt=xxxx - --mode=xxxx +Trace the accesses to functions of class event. - Set the mode: either local, remote or global. +Valid values are 'no' (default), 'common', 'extra' or 'all'. - The mode indicate if the application is run locally on the host - or remotely through network. +## call=xxx - --dbus-client=xxxx +Call a binding at start (can be be repeated). +The values are given in the form API/VERB:json-args. - Transparent binding to a binder afb-daemon service through dbus. +Example: --call 'monitor/set:{"verbosity":{"api":"debug"}}' - It creates an API of name xxxx that is implemented remotely - and queried via DBUS. +## monitoring - --dbus-server=xxxx +Enable HTTP monitoring at /monitoring/ - Provides a binder afb-daemon service through dbus. +## name=xxxx - The name xxxx must be the name of an API defined by a binding. - This API is exported through DBUS. +Set the visible name - --ws-client=xxxx +## auto-api=xxxx - Transparent binding to a binder afb-daemon service through a WebSocket. +Automatic activation of api of the given directory when the api is missing. - The value of xxxx is either a unix naming socket, of the form "unix:path/api", - or an internet socket, of the form "host:port/api". +## config=xxxx - --ws-server=xxxx +Load options from the given config file - Provides a binder afb-daemon service through WebSocket. +This can be used instead of arguments on the command line. - The value of xxxx is either a unix naming socket, of the form "unix:path/api", - or an internet socket, of the form "host:port/api". +Example: - --foreground + afb-daemon \ + --no-ldpaths \ + --binding /home/15646/bindings/binding45.so \ + --binding /home/15646/bindings/binding3.so \ + --tracereq common \ + --port 5555 \ + --token SPYER \ + --set api45/key:54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72 \ + --exec /home/15646/bin/test654 @p @t - Get all in foreground mode (default) +is equivalent to: - --daemon + afb-daemon --config /home/15646/config1 - Get all in background mode +when the file **/home/15646/config1** is: - --no-httpd + { + "no-ldpaths": true, + "binding": [ + "\/home\/15646\/bindings\/binding45.so", + "\/home\/15646\/bindings\/binding3.so" + ], + "tracereq": "common", + "port": 5555, + "token": "SPYER", + "set" : { + "api45": { + "key": "54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72" + } + }, + "exec": [ + "\/home\/15646\/bin\/test654", + "@p", + "@t" + ] + } - Forbids HTTP serve +The options are the keys of the config object. - --exec +See option --dump-config - Must be the last option for afb-daemon. The remaining - arguments define a command that afb-daemon will launch. - The sequences @p, @t and @@ of the arguments are replaced - with the port, the token and @. +## dump-config - --tracereq=xxxx +Output a JSON representation of the configuration resulting from +environment and options. - Trace the processing of requests in the log file. +## output=xxxx - Valid values are 'no' (default), 'common', 'extra' or 'all'. +Redirect stdout and stderr to output file - --traceditf=xxxx +## set=xxxx - Trace the accesses to functions of class daemon. +Set values that can be retrieved by bindings. - Valid values are 'no' (default), 'common', 'extra' or 'all'. +The set value can have different formats. - --tracesvc=xxxx +The most generic format is **{"API1":{"KEY1":VALUE,"KEY2":VALUE2,...},"API2":...}** - Trace the accesses to functions of class service. +This example set 2 keys for the api *chook*: - Valid values are 'no' (default) or 'all'. + afb-daemon -Z --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}' + { + "set": { + "chook": { + "account": "urn:chook:b2ca5ddb97679", + "delay": 500 + } + } + } - --traceevt=xxxx +An other format is: **[API]/[KEY]:VALUE**. +When API is omitted, it take the value "*". +When KEY is ommitted, it take the value of "*". - Trace the accesses to functions of class event. +The settings for the API \* are globals and apply to all bindings. - Valid values are 'no' (default), 'common', 'extra' or 'all'. +The settings for the KEY \* are mixing the value for the API. - --call=xxx +The following examples are all setting the same values: - Call a binding at start (can be be repeated). - The values are given in the form API/VERB:json-args. + afb-daemon --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}' + afb-daemon --set 'chook/*:{"account":"urn:chook:b2ca5ddb97679","delay":500}' + afb-daemon --set 'chook/:{"account":"urn:chook:b2ca5ddb97679","delay":500}' + afb-daemon --set 'chook/account:"urn:chook:b2ca5ddb97679"' --set chook/delay:500 - Example: --call 'monitor/set:{"verbosity":{"api":"debug"}}'