The purpose of this script is to syncronize data from a Cloud Object Storage (as a .tsv format) to VirusSeq data repository.
This script has been tested using NodeJS v^16.
npm ci
- Copy .env.schema file to a new file named
.env
. Populate all fields. See description of env variables in the Environment variables section. npm run dev
ornpm run dev:[profile]
See description of profiles in the Profiles section
VARIABLE | TYPE | DESCRIPTION |
---|---|---|
NODE_ENV | String | Optional. Defines the environment |
DEBUG | Boolean | Default true . true enables debug logs; false disables debug logs |
GS_BUCKET_NAME | String | Google Storage bucket name |
GS_FOLDER | String | Google Storage folder path |
SONG_ENDPOINT | String | Song endpoint |
EGO_CLIENT_ID | String | Ego Client ID |
EGO_CLIENT_SECRET | String | Ego Client Secret |
EGO_URL | String | Ego URL API |
JWT_KEY | String | Public key. This variable is optional if JWT_KEY_URL is set |
JWT_KEY_URL | String | URL to fetch the public key. This variable is optional if JWT_KEY is set |
REDIS_HOST | String | Default localhost |
REDIS_PORT | Number | Default 6379 |
REDIS_PASSWORD | String | Redis password |
ANALYSIS_TYPE_VERSION | Number | Default 1 . Process only the Analysis within this schema version. |
API_RETRIES | Number | Default 3 . Retries when API call fails |
API_TIMEOUT | Number | Default 10000 . (Milliseconds) Response timeout on API calls. |
NOTIFICATIONS_SLACK_URL | String | Webhook URL defines to which channel post notifications |
TIMEZONE | String | Default America/Toronto . Use a zoneId format {area}/{city} to handle daylight savings. |
Profile | DESCRIPTION |
---|---|
updateCache | This profile will only update Pedigree cache DB |
updateAnalysis | Synchronize VirusSeq data using the already existing Pedigree cache DB |
Not specifying a profile will do updateCache and then do updateAnalaysis (Recommended) |