Skip to content

Latest commit

 

History

History
66 lines (42 loc) · 2.95 KB

README.md

File metadata and controls

66 lines (42 loc) · 2.95 KB

NFA - Serverless

Requirements

This sub-project of NFAs requires Node 18. Specifically, this has been tested with 18.13.0 so far.

Setup

After cloning the repo, ensure you run yarn in the root directory. After that, cd into the serverless directory and alsy run yarn.

If you are deploying, make sure you have your AWS credentials set to environment variables or have setup AWS credentials using the AWS CLI. Please refer to the official AWS documentation here to see all the ways to set these credentials.

Basically, these values need to be set:

export AWS_ACCESS_KEY_ID=value
export AWS_SECRET_ACCESS_KEY=value
export AWS_SESSION_TOKEN=value

You can get these from the main screen after logging in.

Running and Testing

You first build the code by running yarn build. This will produce the bundle file in the dist directory.

TODO: yarn test

To run locally, use SLS_DEBUG=* yarn sls offline --verbose. You can then hit the endpoints displayed in the console using curl, postman or any HTTP client.

Deploying

To deploy, make sure you have AWS credentials set in your local environment.

To deploy to development environment: yarn sls deploy --stage dev

To deploy to production environment: yarn sls deploy --stage prd

Running MongoDB

The first step to run MongoDB is making sure the service is installed on the machine locally. You can check the official MongoDB website for more information on the installation process.

To process database transactions such as create calls, Prisma needs the MongoDB instance to be running as a replica set. Run the commands below to start a replica set with mongod and mongosh:

// You should replace the dbpath with the actual path on your machine and assign a name to your replica set. (Default path on linux is: /var/lib/mongodb)
// Do not close the terminal tab after running mongod.
$ sudo mongod --port 27017 --dbpath /path/to/db --replSet replicaName --bind_ip localhost,127.0.0.1
// Start a mongosh session and run the replica set initiation command in the mongo shell.
$ mongosh
    > rs.initiate()

Make sure you copy the connection string that is presented in the Connecting to field when the mongosh service starts to run. We need the connection string to access the replica set. Rename the .env.example file to .env and replace the connection string placeholder in the file with the one you copied.

Prisma configuration

In order to use and integrate Prisma, both of the prisma and @prisma/client packages are needed. The prisma package reads the schema and generates a version of Prisma Client that is tailored to our modules.

Run the following commands to install the packages and generate the customized Prisma Client version based on the schema:

yarn add prisma @prisma/client
yarn prisma:generate