/** * 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} new role's ID */ export async function createRole(scopeId) { const roleName = '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; }