Summary

The updateReadonlyDashboardIPFilter() mutation replaces the IP filter applied to read-only dashboard access. IP filters control which addresses can load shared dashboard links. Supply an ipFilter string containing one or more newline-separated allow or deny directives paired with IP addresses or CIDR ranges, for example, allow 10.0.0.0/24. Omitting ipFilter removes the filter and allows access from any address. To create or manage named, reusable IP filter objects, use createIPFilter() or updateIPFilter() instead.

Syntax

graphql
updateReadonlyDashboardIPFilter(
      ipFilter: String
   ): Boolean!

The optional ipFilter argument accepts a newline-separated string of allow and deny directives. Each line pairs a directive with an IP address or CIDR range, for example, allow 10.0.0.0/24 or deny 192.168.1.0/24. Use deny all or allow all as a catch-all final rule. Omitting this argument removes the IP filter. For full expression syntax, see IP Filter.

The mutation returns a non-null Boolean!. It returns true when the filter update succeeds.

Input parameters

Provide a newline-separated IP filter expression to restrict read-only dashboard access to specific IP addresses or CIDR ranges. Omit the argument to remove the filter entirely.

Table: Input parameters and datatypes

Parameter Type Required Default Description
This table contains all input parameters for this mutation.
ipFilter String ย  ย  A newline-separated filter expression controlling access to read-only dashboard links. Each line pairs an allow or deny directive with an IP address or CIDR range, for example, allow 10.0.0.0/24. Include a catch-all rule such as deny all as the last line. Omitting this argument removes the existing filter and allows access from any address. For full syntax rules, see IP Filter.

Example

Raw
graphql
mutation {
  updateReadonlyDashboardIPFilter(
       ipFilter: "deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n"
  )
}
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 {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}"
}
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 {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}"
}
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 { ^
  updateReadonlyDashboardIPFilter( ^
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\" ^
  ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}"
}'
    "$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 {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}";
$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 {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}"
}'''

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 {
  updateReadonlyDashboardIPFilter(
       ipFilter: \"deny all\ndeny 127.0.0.1\nallow 10.0.0.0/24\nallow 192.168.0.0/8\n\"
  )
}"
}
);


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": {
    updateReadonlyDashboardIPFilter: true
    }
  }
}

Returned values

The mutation returns a non-null Boolean!. It returns true when the filter update succeeds. A return value of false indicates the update did not apply.