-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
Copy pathcube.js
37 lines (31 loc) · 1020 Bytes
/
cube.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const PostgresDriver = require('@cubejs-backend/postgres-driver');
module.exports = {
// Provides distinct identifiers for each tenant which are used as caching keys
contextToAppId: ({ securityContext }) =>
`CUBEJS_APP_${securityContext.tenant}`,
// Selects the database connection configuration based on the tenant name
driverFactory: ({ securityContext }) => {
if (!securityContext.tenant) {
throw new Error('No tenant found in Security Context!')
}
if (securityContext.tenant === 'Avocado Inc') {
return new PostgresDriver({
database: 'localDB',
host: 'postgres',
user: 'postgres',
password: 'example',
port: '5432',
});
}
if (securityContext.tenant === 'Mango Inc') {
return new PostgresDriver({
database: 'ecom',
host: 'demo-db.cube.dev',
user: 'cube',
password: '12345',
port: '5432',
});
}
throw new Error('Unknown tenant in Security Context')
},
};