ToolJet/server/src/services/app_config.service.ts
Akshay 9c62b2d317
Feature: Make tooljetdb optional (#5062)
* make tooljetdb optional

* restrict routes when tooljetdb is disabled

* validate dbname before creating database

* fix comment

* format
2022-12-27 16:18:36 +05:30

38 lines
980 B
TypeScript

import { Injectable } from '@nestjs/common';
@Injectable()
export class AppConfigService {
async public_config() {
const whitelistedConfigVars = process.env.ALLOWED_CLIENT_CONFIG_VARS
? this.fetchAllowedConfigFromEnv()
: this.fetchDefaultConfig();
const mapEntries = await Promise.all(
whitelistedConfigVars.map((envVar) => [envVar, process.env[envVar]] as [string, string])
);
return Object.fromEntries(mapEntries);
}
fetchDefaultConfig() {
return [
'TOOLJET_SERVER_URL',
'RELEASE_VERSION',
'GOOGLE_MAPS_API_KEY',
'APM_VENDOR',
'SENTRY_DNS',
'SENTRY_DEBUG',
'TOOLJET_HOST',
'SUB_PATH',
'DISABLE_MULTI_WORKSPACE',
'ENABLE_MARKETPLACE_FEATURE',
'ENABLE_TOOLJET_DB',
];
}
fetchAllowedConfigFromEnv() {
const whitelistedConfigVars = process.env.ALLOWED_CLIENT_CONFIG_VARS.split(',').map((envVar) => envVar.trim());
return whitelistedConfigVars;
}
}