Summary

Search link interactions connect dashboard widget fields to predefined queries. When a user selects a field value in a widget, LogScale uses the interaction definition to construct and launch a search. The search can open in a new tab, use the widget's time window, or filter by specific field conditions. The updateSearchLinkInteraction() mutation replaces all configurable properties of a search link interaction: its name, query string, target repository or view, time window behavior, tab behavior, and field trigger conditions. This mutation performs a full replacement; supply all fields in searchLinkInteractionInput on every call, not only the fields you want to change. Create the interaction first with createSearchLinkInteraction() before calling this mutation.

Syntax

graphql
updateSearchLinkInteraction(
      input: UpdateSearchLinkInteractionInput!
   ): InteractionId!

The mutation accepts a single required argument, input, of type UpdateSearchLinkInteractionInput!. The input identifies the target interaction by path (the repository or view name) and interactionId, and replaces the search link properties through the nested searchLinkInteractionInput field. Because this mutation performs a full replacement, supply all fields in searchLinkInteractionInput on every call; fields omitted are not preserved from the previous value. The mutation returns an InteractionId! object containing the identifier of the updated interaction.

Use the repository() query to retrieve the interactionId value.

Input parameters

Provide the repository or view name as path, the unique identifier of the interaction to update as interactionId, and complete replacement values for all search link properties through the nested searchLinkInteractionInput argument. This mutation performs a full replacement: all fields in searchLinkInteractionInput must be supplied on every call; omitted fields are not preserved from the previous value. Use the repository() query to retrieve the interactionId.

Table: UpdateSearchLinkInteractionInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
interactionIdStringyes Long-Term The unique identifier of the interaction.
pathStringyes Long-Term The path of the interaction.
searchLinkInteractionInputSearchLinkInteractionInputyes Long-Term The search link interaction data. See SearchLinkInteractionInput.

Example

Raw
graphql
mutation {
  updateSearchLinkInteraction(input:
       { path: "humio",
         interactionId: "abc123",
         searchLinkInteractionInput: 
            { name: "my-search-link", 
              queryString: "#vhost",
              isLive: false,
              arguments: [ {key: "some", value: "thing"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: "my-field", 
                                              operator: Equal, 
                                              argument: "something" } ] }
      } )
  { 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 {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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 {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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 { ^
  updateSearchLinkInteraction(input: ^
       { path: \"humio\", ^
         interactionId: \"abc123\", ^
         searchLinkInteractionInput:  ^
            { name: \"my-search-link\",  ^
              queryString: \"#vhost\", ^
              isLive: false, ^
              arguments: [ {key: \"some\", value: \"thing\"} ], ^
              openInNewTab: false, ^
              useWidgetTimeWindow: false, ^
              fieldInteractionConditions: [ { fieldName: \"my-field\",  ^
                                              operator: Equal,  ^
                                              argument: \"something\" } ] } ^
      } ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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 {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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 {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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 {
  updateSearchLinkInteraction(input:
       { path: \"humio\",
         interactionId: \"abc123\",
         searchLinkInteractionInput: 
            { name: \"my-search-link\", 
              queryString: \"#vhost\",
              isLive: false,
              arguments: [ {key: \"some\", value: \"thing\"} ],
              openInNewTab: false,
              useWidgetTimeWindow: false,
              fieldInteractionConditions: [ { fieldName: \"my-field\", 
                                              operator: Equal, 
                                              argument: \"something\" } ] }
      } )
  { 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
{
  "data": {
    "updateSearchLinkInteraction": {
      "id": "abc123"
    }
  }
}

Returned values

The mutation returns an InteractionId! object containing the unique identifier of the updated interaction. Use this identifier to reference the interaction in subsequent queries or to remove it with deleteInteractionV2().

Table: InteractionId Datatype

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