The allowedAssetActions() GraphQL query is used to get a list of allowed asset actions for the user on a specific asset. However, this is a preview and subject to change.

Syntax

Below is the syntax for the allowedAssetActions() query field:

graphql
allowedAssetActions(
     assetId: string!, 
     assetType: AssetPermissionsAssetType!,
     searchDomainName: string
   ): [AssetAction!]!

For the input, there are only two required parameters, with one that uses a special datatype. It's described in the Given Datatypes section below. The return datatype, AssetAction is described in the Results Datatypes section. Here's an example of how it might be used:

Raw
graphql
query {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: "ILLF8JldGGP6tVspPuRtifX7ZGiHveGV",
      searchDomainName: "Testeroo") 
}
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 {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}
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 {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}
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 { ^
	allowedAssetActions( ^
	  assetType: Dashboard,  ^
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\", ^
      searchDomainName: \"Testeroo\")  ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}'
"$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $INGEST_TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $json = '{"query" : "query {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}';
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 {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}'''

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 {
	allowedAssetActions(
	  assetType: Dashboard, 
      assetId: \"ILLF8JldGGP6tVspPuRtifX7ZGiHveGV\",
      searchDomainName: \"Testeroo\") 
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL/graphql',
  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": {
    "allowedAssetActions": [
      "Read",
      "Update",
      "Delete"
    ]
  },
}

Notice that the assetId requires that you know the unique identifier for the item you're checking. To get that, you'll have to use the appropriate query based on the type of assets. For instance, for a dashboard as in this example, you might first use dashboardsPage() to get the ID for a specific one.

Given Datatypes

For the given datatype, AssetPermissionsAssetType, there are a few parameters. Below is a list of them along with their datatypes and a description of each:

Table: AssetPermissionsAssetType

ParameterTypeRequiredDefaultDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Sep 13, 2024
Actionboolean  The asset permission is related to an action.
AggregateAlertboolean  The asset permission is related to an aggregate alert.
Dashboardboolean  The asset permission is related to a dashboard.
Fileboolean  The asset permission is related to a file.
FilterAlertboolean  The asset permission is related to a filter alert.
LegacyAlertboolean  The asset permission is related to a legacy alert.
SavedQueryboolean  The asset permission is related to a saved query.
ScheduledReportboolean  The asset permission is related to a scheduled report.
ScheduledSearchboolean  The asset permission is related to a scheduled search.

Returned Datatypes

For AssetAction, there are a few possible values returned, which are listed below. There's nothing for you to specify for it. The results are returned in an array.

Table: AssetAction

ParameterTypeRequiredDefaultDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Sep 13, 2024
Deleteboolean  Whether delete is allowed.
Readboolean  Whether read is allowed.
Updateboolean  Whether update is allowed.