Core 2.x

createOrReplaceRole

Creates a new role or, if the provided role identifier already exists, replaces it.


Copied to clipboard!
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
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

Copied to clipboard!
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);
}