A OIDC compatible auth system written in NodeJS. Based off of Kakious's AuthCore Projects
Find a file
Kakious 178d922f24 feat: implement swagger plugin
refactor: move views into a seperate controller for ease of management
2024-10-15 12:58:41 -04:00
.devcontainer feat: inital workings of service 2024-07-18 21:59:27 -04:00
assets feat: templates and working oidc core 2024-07-26 02:31:29 -04:00
docs feat: email templates 2024-07-30 16:39:31 -04:00
keys feat: inital workings of service 2024-07-18 21:59:27 -04:00
mail fix: file extension 2024-07-27 01:26:44 -04:00
src feat: implement swagger plugin 2024-10-15 12:58:41 -04:00
test feat: inital nestjs push 2024-07-14 20:25:52 -04:00
views feat: working interaction login 2024-10-15 12:14:16 -04:00
.dockerignore feat: implement base db support 2024-07-16 01:05:06 -04:00
.eslintrc.js feat: inital nestjs push 2024-07-14 20:25:52 -04:00
.gitignore Initial commit 2024-07-15 00:12:11 +00:00
.prettierrc feat: implement consent system 2024-10-14 18:21:05 -04:00
docker-compose.yml feat: implement consent system 2024-10-14 18:21:05 -04:00
Dockerfile feat: implement base db support 2024-07-16 01:05:06 -04:00
nest-cli.json feat: implement swagger plugin 2024-10-15 12:58:41 -04:00
package.json chore: update dependencies 2024-08-02 14:43:03 -04:00
pnpm-lock.yaml chore: update dependencies 2024-08-02 14:43:03 -04:00
README.md chore: fix readme 2024-08-08 18:50:21 -04:00
tailwind.config.js feat: implement base db support 2024-07-16 01:05:06 -04:00
tsconfig.build.json feat: inital nestjs push 2024-07-14 20:25:52 -04:00
tsconfig.json feat: email templating 2024-07-27 01:19:40 -04:00

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.

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 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 - Teaching Kakious about documentation and base documenation from other projects
  • Kakious - Main Developer and Documentation Writer