Allow users to configure the TOTP Algorithm and Digits. This should be used with caution as many TOTP applications do not support it. Some will also fail to notify the user that there is an issue. i.e. if the algorithm in the QR code is sha512, they continue to generate one time passwords with sha1. In addition this drastically refactors TOTP in general to be more user friendly by not forcing them to register a new device if the administrator changes the period (or algorithm).
Fixes#1226.
This is a massive overhaul to the SQL Storage for Authelia. It facilitates a whole heap of utility commands to help manage the database, primary keys, ensures all database requests use a context for cancellations, and paves the way for a few other PR's which improve the database.
Fixes#1337
* Check for pnpm in authelia-scripts
* Improve husky hooks to check for required apps
* Use pnpm in coverage dockerfile
* Use pnpm in dev workflow
* Stop buildx log truncation
* Ignore pnpm lockfile in yamllint
* Update versions required for docker and docker-compose in contributing docs
* ci: add husky with pre-commit and commit-msg hooks
This change includes two new hooks as part of our GitHub workflow with husky:
* `pre-commit`: Performs linting with golangci-lint and eslint/prettier
* `commit-msg`: Ensures that the commit messages conform to our guidelines and will error and provide context to a user when they do not.
The `prepare` command which has been included is executed each time a `yarn install` is executed.
* ci: extend @commitlint/config-conventional configuration
* fix: lint all dot js files
Updated all links to use https://www.authelia.com/docs/.
Removed all comment sections from documented configuration on the documentation site and replaced them with their own sections.
Made all documentation inside config.template.yml double hashes, and made all commented configuration sections single quoted.
Added .yamllint.yaml to express our desired YAML styles.
Added a style guide.
Refactored many documentation areas to be 120 char widths where possible. It's by no means exhaustive but is a large start.
Added a statelessness guide for the pending Kubernetes chart introduction.
Added labels to configuration documentation and made many areas uniform.
* [Docker] Create Lite docker-compose.yml example
* [Docker] Update README.md with 3 compose bundles {Local,Lite,Full}
* [DOCS] Update Traefik2 proxy example
* [Docker] Create Local docker-compose.yml example
* [MISC] Update examples to utilise Traefik 2.2
This change enables global http -> https redirection.
* [Docker] Update Local compose to utilise loopback address
* [Docker] Drop compose version to 3.3 to cater for more distros
* [DOCS] Adjust Getting Started
* [Docker] Tweak Local bundle setup for OSX
* [Docker] Optimise setup.sh for Local bundle
* [Docker] Fix read-only mounting of user database
* [DOCS] Implement feedback for compose bundles
* [DOCS] Provide feedback on self-signed certificates
* [DOCS] Implement additional feedback for compose bundles
Co-authored-by: Clément Michaud <clement.michaud34@gmail.com>