SDK
SDK Javascript v7.x
2

# 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);
}