A fully customizable user management REST API.
Read the Documentation
Features •
Running Locally •
Running on Kubernetes •
Client Libraries •
Changelog
Features
- Connects to AWS DynamoDB or MongoDB
- REST API for CRUD (Create/Retrieve/Update/Delete) operations
- Built-in email verification with AWS Simple Email Service
- Server-side password hashing
- Support for both Basic Auth and OAuth 2.0
- Customizable user properties with validation
- Customizable email message contents
- Generated OpenAPI (Swagger) specification
- Metrics and healthchecks
- Official Docker Image and Helm Chart
- Multiple native client libraries
Running Locally
Fork this repo on GitHub. Then, clone your forked repo onto your machine
and navigate to the created directory.
$ git clone YOUR-FORK-URL
$ cd thunder
Compile and package the source code with Maven.
$ mvn package
Start up local dependencies (DynamoDB and SES) in the background so that Thunder can perform all functionality.
$ node scripts/tools/run-local-dependencies.js &
Run the packaged jar.
$ java -jar application/target/application-*.jar server config/local-dev-config.yaml
Thunder should now be running on localhost port 8080!
Running on Kubernetes
The official Thunder Docker image is published on Docker Hub.
Thunder is deployed through a Helm chart. See the scripts/deploy/helm/thunder
directory for steps
on deploying through Helm.
Further Documentation
Full documentation can be found on ReadTheDocs.
For Thunder development documentation, refer to the wiki
for information on how to build and write tests.