languageRestrictions()

API Stability Preview

The languageRestrictions() GraphQL query is used to get restrictions for a particular language version. In particular, this will give you a list of functions that are allowed.

Related to this, you can disable or enable language restrictions with the languageRestrictionsEnable() mutation field.

Syntax

graphql
languageRestrictions(
     version: LanguageVersionEnum!
   ): QueryLanguageRestriction

For the input, you'd enter the language version you want to check (e.g., legacy or federated1). See the Given Datatype section more choices. For the results, you can specify allowedFunctions to get a list of functions allowed for the given language version. See the Returned Datatype for more.

Example

The example below queries LogScale with this query field:

Raw
graphql
query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}
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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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" : "query { ^
  languageRestrictions(version: legacy)  ^
  {version { ^
    name ^
    futureName ^
  }, enabled, allowedFunctions} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'
    "$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 = "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}";
$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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'''

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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
);


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": {
    "languageRestrictions": {
      "version": {
        "name": "legacy",
        "futureName": null
      },
      "enabled": false,
      "allowedFunctions": []
    }
  }
}

In the results shown here, you can see that enabled returns false, meaning there are no language restrictions for the legacy version.

Given Datatype

The given datatype is used to provide the language version for which you want a list of functions allowed for it. Your choices are listed in the table below:

Table: LanguageVersionEnum

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Oct 29, 2025
federated1boolean  Long-TermIndicates if Federated version of the LogScale query is used.
filteralertboolean  DeprecatedThis has no effect and is no longer used internally. It will be removed at the earliest in version 1.189.
legacyboolean  Long-TermWhether legacy LogScale query language is used.
xdr1boolean  Long-TermWhether XDR1 is used.
xdrdetects1boolean  Long-TermWhether XDR Detects 1 query language is used.

Returned Datatype

The returned datatype is used to request a list of functions allowed for the given language version, as well as whether such restrictions are enabled. These parameters are described in the table here:

Table: QueryLanguageRestriction

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Oct 2, 2024
allowedFunctions[string]yes PreviewThe list of functions allowed in the language version.
enabledbooleanyes PreviewWhether the query language restriction is enabled.
versionLanguageVersionyes PreviewThe query language version used. See LanguageVersion.