Summary

The updateSystemPermissionsTokenPermissions() mutation replaces the full set of system permissions assigned to a system permissions token. The new permissions list overwrites the token's current permissions — it does not merge or append. Use this mutation to adjust a token's access scope after creation without deleting and recreating the token.

Syntax

graphql
updateSystemPermissionsTokenPermissions(
      input: UpdateSystemPermissionsTokenPermissionsInput!
   ): String!

The mutation accepts a single required input argument of type UpdateSystemPermissionsTokenPermissionsInput!. Provide the token's unique identifier and the complete replacement list of system permissions. The mutation returns a non-null String! containing the identifier of the updated token.

Input parameters

Provide the token's unique identifier and the complete replacement list of system permissions. The permissions list fully replaces the token's current permissions. The following table describes all fields in UpdateSystemPermissionsTokenPermissionsInput:

Table: UpdateSystemPermissionsTokenPermissionsInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
idStringyes Long-Term The unique identifier for the token.
permissionsSystemPermissionyes Long-Term A list of system permissions. See SystemPermission.

Example

Raw
graphql
mutation {
  updateSystemPermissionsTokenPermissions( input:
    { id: "abc123",
      permissions: [ ViewOrganizations ]
    } )
}
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 {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}"
}
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 {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}"
}
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 { ^
  updateSystemPermissionsTokenPermissions( input: ^
    { id: \"abc123\", ^
      permissions: [ ViewOrganizations ] ^
    } ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}"
}'
    "$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 {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}";
$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 {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}"
}'''

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 {
  updateSystemPermissionsTokenPermissions( input:
    { id: \"abc123\",
      permissions: [ ViewOrganizations ]
    } )
}"
}
);


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": {
    "updateSystemPermissionsTokenPermissions": {
      "id": "abc123"
    }
  }
}

Returned values

The mutation returns a String! containing the identifier of the updated token. This confirms which token was modified. The returned ID matches the id value provided in the input.