1
0
Fork 0
mirror of synced 2024-08-28 16:31:48 +12:00
budibase/initialise/createMasterDb.js

42 lines
1.5 KiB
JavaScript
Raw Normal View History

2019-06-07 23:02:48 +12:00
const {initialiseData, setupDatastore,
2019-04-06 04:30:29 +13:00
getTemplateApi} = require("budibase-core");
2019-06-07 23:02:48 +12:00
const {getApisForUser, getDatabaseManager,
2019-04-06 04:30:29 +13:00
getApisWithFullAccess} = require("./helpers");
2019-06-07 23:02:48 +12:00
const masterDbAppDefinition = require("../appPackages/master/appDefinition.json");
const masterDbAccessLevels = require("../appPackages/master/access_levels.json");
module.exports = async (datastoreModule, rootConfig, username, password) => {
try {
const databaseManager = getDatabaseManager(datastoreModule, rootConfig);
await databaseManager.createEmptyMasterDb();
const masterDbConfig = databaseManager.masterDatastoreConfig;
const datastore = setupDatastore(
datastoreModule.getDatastore(masterDbConfig)
);
const templateApi = getTemplateApi({datastore});
await initialiseData(datastore, {
heirarchy:templateApi.constructHeirarchy(masterDbAppDefinition.hierarchy),
actions:masterDbAppDefinition.actions,
triggers:masterDbAppDefinition.triggers
});
const bbMaster = await getApisWithFullAccess(datastore);
await bbMaster.authApi.saveAccessLevels(masterDbAccessLevels);
const user = bbMaster.authApi.getNewUser();
user.name = username;
user.accessLevels= ["owner"];
await bbMaster.authApi.createUser(user, password);
return await getApisForUser(datastore, username, password);
} catch(e) {
throw e;
}
2019-03-20 10:45:21 +13:00
};
2019-06-07 23:02:48 +12:00