Cross frame communication
To enable cross frame communication, Siren Investigate exposes an object at window.sireninvestigate; the object can be called only if both Siren Investigate and the container page are in the same domain.
Methods
generateShortUrl(shareAsEmbed, displayNavBar)
Generates a shortened URL containing the current Siren Investigate state and returns a promise fulfilled with the URL.
Parameters:
-
shareAsEmbed
: if set to true, the top navigation bar and dashboard tabs will be hidden when opening the shortened URL. -
displayNavBar
: if set to true, the dashboard tabs will not be hidden whensharedAsEmbed
is set to true.
Sample usage:
Put the following code in the container page, replacing
investigateframe
with the ID of the frame in which Siren Investigate
is embedded:
document.getElementById('investigateframe') .contentWindow .sireninvestigate .generateShortUrl(true, true) .then(function(url) { console.log("Generated URL: " + url); }) .catch(function(error) { console.log("An error occurred while generating the URL"); });
If possible, you should purge old documents of type url
from the
.siren
index periodically; old documents can be identified by
looking at the createDate
attribute.
setJWTToken(token)
Sets or updates the JWT token for the current session if JWT authentication support is enabled; returns a Promise after the token has been sent to the backend.
Parameters:
-
jwtToken
: a base64 encoded JWT token.
Sample usage:
Put the following code in the container page, replacing
investigateframe
with the ID of the frame in which Siren Investigate
is embedded:
document.getElementById('investigateframe') .contentWindow .sireninvestigate .setJWTToken(`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJraWJpdXNlciJ9.kZhLu15FwxrX4hPE1ciyzw_NufZ_oH7aSGpLZHachPg`) .then(function() { console.log('JWT token set.'); }) .catch(function(error) { console.log('An error occurred setting the token.'); });
After the token is set, you can change the Siren Investigate URL and the user should be authenticated; the application should call the method again with an updated token before the current one expires.