These changes refactor the router handling into its own package to keep
main.go clean. Also API handlers are here refactored to their corresponding
files.
This commit adds a LICENSE file to the repository root and begins the
process of migrating from the preliminary MIT license we chose to the
Apache License 2.0
This commit adds the ability to provide a config file in different ways:
The following options are given in the order in which they are checked:
1. A config file path passed by the -c parameter on the command line
2. A config file path passed by the HS_CONFIGFILE environment variable
3. A config.json file in the application root
Should these fail we try to get the parameters for the config struct
directly from environment variables or secret files as used in a
container environment. As example the JwtKey can be supplied by either
passing the value through:
* An environment variable HS_CONFIG_JWTKEY which contains the value directly
* An environment variable HS_CONFIG_JWTKEY_FILE which contains a path
pointing to the Secret File
We should not hardcode the database name at different places in
db.Init(). This will allow to make the database path configurable
in a later change, and importantly prevent discrepancies