* chore: 🤖 add sorting e2e test * docs: ✏️ update docs with details around @ce and @ent tags * test: 💍 Add @ent tag to sorting test * test: 💍 update roles page with goto method * test: 💍 assert column header labels and improve locators
62 lines
1.1 KiB
JavaScript
62 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { execSync } from 'node:child_process';
|
|
import { nanoid } from 'nanoid';
|
|
|
|
/**
|
|
* Creates a new role
|
|
* @param {string} scopeId ID of the scope under which the role will be created.
|
|
* @returns {Promise<string>} new role's ID
|
|
*/
|
|
export async function createRole(scopeId, { name }) {
|
|
const roleName = name ?? 'role-' + nanoid();
|
|
let role;
|
|
try {
|
|
role = JSON.parse(
|
|
execSync(
|
|
`boundary roles create \
|
|
-scope-id ${scopeId} \
|
|
-name ${roleName} \
|
|
-format json`,
|
|
),
|
|
).item;
|
|
} catch (e) {
|
|
console.log(`${e.stderr}`);
|
|
}
|
|
return role.id;
|
|
}
|
|
|
|
export async function deleteRole(id) {
|
|
try {
|
|
execSync(
|
|
`boundary roles delete \
|
|
-id ${id} \
|
|
-format json`,
|
|
);
|
|
} catch (e) {
|
|
console.log(`${e.stderr}`);
|
|
}
|
|
|
|
return id;
|
|
}
|
|
|
|
export async function listRoles(scopeId) {
|
|
let roles;
|
|
try {
|
|
roles = JSON.parse(
|
|
execSync(
|
|
`boundary roles list \
|
|
-scope-id ${scopeId} \
|
|
-format json`,
|
|
),
|
|
);
|
|
} catch (e) {
|
|
console.log(`${e.stderr}`);
|
|
}
|
|
|
|
return roles.items;
|
|
}
|