Skip to content

Commit cf7ec1f

Browse files
author
rtkay123
committed
feat: allow db splitting
1 parent b6f4a0b commit cf7ec1f

File tree

2 files changed

+39
-70
lines changed

2 files changed

+39
-70
lines changed

src/config.ts

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// config settings, env variables
44
import * as path from 'path';
55
import * as dotenv from 'dotenv';
6-
import { type RedisConfig } from '@frmscoe/frms-coe-lib/lib/interfaces';
6+
import { type ManagerConfig } from '@frmscoe/frms-coe-lib';
77

88
// Load .env file into process.env if it exists. This is convenient for running locally.
99
dotenv.config({
@@ -19,24 +19,12 @@ export interface IConfig {
1919
url: string;
2020
active: string;
2121
};
22-
db: {
23-
password: string;
24-
url: string;
25-
user: string;
26-
configurationDb: string;
27-
transactionDb: string;
28-
transactionHistoryDb: string;
29-
dbCertPath: string;
30-
cacheEnabled: boolean;
31-
cacheTTL: number;
32-
networkMap: string;
33-
};
22+
db: ManagerConfig;
3423
logger: {
3524
logstashHost: string;
3625
logstashPort: number;
3726
logstashLevel: string;
3827
};
39-
redis: RedisConfig;
4028
sidecarHost: string;
4129
producerStream: string;
4230
}
@@ -50,29 +38,49 @@ export const configuration: IConfig = {
5038
active: process.env.APM_ACTIVE!,
5139
},
5240
db: {
53-
password: process.env.DATABASE_PASSWORD!,
54-
url: process.env.DATABASE_URL!,
55-
user: process.env.DATABASE_USER!,
56-
configurationDb: process.env.CONFIGURATION_DB!,
57-
transactionHistoryDb: process.env.TRANSACTION_HISTORY_DB!,
58-
transactionDb: process.env.TRANSACTION_DB!,
59-
dbCertPath: process.env.DATABASE_CERT_PATH!,
60-
cacheEnabled: process.env.CACHE_ENABLED === 'true',
61-
cacheTTL: parseInt(process.env.CACHE_TTL!, 10) || 3000,
62-
networkMap: process.env.DATABASE_NETWORKMAP!,
41+
redisConfig: {
42+
db: parseInt(process.env.REDIS_DB!, 10) || 0,
43+
servers: JSON.parse(process.env.REDIS_SERVERS! || '[{"hostname": "127.0.0.1", "port":6379}]'),
44+
password: process.env.REDIS_AUTH!,
45+
isCluster: process.env.REDIS_IS_CLUSTER === 'true',
46+
},
47+
networkMap: {
48+
password: process.env.NETWORK_MAP_DATABASE_PASSWORD!,
49+
url: process.env.NETWORK_MAP_DATABASE_URL!,
50+
user: process.env.NETWORK_MAP_DATABASE_USER!,
51+
databaseName: process.env.NETWORK_MAP_DATABASE!,
52+
certPath: process.env.NETWORK_MAP_DATABASE_CERT_PATH!,
53+
},
54+
configuration: {
55+
password: process.env.CONFIG_DATABASE_PASSWORD!,
56+
url: process.env.CONFIG_DATABASE_URL!,
57+
user: process.env.CONFIG_DATABASE_USER!,
58+
databaseName: process.env.CONFIG_DATABASE!,
59+
certPath: process.env.CONFIG_DATABASE_CERT_PATH!,
60+
localCacheEnabled: process.env.CACHE_ENABLED === 'true',
61+
localCacheTTL: parseInt(process.env.CACHE_TTL!, 10) || 3000,
62+
},
63+
transactionHistory: {
64+
password: process.env.TRANSACTION_HISTORY_DATABASE_PASSWORD!,
65+
url: process.env.TRANSACTION_HISTORY_DATABASE_URL!,
66+
user: process.env.TRANSACTION_HISTORY_DATABASE_USER!,
67+
databaseName: process.env.TRANSACTION_HISTORY_DATABASE!,
68+
certPath: process.env.TRANSACTION_HISTORY_DATABASE_CERT_PATH!,
69+
},
70+
transaction: {
71+
password: process.env.TRANSACTION_DATABASE_PASSWORD!,
72+
url: process.env.TRANSACTION_DATABASE_URL!,
73+
user: process.env.TRANSACTION_DATABASE_USER!,
74+
databaseName: process.env.TRANSACTION_DATABASE!,
75+
certPath: process.env.TRANSACTION_DATABASE_CERT_PATH!,
76+
},
6377
},
6478
env: process.env.NODE_ENV!,
6579
logger: {
6680
logstashHost: process.env.LOGSTASH_HOST!,
6781
logstashPort: parseInt(process.env.LOGSTASH_PORT ?? '0', 10),
6882
logstashLevel: process.env.LOGSTASH_LEVEL! || 'info',
6983
},
70-
redis: {
71-
db: parseInt(process.env.REDIS_DB!, 10) || 0,
72-
servers: JSON.parse(process.env.REDIS_SERVERS! || '[{"hostname": "127.0.0.1", "port":6379}]'),
73-
password: process.env.REDIS_AUTH!,
74-
isCluster: process.env.REDIS_IS_CLUSTER === 'true',
75-
},
7684
sidecarHost: process.env.SIDECAR_HOST!,
7785
producerStream: process.env.PRODUCER_STREAM!,
7886
};

src/index.ts

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,46 +9,7 @@ import { configuration } from './config';
99
import { handleExecute } from './services/logic.service';
1010
import { Singleton } from './services/services';
1111

12-
const databaseManagerConfig = {
13-
networkMap: {
14-
certPath: configuration.db.dbCertPath,
15-
databaseName: configuration.db.networkMap,
16-
user: configuration.db.user,
17-
password: configuration.db.password,
18-
url: configuration.db.url,
19-
},
20-
redisConfig: {
21-
db: configuration.redis.db,
22-
servers: configuration.redis.servers,
23-
password: configuration.redis.password,
24-
isCluster: configuration.redis.isCluster,
25-
},
26-
configuration: {
27-
databaseName: configuration.db.configurationDb,
28-
certPath: configuration.db.dbCertPath,
29-
password: configuration.db.password,
30-
url: configuration.db.url,
31-
user: configuration.db.user,
32-
localCacheEnabled: configuration.db.cacheEnabled,
33-
localCacheTTL: configuration.db.cacheTTL,
34-
},
35-
transaction: configuration.db.transactionDb
36-
? {
37-
databaseName: configuration.db.transactionDb,
38-
url: configuration.db.url,
39-
password: configuration.db.password,
40-
user: configuration.db.user,
41-
certPath: configuration.db.dbCertPath,
42-
}
43-
: undefined,
44-
transactionHistory: {
45-
databaseName: configuration.db.transactionHistoryDb,
46-
url: configuration.db.url,
47-
password: configuration.db.password,
48-
user: configuration.db.user,
49-
certPath: configuration.db.dbCertPath,
50-
},
51-
};
12+
const databaseManagerConfig = configuration.db;
5213

5314
export const loggerService: LoggerService = new LoggerService(configuration.sidecarHost);
5415
let databaseManager: DatabaseManagerInstance<typeof databaseManagerConfig>;

0 commit comments

Comments
 (0)