16.8. libeufin-bank.conf(5)¶
16.8.1. Name¶
libeufin-bank.conf - LibEuFin Bank configuration file
16.8.2. Description¶
The configuration file is line-oriented. Blank lines and whitespace at the
beginning and end of a line are ignored. Comments start with #
or %
in the first column (after any beginning-of-line whitespace) and go to the end
of the line.
The file is split into sections. Every section begins with [SECTIONNAME]
and contains a number of options of the form OPTION=VALUE
. There may be
whitespace around the =
(equal sign). Section names and options are
case-insensitive.
The values, however, are case-sensitive. In particular, boolean values are
one of YES
or NO
. Values can include whitespace by surrounding the
entire value with "
(double quote). Note, however, that there are no
escape characters in such strings; all characters between the double quotes
(including other double quotes) are taken verbatim.
Values that represent a time duration are represented as a series
of one or more NUMBER UNIT
pairs, e.g. 60 s
, 4 weeks 1 day
,
5 years 2 minutes
.
Values that represent an amount are in the usual amount syntax:
CURRENCY:VALUE.FRACTION
, e.g. EUR:1.50
.
The FRACTION
portion may extend up to 8 places.
Values that represent filenames can begin with a /bin/sh
-like variable
reference. This can be simple, such as $TMPDIR/foo
, or complex, such as
${TMPDIR:-${TMP:-/tmp}}/foo
. The variables are expanded either using
key-values from the [PATHS]
section (see below) or from the environment
(getenv()
). The values from [PATHS]
take precedence over those from
the environment. If the variable name is found in neither [PATHS]
nor the
environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if FOO=$BAR
and BAR=buzz
then the result is FOO=buzz
. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if BAR=$FOO
in the example above.
The [PATHS]
section is special in that it contains paths that can be
referenced using $
in other configuration values that specify
filenames. Note that configuration options that are not specifically
retrieved by the application as filenames will not see “$”-expressions
expanded. To expand $
-expressions when using taler-config
, you must pass
the -f
command-line option.
The system automatically pre-populates the [PATHS]
section with a few values
at run-time (in addition to the values that are in the actual configuration
file and automatically overwriting those values if they are present).
These automatically generated values refer to installation properties
from GNU autoconf. The
values are usually dependent on an INSTALL_PREFIX
which is determined by
the --prefix
option given to configure. The canonical values are:
LIBEXECDIR = $INSTALL_PREFIX/taler/libexec/
DOCDIR = $INSTALL_PREFIX/share/doc/taler/
ICONDIR = $INSTALL_PREFIX/share/icons/
LOCALEDIR = $INSTALL_PREFIX/share/locale/
PREFIX = $INSTALL_PREFIX/
BINDIR = $INSTALL_PREFIX/bin/
LIBDIR = $INSTALL_PREFIX/lib/taler/
DATADIR = $INSTALL_PREFIX/share/taler/
Note that on some platforms, the given paths may differ depending on how the system was compiled or installed, the above are just the canonical locations of the various resources. These automatically generated values are never written to disk.
Files containing default values for many of the options described below
are installed under $TALER_PREFIX/share/libeufin-bank/config.d/
.
The configuration file given with -c to Taler binaries
overrides these defaults.
A configuration file may include another, by using the @INLINE@
directive,
for example, in main.conf
, you could write @INLINE@ sub.conf
to
include the entirety of sub.conf
at that point in main.conf
.
Be extra careful when using taler-config -V VALUE
to change configuration
values: it will destroy all uses of @INLINE@
and furthermore remove all
comments from the configuration file!
16.8.2.1. GLOBAL OPTIONS¶
The following options are from the “[libeufin-bank]” section.
- CURRENCY
Internal currency of the libeufin-bank, e.g. “EUR” for Euro.
- WIRE_TYPE
Supported payment target type, this can either be
iban
orx-taler-bank
- IBAN_PAYTO_BIC
Bank BIC used in generated iban payto URI. Required if
WIRE_TYPE``is ``iban
- X_TALER_BANK_PAYTO_HOSTNAME
Bank hostname used in generated x-taler-bank payto URI. Required if
WIRE_TYPE``is ``x-taler-bank
- NAME
Bank display name, used in webui and TAN messages. Defaults to
Taler Bank
if not specified.- BASE_URL
The advertised base URL
- WIRE_TRANSFER_FEES
Wire transfer execution fees. Only applies to bank transactions and withdrawals. Defaults to
CURRENCY:0
if not specified.- MIN_WIRE_TRANSFER_AMOUNT
Minimum wire transfer amount allowed. Only applies to bank transactions and withdrawals. Defaults to no limit.
- MAX_WIRE_TRANSFER_AMOUNT
Maximum wire transfer amount allowed. Only applies to bank transactions and withdrawals. Defaults to no limit.
- DEFAULT_DEBT_LIMIT
Default debt limit for newly created accounts. Defaults to
CURRENCY:0
if not specified.- REGISTRATION_BONUS
Value of the registration bonus for new users. Defaults to
CURRENCY:0
if not specified.- ALLOW_REGISTRATION
Whether anyone can create a new account or whether this action is reserved for the admin. Defaults to
NO
if not specified.- ALLOW_ACCOUNT_DELETION
Whether anyone can delete its account or whether this action is reserved for the admin. Defaults to
NO
if not specified.- ALLOW_EDIT_NAME
Whether anyone can edit their legal name or whether this action is reserved for the admin. Defaults to
NO
if not specified.- ALLOW_EDIT_CASHOUT_PAYTO_URI
Whether anyone can edit their cashout account or whether this action is reserved for the admin. Defaults to
NO
if not specified.- ALLOW_CONVERSION
Whether regional currency conversion is enabled. Defaults to
NO
if not specified.- FIAT_CURRENCY
External currency used during cashin and cashout. Only used if
ALLOW_CONVERSION
isYES
.- TAN_SMS
Path to TAN challenge transmission script via sms. If not specified, this TAN channel will not be supported. Only used if
ALLOW_CONVERSION
isYES
.- TAN_EMAIL
Path to TAN challenge transmission script via email. If not specified, this TAN channel will not be supported. Only used if
ALLOW_CONVERSION
isYES
.- TAN_SMS_ENV
Environment variables for the sms TAN script as a single-line JSON object Only used if
TAN_SMS
is set.- TAN_EMAIL_ENV
Environment variables for the email TAN script as a single-line JSON object Only used if
TAN_EMAIL
is set.- SERVE
This can either be
tcp
orunix
.- PORT
Port on which the HTTP server listens, e.g. 9967. Only used if
SERVE
istcp
.- BIND_TO
Which IP address should we bind to? E.g.
127.0.0.1
or::1``for loopback. Can also be given as a hostname. Only used if ``SERVE
istcp
.- UNIXPATH
Which unix domain path should we bind to? Only used if
SERVE
isunix
.- UNIXPATH_MODE
What should be the file access permissions for
UNIXPATH
? Only used ifSERVE
isunix
.- SUGGESTED_WITHDRAWAL_EXCHANGE
Exchange that is suggested to wallets when withdrawing
- PWD_HASH_ALGORITHM
Password hash algorithm, this can only be
bcrypt
- PWD_HASH_CONFIG
Password hash algorithm configuration as a single-line JSON object When
PWD_HASH_ALGORITHM
isbcrypt
you can configurecost
- GC_ABORT_AFTER
Time after which pending operations are aborted during garbage collection
- GC_CLEAN_AFTER
Time after which aborted operations and expired items are deleted during garbage collection
- GC_DELETE_AFTER
Time after which all bank transactions, operations and deleted accounts are deleted during garbage collection
16.8.2.2. DATABASE OPTIONS¶
Setting the database belongs to the “[libeufin-bankdb-postgres]” section and the following value.
- CONFIG
PostgreSQL connection string.
- SQL_DIR
Where are the SQL files to setup our tables?
16.8.3. SEE ALSO¶
libeufin-bank(1).
16.8.4. BUGS¶
Report bugs by using https://bugs.taler.net/ or by sending electronic mail to <taler@gnu.org>.