Authentication
- Username and password sign-in; there is no public self-registration
- Passwords stored as bcrypt hashes, never in recoverable form
- Signed JWT sessions with a configurable lifetime
- A sign-in guard that requires additional verification after repeated failed attempts
- Self-service password change, and administrator-initiated reset