50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
const dotenv = require("dotenv")
|
||
|
const { join } = require("path")
|
||
|
const fs = require("fs")
|
||
|
const fetch = require("node-fetch")
|
||
|
|
||
|
function getVarFromDotEnv(path, varName) {
|
||
|
const parsed = dotenv.parse(fs.readFileSync(path))
|
||
|
return parsed[varName]
|
||
|
}
|
||
|
|
||
|
async function createUser() {
|
||
|
const serverPath = join(__dirname, "..", "..", "packages", "server", ".env")
|
||
|
const qaCorePath = join(__dirname, "..", ".env")
|
||
|
const apiKey = getVarFromDotEnv(serverPath, "INTERNAL_API_KEY")
|
||
|
const username = getVarFromDotEnv(qaCorePath, "BB_ADMIN_USER_EMAIL")
|
||
|
const password = getVarFromDotEnv(qaCorePath, "BB_ADMIN_USER_PASSWORD")
|
||
|
const url = getVarFromDotEnv(qaCorePath, "BUDIBASE_URL")
|
||
|
const resp = await fetch(`${url}/api/public/v1/users`, {
|
||
|
method: "POST",
|
||
|
headers: {
|
||
|
"Content-Type": "application/json",
|
||
|
"x-budibase-api-key": apiKey,
|
||
|
},
|
||
|
body: JSON.stringify({
|
||
|
email: username,
|
||
|
password,
|
||
|
builder: {
|
||
|
global: true,
|
||
|
},
|
||
|
admin: {
|
||
|
global: true,
|
||
|
},
|
||
|
roles: {},
|
||
|
}),
|
||
|
})
|
||
|
if (resp.status !== 200) {
|
||
|
throw new Error(await resp.text())
|
||
|
} else {
|
||
|
return await resp.json()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
createUser()
|
||
|
.then(() => {
|
||
|
console.log("User created - ready to use")
|
||
|
})
|
||
|
.catch(err => {
|
||
|
console.error("Failed to create user - ", err)
|
||
|
})
|