3.5 KiB
Waterwolf Identity Solution
Description
This is the identity service for the Waterwolf project. It is a NestJS application that provides an API for managing users and authentication.
Development
To get started with development, first clone the repository.
Create a GitHub classic PAT with permission to read repos and packages in order to be able to install the private furality npm packages .
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic
Create the token and put it in a file in the root of the repository named .github_token
.
Then install vscode which supports devcontainers and open the repository in vscode as a devcontainer. This will set up all the necessary supporting services needed to run, test, and debug this service.
Once it finishes building initially, goto the testing tab of vscode and run the tests to make sure they pass and that your environment is properly set up.
Next, you can start up the app by going to the run and debug tab and selecting the nest start watch
task.
Once it is started, in the bottom pane of vscode, goto the PORTS tab and look for the Application port
row.
Either right click or copy the forwarded address to open it in your browser and then navigate to the path:
http://localhost:{PORT}/v1/api/ to ensure it has started correctly
Documentation
Currently the documentation is a work in progress. The documentation is generated using the OpenAPI specification and can be found at the /v1/api
path of the service.
The current defaults that are generated at initialization are: Default Org Id: 1 Default Org Name: WaterWolf Default Org Slug: waterwolf
The default user that is created is: Username: admin Password: changeme
Default email templates are stored in /mail folder. These are loaded into the DB on first load of the service and can be modified in the DB after that.
Installation
Use pnmp to install the required packages.
pnpm install
Usage
pnpm start
Configuration
This uses @nestjs/config
which uses dotenv.
Configuration can be done by using a .env
file or environment variables.
Application Configuration
BASE_URL
- Base URL for the applicationAPP_NAME
- Name of the application (default:Waterwolf Identity
)
Database Configuration
DATABASE_HOST
- Hostname for the databaseDATABASE_PORT
- Port for the databaseDATABASE_USER
- Username for the databaseDATABASE_PASSWORD
- Password for the databaseDATABASE_NAME
- Name of the database
Database Debug Configuration
DATABASE_SYNCHRONIZE
- Synchronize the database schemaDATABASE_DISABLE_MIGRATIONS
- Disable migrationsDATABASE_DEBUG_LOGGING
- Enable debug logging for the database
Redis Configuration
REDIS_HOST
- Hostname for the Redis serverREDIS_PORT
- Port for the Redis serverREDIS_PASSWORD
- Password for the Redis server (Optional)REDIS_DB
- Database number for the Redis server (Optional)
Mailing Configuration
POSTAL_BASE_URL
- Base URL for the Postal APIPOSTAL_API_KEY
- API Key for the Postal APIFROM_EMAIL
- Email address to send emails from