1
0
Fork 0
mirror of synced 2024-07-29 18:15:49 +12:00
budibase/packages/server/initialise/createMasterDb.js

35 lines
1.4 KiB
JavaScript
Raw Normal View History

const { initialiseData, setupDatastore } = require("@budibase/core")
const constructHierarchy = require("../utilities/constructHierarchy")
const getDatabaseManager = require("../utilities/databaseManager")
const {
getApisForUser,
getApisWithFullAccess,
} = require("../utilities/budibaseApi")
const masterDbAppDefinition = require("../appPackages/_master/appDefinition.json")
const masterDbAccessLevels = require("../appPackages/_master/access_levels.json")
const { masterAppPackage } = require("../utilities/createAppPackage")
2019-06-08 01:18:10 +12:00
2019-07-09 18:29:50 +12:00
module.exports = async (context, datastoreModule, username, password) => {
2020-02-26 04:21:23 +13:00
const { config } = context
const databaseManager = getDatabaseManager(
datastoreModule,
config.datastoreConfig
)
2019-06-08 01:18:10 +12:00
2020-02-26 04:21:23 +13:00
await databaseManager.createEmptyMasterDb()
const masterDbConfig = databaseManager.masterDatastoreConfig
const datastore = setupDatastore(datastoreModule.getDatastore(masterDbConfig))
2019-06-08 01:18:10 +12:00
2020-02-26 04:21:23 +13:00
await initialiseData(datastore, constructHierarchy(masterDbAppDefinition))
2019-06-08 01:18:10 +12:00
2020-02-26 04:21:23 +13:00
const masterPackage = masterAppPackage(context)
const bbMaster = await getApisWithFullAccess(datastore, masterPackage)
await bbMaster.authApi.saveAccessLevels(masterDbAccessLevels)
const user = bbMaster.authApi.getNewUser()
user.name = username
user.accessLevels = ["owner"]
await bbMaster.authApi.createUser(user, password)
2019-06-08 01:18:10 +12:00
2020-02-26 04:21:23 +13:00
return await getApisForUser(datastore, masterPackage, username, password)
}