createOrReplaceRole #
Creates a new role or, if the provided role identifier already exists, replaces it.
createOrReplaceRole(id, body, [options]);
Property | Type | Description |
---|---|---|
id | string | Role identifier |
body | object | Role definition content |
options | object | Query options |
body #
Property | Type | Description |
---|---|---|
controllers | object | Role definition |
options #
Property | Type (default) | Description |
---|---|---|
queuable | boolean ( true ) | If true , queues the request during downtime, until connected to Kuzzle again |
timeout | number ( -1 ) | Time (in ms) during which a request will still be waited to be resolved. Set it -1 if you want to wait indefinitely |
triggerEvents | boolean ( false ) | If set to true , will trigger events even if using Embeded SDK. You should always ensure that your events/pipes does not create an infinite loop. Available since Kuzzle 2.31.0 |
refresh | boolean ( false ) | If set to wait_for , Kuzzle will not respond until the created/replaced role is indexed |
force | boolean ( false ) | If set to true , creates or replaces the role even if it gives access to non-existent plugins API routes. |
Resolves #
A Role
object representing the created/replaced role.
Usage #
try {
const response = await kuzzle.security.createOrReplaceRole(
'read-only',
{
controllers: {
auth: {
actions: {
getCurrentUser: true,
getMyCredentials: true,
getMyRights: true,
logout: true
}
},
collection: {
actions: {
getMapping: true,
list: true
}
},
document: {
actions: {
count: true,
get: true,
mGet: true,
scroll: true,
search: true
}
},
index: {
actions: {
list: true
}
}
}
}
);
console.log(response);
/*
Role {
_id: 'read-only',
controllers:
{ auth: { actions: [Object] },
collection: { actions: [Object] },
document: { actions: [Object] },
index: { actions: [Object] } } }
*/
console.log('Role successfully updated');
} catch (e) {
console.error(e);
}
Edit this page on Github(opens new window)