summaryrefslogtreecommitdiff
path: root/doc/configuration-format.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/configuration-format.texi')
-rw-r--r--doc/configuration-format.texi73
1 files changed, 73 insertions, 0 deletions
diff --git a/doc/configuration-format.texi b/doc/configuration-format.texi
new file mode 100644
index 000000000..6453ba601
--- /dev/null
+++ b/doc/configuration-format.texi
@@ -0,0 +1,73 @@
+@c This file is used both in the exchange and merchant
+@c manuals. Edits should be propagated to both Gits!
+
+@node Configuration format
+@section Configuration format
+@cindex configuration
+
+In Taler realm, any component obeys to the same pattern to get configuration
+values. According to this pattern, once the component has been installed, the
+installation deploys default values in @cite{$@{prefix@}/share/taler/config.d/}, in
+@cite{.conf} files. In order to override these defaults, the user can write a custom
+@cite{.conf} file and either pass it to the component at execution time, or name it
+@cite{taler.conf} and place it under @cite{$HOME/.config/}.
+
+
+A config file is a text file containing @cite{sections}, and each section contains
+its @cite{values}. The right format follows:
+
+@example
+[section1]
+value1 = string
+value2 = 23
+
+[section2]
+value21 = string
+value22 = /path22
+@end example
+
+Throughout any configuration file, it is possible to use @code{$}-prefixed variables,
+like @code{$VAR}, especially when they represent filesystem paths.
+It is also possible to provide defaults values for those variables that are unset,
+by using the following syntax: @code{$@{VAR:-default@}}.
+However, there are two ways a user can set @code{$}-prefixable variables:
+
+by defining them under a @code{[paths]} section, see example below,
+
+@example
+[paths]
+TALER_DEPLOYMENT_SHARED = $@{HOME@}/shared-data
+..
+[section-x]
+path-x = $@{TALER_DEPLOYMENT_SHARED@}/x
+@end example
+
+or by setting them in the environment:
+
+@example
+$ export VAR=/x
+@end example
+
+The configuration loader will give precedence to variables set under @code{[path]},
+though.
+
+The utility @code{taler-config}, which gets installed along with the exchange, serves
+to get and set configuration values without directly editing the @cite{.conf}.
+The option @code{-f} is particularly useful to resolve pathnames, when they use
+several levels of @code{$}-expanded variables. See @code{taler-config --help}.
+
+Note that, in this stage of development, the file @code{$HOME/.config/taler.conf}
+can contain sections for @emph{all} the component. For example, both an exchange and
+a bank can read values from it.
+
+The repository @code{git://taler.net/deployment} contains examples of configuration
+file used in our demos. See under @code{deployment/config}.
+
+@cartouche
+@quotation Note
+Expectably, some components will not work just by using default values, as their
+work is often interdependent. For example, a merchant needs to know an exchange
+URL, or a database name.
+@end quotation
+@end cartouche
+