Summary

The rotateToken() mutation invalidates the current value of an existing token and issues a new one. The token record โ€” including its name, associated permissions, and labels โ€” is preserved; only the credential value changes. The mutation returns the new token string, which takes effect immediately. The previous value cannot be used for authentication after rotation completes. Use this mutation to implement credential rotation policies without deleting and recreating token configuration. Provide the token's unique identifier through the input argument to perform the rotation.

Syntax

graphql
rotateToken(
      input: RotateTokenInputData!
   ): String!

The required input argument accepts a RotateTokenInputData object containing the unique identifier of the token to rotate. Use the tokens() query to retrieve token identifiers.

The mutation returns a non-null String! containing the new token value. Store this value immediately โ€” it is the credential that replaces the invalidated token.

Example

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

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 {
  rotateToken( input:
     { id: \"abc123\" }
  )
}"
}
);


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" : {
    "rotateToken" : "def456ghi789"
  }
}

Input Parameters

The input argument accepts a RotateTokenInputData object. The following table describes its fields.

Table: RotateTokenInputData Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
idStringyesย Long-Termย The unique identifier of the token to rotate.