diff --git a/packages/core/src/config/index.ts b/packages/core/src/config/index.ts index a03dc6208..59271f213 100644 --- a/packages/core/src/config/index.ts +++ b/packages/core/src/config/index.ts @@ -120,6 +120,16 @@ export default { lambda: validatedEnv.AWS_LAMBDA }, + /** + * database pool config + */ + databasePool: { + max: validatedEnv.DATABASE_POOL_MAX_CONNECTIONS, + acquire: validatedEnv.DATABASE_POOL_ACQUIRE, + idle: validatedEnv.DATABASE_POOL_IDLE, + evict: validatedEnv.DATABASE_POOL_EVICT + }, + /** * Cloudfront URL to be useed */ @@ -161,7 +171,5 @@ export default { daysToLimitUsers: validatedEnv.DAYS_TO_LIMIT_USERS, cronJobBatchSize: validatedEnv.CRON_JOB_BATCH_SIZE, - maxDatabasePoolConnections: validatedEnv.MAX_DATABASE_POOL_CONNECTIONS, - communityResponseTimeout: validatedEnv.COMMUNITY_RESPONSE_TIMEOUT }; diff --git a/packages/core/src/config/validatenv.ts b/packages/core/src/config/validatenv.ts index 9e1c6ddd5..47867da75 100644 --- a/packages/core/src/config/validatenv.ts +++ b/packages/core/src/config/validatenv.ts @@ -105,7 +105,12 @@ function validateEnv() { INTERVAL_BETWEEN_LESSONS: num({ default: 7 }), DAYS_TO_LIMIT_USERS: num({ default: 30 }), CRON_JOB_BATCH_SIZE: num({ default: 20 }), - MAX_DATABASE_POOL_CONNECTIONS: num({ default: 20 }), + // database pool config + DATABASE_POOL_MAX_CONNECTIONS: num({ default: 5 }), + DATABASE_POOL_ACQUIRE: num({ default: 60000 }), + DATABASE_POOL_IDLE: num({ default: 10000 }), + DATABASE_POOL_EVICT: num({ default: 1000 }), + // COMMUNITY_RESPONSE_TIMEOUT: num({ default: 50000 }), ASSETS_ADDRESS: str({ default: '[{ "address": "xyz", "asset": "xyz" }]' }) }); diff --git a/packages/core/src/database/index.ts b/packages/core/src/database/index.ts index 5657541ed..c575bfb60 100644 --- a/packages/core/src/database/index.ts +++ b/packages/core/src/database/index.ts @@ -17,19 +17,13 @@ if (process.env.NODE_ENV === 'development') { const dbConfig: Options = { dialect: 'postgres', dialectOptions: { - connectTimeout: 60000, ssl: { require: true, rejectUnauthorized: false } }, dialectModule: pg, - pool: { - max: config.maxDatabasePoolConnections, - min: 0, - acquire: 60000, - idle: 15000 - }, + pool: config.databasePool, protocol: 'postgres', native: !config.aws.lambda, // if lambda = true, then native = false logging,