90 lines
No EOL
3.3 KiB
Markdown
90 lines
No EOL
3.3 KiB
Markdown
# 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 (Still a WIP)
|
|
|
|
To get started with development, first clone the repository.
|
|
|
|
You will need pnpm installed globally. You can install it by running `npm install -g pnpm` in your terminal.
|
|
|
|
|
|
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: (NOT IMPLEMENTED YET)
|
|
Default Org Id: 1
|
|
Default Org Name: WaterWolf
|
|
Default Org Slug: waterwolf
|
|
|
|
The default user that is created is: (NOT IMPLEMENTED YET)
|
|
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.
|
|
|
|
```bash
|
|
pnpm install
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
pnpm start
|
|
```
|
|
|
|
|
|
## Configuration
|
|
|
|
This uses `@nestjs/config` which uses [dotenv](https://github.com/motdotla/dotenv).
|
|
Configuration can be done by using a `.env` file or environment variables.
|
|
|
|
Application Configuration
|
|
- `BASE_URL` - Base URL for the application
|
|
- `APP_NAME` - Name of the application (default: `Waterwolf Identity`)
|
|
|
|
Database Configuration
|
|
- `DATABASE_HOST` - Hostname for the database
|
|
- `DATABASE_PORT` - Port for the database
|
|
- `DATABASE_USER` - Username for the database
|
|
- `DATABASE_PASSWORD` - Password for the database
|
|
- `DATABASE_NAME` - Name of the database
|
|
|
|
Database Debug Configuration
|
|
- `DATABASE_SYNCHRONIZE` - Synchronize the database schema
|
|
- `DATABASE_DISABLE_MIGRATIONS` - Disable migrations
|
|
- `DATABASE_DEBUG_LOGGING` - Enable debug logging for the database
|
|
|
|
Redis Configuration
|
|
- `REDIS_HOST` - Hostname for the Redis server
|
|
- `REDIS_PORT` - Port for the Redis server
|
|
- `REDIS_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 API
|
|
- `POSTAL_API_KEY` - API Key for the Postal API
|
|
- `FROM_EMAIL` - Email address to send emails from
|
|
|
|
## Credits
|
|
|
|
- [ConiCaw](https://github.com/ttshivers) - Teaching Kakious about documentation and base documenation from other projects
|
|
- [Kakious](https://rawr.ing) - Main Developer and Documentation Writer |