diff --git a/core/.env.example b/core/.env.example index 557b46a8e..79f0761f1 100644 --- a/core/.env.example +++ b/core/.env.example @@ -5,3 +5,5 @@ HEALTH_CHECK_PORT= SLACK_WEBHOOK_URL= LOG_LEVEL= LOG_DIR= +REDIS_HOST= +REDIS_PORT= \ No newline at end of file diff --git a/core/migrations/001-initial.sql b/core/migrations/001-initial.sql index f1014957b..e42c387bd 100644 --- a/core/migrations/001-initial.sql +++ b/core/migrations/001-initial.sql @@ -86,6 +86,7 @@ VALUES ((SELECT id from Chain WHERE name = 'localhost'), 'PUBLIC_KEY', '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'), ((SELECT id from Chain WHERE name = 'localhost'), 'LOCAL_AGGREGATOR', 'MEDIAN'), ((SELECT id from Chain WHERE name = 'localhost'), 'HEALTH_CHECK_PORT', '8888'), + ((SELECT id from Chain WHERE name = 'localhost'), 'SLACK_WEBHOOK_URL', ''), ((SELECT id from Chain WHERE name = 'localhost'), 'LISTENER_DELAY', '500'); CREATE TABLE Adapter ( diff --git a/core/settings.sqlite b/core/settings.sqlite index d05d8fa6b..ec46b8e55 100644 Binary files a/core/settings.sqlite and b/core/settings.sqlite differ diff --git a/core/src/settings.ts b/core/src/settings.ts index d7de66112..fbdd1c656 100644 --- a/core/src/settings.ts +++ b/core/src/settings.ts @@ -21,10 +21,14 @@ export const SETTINGS_DB_FILE = path.join(ORAKL_DIR, 'settings.sqlite') export const DB = await openDb() export const PROVIDER_URL = await loadKeyValuePair({ db: DB, key: 'PROVIDER_URL', chain: CHAIN }) -export const REDIS_HOST = await loadKeyValuePair({ db: DB, key: 'REDIS_HOST', chain: CHAIN }) -export const REDIS_PORT = Number( - await loadKeyValuePair({ db: DB, key: 'REDIS_PORT', chain: CHAIN }) -) +export const REDIS_HOST = + process.env.REDIS_HOST || (await loadKeyValuePair({ db: DB, key: 'REDIS_HOST', chain: CHAIN })) +export const REDIS_PORT = process.env.REDIS_PORT + ? Number(process.env.REDIS_PORT) + : Number(await loadKeyValuePair({ db: DB, key: 'REDIS_PORT', chain: CHAIN })) +export const SLACK_WEBHOOK_URL = + process.env.SLACK_WEBHOOK_URL || + (await loadKeyValuePair({ db: DB, key: 'SLACK_WEBHOOK_URL', chain: CHAIN })) export const PRIVATE_KEY = await loadKeyValuePair({ db: DB, key: 'PRIVATE_KEY', chain: CHAIN }) export const PUBLIC_KEY = await loadKeyValuePair({ db: DB, key: 'PUBLIC_KEY', chain: CHAIN }) export const LOCAL_AGGREGATOR = await loadKeyValuePair({ diff --git a/core/src/utils.ts b/core/src/utils.ts index 2c9640be0..e90fd1b81 100644 --- a/core/src/utils.ts +++ b/core/src/utils.ts @@ -5,6 +5,7 @@ import path from 'node:path' import { IcnError, IcnErrorCode } from './errors' import { IncomingWebhook } from '@slack/webhook' import Hook from 'console-hook' +import { SLACK_WEBHOOK_URL } from './settings' export async function loadJson(filepath) { const json = await Fs.readFile(filepath, 'utf8') @@ -83,9 +84,8 @@ export function mkTmpFile({ fileName }: { fileName: string }): string { } function sendToSlack(error) { - const url = process.env.SLACK_WEBHOOK_URL - if (url) { - const webhook = new IncomingWebhook(url) + if (SLACK_WEBHOOK_URL) { + const webhook = new IncomingWebhook(SLACK_WEBHOOK_URL) const text = ` :fire: _An error has occurred at_ \`${os.hostname()}\`\n \`\`\`${JSON.stringify( error )} \`\`\`\n>*System information*\n>*memory*: ${os.freemem()}/${os.totalmem()}\n>*machine*: ${os.machine()}\n>*platform*: ${os.platform()}\n>*upTime*: ${os.uptime()}\n>*version*: ${os.version()}