In this section we are going to explain how to run the application locally, without (almost) any OneReach dependencies.
In order to install some dependencies you are going to need a valid token available as a variable - OR_NPM_TOKEN
. If it is not available using echo $OR_NPM_TOKEN
- you should ask someone to help you setup access to OneReach NPM.
If you already have a local PostgreSQL installed, or know how to do so - you are free to go to the next section.
The easiest way to install a local database - is by using Docker - Install Docker Desktop. After making sure Docker is installed and is available through command line as docker
- we can proceed with installing and creating a local database.
Run the following commands (and replace mysecretpassword
here and in the examples below with an actual password):
docker pull postgres
docker run --name postgresql-local -e POSTGRES_USER=hitl-app -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_DB=hitl-app-db -p 5432:5432 -d postgres
You should be able to connect to this database using command (enter the password, if it is asked):
docker exec -it postgresql-local psql hitl-app-db -U hitl-app -W
Create a file named .env
in the project root directory with the following content:
APP_DEV_PORT=8080
DB_USER=hitl-app
DB_PASSWORD=mysecretpassword
DB_HOST=localhost
DB_PORT=5432
DB_NAME=hitl-app-db
You can change all the values above, if you want to, just make sure that the variables in .env
file point to some valid PostgreSQL instance.
Make sure you have deploy-platform
project installed on your machine, and a command or
is globally available.
Run the following commands:
or get-config --branch local --client development --env qa --feature master --project hitl-api --service hitl_api.config --service-or-eval service > config.json
A file config.json
, which is ignored by git, should appear in the project root with some content.
After installing third party dependencies, we can finally run:
npm install
npm start
This will start the application in the development mode as a simple express
server. Changes to the code will be tracked and server will restart automatically.
An almost empty config.json
file is required to build the application. In order to run the application on AWS, we are going to need real env variables that we are going to retrieve later.
Server now is ready to accept requests, but it will probably fail on every attempt to access database. In order to read and write from database we need to send a request to create or update our SQL tables.
In order to run all migrations to the latest version, run the following request in the console (or in Postman):
curl --location --request POST 'http://localhost:8080/api/v1/migrations' --header 'Authorization: user'
After successful response you should be able to send all other requests.
In order to verify that (most of) the application logic works, you should run:
npm test
If all tests pass successfully - congratulations, this means that the local deployment was successful.