Configuration files
The server reads an existing XML configuration with one coordinator root and a required logger section. It applies the file at startup; edits require a restart.
Configuration path
Without --config-file, the server finds config.xml beside the executable. A relative explicit path starts at the working directory. --db selects a database file independently and does not change where configuration is found.
The server does not generate or rewrite these files.
Server example
<coordinator>
<listen_host>127.0.0.1</listen_host>
<tcp_port>7400</tcp_port>
<http_port>7401</http_port>
<users_config>users.xml</users_config>
<logger>
<level>information</level>
<log>server.log</log>
<errorlog>server.err.log</errorlog>
<size>10M</size>
<count>3</count>
</logger>
</coordinator>Users example
Create users.xml in the configuration directory:
<coordinator>
<users>
<default><password></password></default>
</users>
</coordinator>Start the server
./coordinator serve --config-file config.xml --db data.dbPaths and validation
Relative users and log paths start at the configuration directory, independently of --db. Unknown or duplicate elements, attributes, namespaces, invalid numbers and missing required sections are configuration errors.
Comments, CDATA and standard XML entities are accepted. DTD declarations are rejected.
Credentials
A user has exactly one password or password_sha256_hex field. The latter contains a 64-character SHA-256 digest. An optional api_key_sha256_hex associates an HTTP Bearer key with the same user.
Usernames are case-sensitive identifiers. Duplicate users and shared API-key digests are rejected. Password and API-key changes require a restart.