Summary

The assignRoleToGroup() mutation assigns a role to a group for a specific view. By default, this mutation replaces any existing role assignments for that group on the view. To assign multiple roles to the same group for one view, set overrideExistingAssignmentsForView to false; this requires the MultipleViewRoleBindings feature to be enabled on your LogScale instance. unassignRoleFromGroup() removes a role assignment from a group.

Syntax

graphql
assignRoleToGroup(
      input: AssignRoleToGroupInput!
   ): AssignRoleToGroupMutation!

The mutation accepts a single required input argument of type AssignRoleToGroupInput!. Supply the unique identifiers for the view, the role, and the group. Select Show Group Roles Query to retrieve these identifiers.

The mutation returns an AssignRoleToGroupMutation! object containing the updated group and its role assignments.

Example

Raw
graphql
mutation {
  assignRoleToGroup(input: 
          { viewId: "abc123",
            groupId: "def456", 
            roleId: "ghi789"} )
     { group { role {id, displayName, viewPermissions} } }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  assignRoleToGroup(input:  ^
          { viewId: \"abc123\", ^
            groupId: \"def456\",  ^
            roleId: \"ghi789\"} ) ^
     { group { role {id, displayName, viewPermissions} } } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  assignRoleToGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { group { role {id, displayName, viewPermissions} } }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "assignRoleToGroup": {
      "group": {
        "role": {
          "id": "ghi789",
          "displayName": "Member",
          "viewPermissions": [
            "ChangeDashboards",
            "ChangeSavedQueries",
            "ChangeTriggers",
            "ChangeFiles",
            "ChangeParsers",
            "ReadAccess"
          ]
        }
      }
    }
  }
}

Input Parameters

Provide the unique identifiers for the view, the role, and the group — specifying which role to assign to which group, scoped to the target view. Select Show Group Roles Query to retrieve these identifiers.

Table: AssignRoleToGroupInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupIdStringyes Long-Term The unique identifier of the group being assigned.
overrideExistingAssignmentsForViewBoolean  Long-Term Whether to override any existing assignments for a view.
roleIdStringyes Long-Term The unique identifier of the role being assigned.
viewIdStringyes Long-Term The unique identifier of the view.

Returned Values

The mutation returns an AssignRoleToGroupMutation! object containing the updated group and its role assignments for the view. These results confirm the assignment and provide role and permission details for the group.

Table: AssignRoleToGroupMutation Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupSearchDomainRoleyes Long-Term The group for which to assign role. See SearchDomainRole.

The AssignRoleToGroupMutation type includes a SearchDomainRole subtype representing a role within a search domain context:

Table: SearchDomainRole Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
roleRoleyes Long-Term The relevant role for the search domain. See Role.
searchDomainSearchDomainyes Long-Term The relevant search domain. See SearchDomain.