Summary

The updateDashboardLinkInteraction() mutation updates an existing dashboard link interaction in LogScale. Dashboard link interactions define how a widget links to another dashboard, including the target dashboard reference, pass-through arguments that populate dashboard variables, and display options such as opening in a new tab or inheriting the widget time window.

Syntax

graphql
updateDashboardLinkInteraction(
      input: UpdateDashboardLinkInteractionInput!
   ): InteractionId!

The mutation accepts a single required input argument of type UpdateDashboardLinkInteractionInput!. Provide the repository path, the identifier of the interaction to update, and the updated dashboard link configuration. See the Input Parameters section for the available fields.

The mutation returns a non-null InteractionId! value containing the unique identifier of the updated interaction.

Example

Raw
graphql
mutation {
  updateDashboardLinkInteraction( input:
    {
      path: "humio",
      interactionId: "abc123",
      dashboardLinkInteractionInput: { name: "our-dash-link",
                                       arguments: [ {key: "some", value: "thing"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}
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 {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}"
}
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 {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}"
}
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 { ^
  updateDashboardLinkInteraction( input: ^
    { ^
      path: \"humio\", ^
      interactionId: \"abc123\", ^
      dashboardLinkInteractionInput: { name: \"our-dash-link\", ^
                                       arguments: [ {key: \"some\", value: \"thing\"} ], ^
                                       openInNewTab: false, ^
                                       useWidgetTimeWindow: true } ^
    } ^
  ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}"
}'
    "$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 {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}";
$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 {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}"
}'''

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 {
  updateDashboardLinkInteraction( input:
    {
      path: \"humio\",
      interactionId: \"abc123\",
      dashboardLinkInteractionInput: { name: \"our-dash-link\",
                                       arguments: [ {key: \"some\", value: \"thing\"} ],
                                       openInNewTab: false,
                                       useWidgetTimeWindow: true }
    }
  )
  { id }
}"
}
);


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

Input Parameters

Provide the repository path, the unique identifier of the interaction to update, and the updated link configuration through the input argument. The dashboardLinkInteractionInput field contains the link name, pass-through arguments that populate target dashboard variables, and display options: set openInNewTab to true to open the target dashboard in a new browser tab, and set useWidgetTimeWindow to true to pass the source widget's time range to the target dashboard instead of using the target's default time range. The table below lists the available fields in UpdateDashboardLinkInteractionInput:

Table: UpdateDashboardLinkInteractionInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
dashboardLinkInteractionInputDashboardLinkInteractionInputyes Long-Term The dashboard link for interactions. See DashboardLinkInteractionInput.
interactionIdStringyes Long-Term The unique identifier of the interaction.
pathStringyes Long-Term The path of the interaction.

Returned Values

The mutation returns the unique identifier of the updated interaction. Use this identifier to reference the interaction in subsequent operations, such as querying its current configuration or deleting it with deleteInteractionV2(). The table below describes the InteractionId type fields:

Table: InteractionId Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
idStringyes Long-Term The unique identifier for the interaction.