Constructors are not exposed in the JS/Node SDK.
 Profile objects are returned by Security.profile method:
var profileDefinition = {
  policies: [
    {roleId: 'myrole'},
    {roleId: 'default', restrictedTo: [{index: 'index1'}, {index: 'index2', collections: ['foo', 'bar'] } ] }

var profile ='myprofile', profileDefinition);
JSONObject policy1 = new JSONObject()
  .put("roleId", "myrole");

JSONObject policy2 = new JSONObject()
  .put("roleId", "default")
  .put("restrictedTo", new JSONArray()
    .put(new JSONObject().put("index", "index1"))
    .put(new JSONObject()
      .put("index", "index2")
      .put("collections",new JSONArray().put("foo").put("bar"))
JSONObject roles = new JSONObject()
  .put("policies", new JSONArray()

Profile profile = new Profile(, "profileId", roles);

use \Kuzzle\Kuzzle;
use \Kuzzle\Security\Profile;

$profileId = 'myProfile';
$profileDefinition = [
  'policies' => [
      'roleId' => 'myRole'
      'roleId' => 'anonymous',
      'restrictedTo' => [
        ['index' => 'my-second-index', 'collection' => ['my-collection']]

$kuzzle = new Kuzzle('localhost');
$security = $kuzzle->security();

// Using the Security factory:
$profile = $security->profile($profileId, $profileDefinition);

// Or directly with the constructor:
$profile = new Profile($security, $profileId, $profileDefinition);

Instantiates a new Profile object, representing a profile, which is a set of one or many Role objects.

Profile(Security, id, content, [meta])

SecuritySecurityAn instantiated Security object
idstringUnique profile identifier
contentJSON ObjectProfile content
metaJSON ObjectProfile metadata

Note: this constructor won't make any call to Kuzzle.


Property nameTypeDescriptionget/set
contentJSON objectRaw profile contentget
idstringUnique profile identifierget
metaJSON objectProfile metadataget

Return value

Returns to the Profile object.