Summary

The addUsersToGroup() mutation adds one or more users to an existing group. Use this mutation after creating a group to populate its membership. Users inherit the roles and repository access permissions assigned to any groups they belong to.

Syntax

graphql
addUsersToGroup(
      input: AddUsersToGroupInput!
   ): AddUsersToGroupMutation!

This mutation accepts a single required input argument of type AddUsersToGroupInput!. Provide the unique identifier of the target group in groupId and the list of usernames to add in users. User accounts must exist in LogScale before you can add them to a group. See the Input Parameters section for field details.

The mutation returns an AddUsersToGroupMutation! object. See the Returned Values section for available fields.

Example

Raw
graphql
mutation {
  addUsersToGroup(input: 
         { groupId: "abc123",
           users: ["tom", "wilbur"] } )
    { group {displayName, userCount} }
}
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 {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}"
}
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 {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}"
}
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 { ^
  addUsersToGroup(input:  ^
         { groupId: \"abc123\", ^
           users: [\"tom\", \"wilbur\"] } ) ^
    { group {displayName, userCount} } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}"
}'
    "$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 {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}";
$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 {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}"
}'''

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 {
  addUsersToGroup(input: 
         { groupId: \"abc123\",
           users: [\"tom\", \"wilbur\"] } )
    { group {displayName, userCount} }
}"
}
);


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": {
    "addUsersToGroup": {
      "group": {
        "displayName": "Maintainers",
        "userCount": 6
      }
    }
  }
}

Input Parameters

Provide the unique identifier of the target group in groupId and the list of usernames to add in users. Both fields are required. Use the groupsPage() query to retrieve group identifiers.

Table: AddUsersToGroupInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupIdStringyes Long-Term The unique identifier for the group.
usersStringyes Long-Term A list of unique identifier of users to add to group.

Returned Values

The mutation returns an AddUsersToGroupMutation! object containing a group field. The group field returns the updated Group type. Request group.userCount or group.users to confirm the additions — both fields reflect the group's membership after the mutation completes.

Table: AddUsersToGroupMutation Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupGroupyes Long-Term The group for which to add users. See Group.

Table: Group Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
assetIdString,yes   Id of the asset
assetTypeAssetPermissionsAssetType,searchDomainId:String):GroupAssetActionsBySourceyes Short-Term The type of the asset.
assetTypesAssetPermissionsAssetType],yes   List of asset types
defaultQueryPrefixString  Long-Term The default prefix for queries.
defaultRoleRole  Long-Term The default role associated with the group. See Role.
defaultSearchDomainCountIntyes Long-Term The default search domain count.
displayNameStringyes Long-Term The display name of the group.
idStringyes Long-Term The identifier of the group.
limitInt,    The amount of results to return.
lookupNameString  Long-Term The look-up name for the group.
orderByOrderBy):UserResultSetTypeyes Long-Term Choose the order in which the results are returned.
organizationRolesGroupOrganizationRoleyes Long-Term The roles of the organization associated with the group. See GroupOrganizationRole.
permissionTypePermissionType  Long-Term Indicates which level of permissions the group contains. See PermissionType .
permissionsAssetAction]):AssetPermissionSearchResultSetyes Short-Term Include Read, Update and/or Delete permission assignments. The filter will accept all assets if the argument Null or the empty list.
rolesSearchDomainRoleyes Long-Term The roles for the group See SearchDomainRole.
searchDomainCountIntyes Long-Term The number of search domains for the group.
searchDomainIdsString],yes   List of search domain id's to search within. Null or empty list is interpreted as all search domains
searchDomainRoles(searchDomainId: String)SearchDomainRoleyes Long-Term The search domain roles assigned to the group. See SearchDomainRole.
searchDomainRolesByName(searchDomainName: String!)SearchDomainRole  Deprecateddeprecated in 1.195

The search domain roles assigned to the group, by name. See SearchDomainRole. When multiple roles per view is enabled, this field will return only the first of possibly multiple roles matching the name for the view.

Use roles, searchDomainRoles, or searchDomainRolesBySearchDomainName fields instead. This field will be removed at the earliest in version 1.195.

searchDomainRolesBySearchDomainName(searchDomainName: String!)SearchDomainRoleyes Long-Term The domain roles by search domain name. See SearchDomainRole.
searchFilterString,    Filter results based on this string
skipInt,    The number of results to skip or the offset to use. For instance if implementing pagination, set skip = limit * (page - 1)
sortByOrderByUserField,    The value to sort the result set by.
systemRolesGroupSystemRoleyes Long-Term The system roles of the group. See GroupSystemRole.
userCountIntyes Long-Term The number of users that are part of the group.
usersUseryes Long-Term The list of users in the group. See User.