API Stability Long-Term

The updateLoginBridge() GraphQL mutation is used to update settings for the login bridge.

To add a login bridge, use the setLoginBridge() mutation. Once it has been added, you may need to use the setLoginBridgeTermsState(). To add and remove users from the allowed list, use the addLoginBridgeAllowedUsers() and removeLoginBridgeAllowedUsers() mutations. To eliminate a bridge, use removeLoginBridge().

The updateLoginBridge() mutation will return information on the updated login bridge. However, you can use the organization() query with the configs parameter, with the loginBridge sub-parameter followed by any of the parameters (e.g., allowedUsers, groups)in the Returned Datatype section further down this page.

Hide Query Example

Show Allowed Users and Groups Query

Syntax

graphql
updateLoginBridge(
      input: LoginBridgeUpdateInput!
   ): LoginBridge!

Example

Below is an example of how this mutation field might be used:

Raw
graphql
mutation {
  updateLoginBridge( input: 
    { name: "my-bridge",
      allowedUsers: [ "bob", "ted" ] }
  )
 { name }
}
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 {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}"
}
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 {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}"
}
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 { ^
  updateLoginBridge( input:  ^
    { name: \"my-bridge\", ^
      allowedUsers: [ \"bob\", \"ted\" ] } ^
  ) ^
 { name } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}"
}'
    "$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 {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}";
$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 {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}"
}'''

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 {
  updateLoginBridge( input: 
    { name: \"my-bridge\",
      allowedUsers: [ \"bob\", \"ted\" ] }
  )
 { name }
}"
}
);


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": {
    "updateLoginBridge": {
      "name": "my-bridge"
    }
  }
}

Given Datatype

For this input datatype, there are many parameters that you may change, none that are required. The table below provides a list of what's changeable:

Table: LoginBridgeUpdateInput

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: Sep 19, 2024
additionalAttributesstring  Long-TermAny additional attributes.
allowedUsers[string]yes Long-TermA list of users allowed to access the bridge.
descriptionstring  Long-TermA description of the login bridge to update.
generateUserNameboolean  Long-TermWhether to generate user names.
groupAttributestring  Long-TermThe group attributes.
groups[string]yes Long-TermAny groups associated with the login bridge.
issuerstring  Long-TermThe issuer to update.
loginUrlstring  Long-TermThe URL of the login bridge.
namestring  Long-TermThe name of the login bridge to update.
organizationIdAttributeNamestring  Long-TermThe organization's unique identifier of the attribute name.
organizationNameAttributestring  Long-TermThe organization's name of the attribute.
privateSamlCertificatestring  Long-TermThe private SAML certificate.
publicSamlCertificatestring  Long-TermThe public SAML certificate.
relayStateUrlstring  Long-TermThe relay state URL.
remoteIdstring  Long-TermThe remote unique identifier of the login bridge.
samlEntityIdstring  Long-TermThe unique identifier of the SAML entity.
termsDescriptionstring  Long-TermA description of the terms.
termsLinkstring  Long-TermA link to the terms and conditions.

Returned Datatype

The returned datatype provides the login URL, the response from SAML, and the relay state. These are described in the table here:

Table: LoginBridge

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: Sep 26, 2024
additionalAttributesstring  Long-TermAny additional attributes.
allowedUsers[User]yes Long-TermA list of users allowed to access the bridge. See User.
anyUserAlreadyLoggedInViaLoginBridgebooleanyes Long-TermTrue if any user in this organization has logged in to CrowdStream via LogScale. Requires manage organizations permissions. Whether to generate user names.
descriptionstringyes Long-TermA description of the login bridge.
generateUserNamebooleanyes Long-TermWhether to generate user names.
groupAttributestringyes Long-TermAny group attributes.
groups[string]yes Long-TermAny groups associated with the login bridge.
issuerstringyes Long-TermThe issuer of the login bridge.
loginUrlstringyes Long-TermThe URL for logging in.
namestringyes Long-TermThe name of the login bridge.
organizationIdAttributeNamestringyes Long-TermThe organization's unique identifier of the attribute name.
organizationNameAttributeNamestring  Long-TermThe organization's name of the attribute name.
publicSamlCertificatestringyes Long-TermThe public SAML certificate.
relayStateUUrlstringyes Long-TermThe relay state URL.
remoteIdstringyes Long-TermThe unique identifier of the remote connection.
samlEntityIdstringyes Long-TermThe unique identifier of the SAML entity.
showTermsAndConditionsbooleanyes Long-TermWhether to show the terms and conditions.
termsDescriptionstringyes Long-TermA description of the terms.
termsLinkstringyes Long-TermA link to the terms and conditions.