Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello everyone and welcome to the April edition of Techspert Talks. I’m Troy Raney and I’ll be your host for today's session. Today's presentation is Troubleshooting Embedded Analytics with Damien Villaret. Damien why don't you tell us a little bit about yourself?
Hi everyone. So, I’m Damien I’m working as a principal technical support engineer here at Qlik I’ve been at Qlik since nine years and my main focus is integrations, which is: API, mashup, extension and authentication.
Definitely. You are the expert in Support when it comes to those topics. Today we're going to be talking about what Embedded Analytics is in Qlik Sense; we're going to look at some different methods on how to actually embed charts and objects from Qlik Sense; we're going to discuss authentication; cover some really important settings when trying to set all that up; Damien's going to walk through a demonstration of those and we're going to take a look at how to troubleshoot some common issues. Damien for those of us who aren't that familiar with these terms what is Embedded Analytics?
So, Embedded Analytics is when you embed Qlik Sense charts on the third-party website. We have an example here.
Okay. So, this is an app that is using some Qlik objects right I see it's about the Oscars.
Yes. We see here it's just a picture and then we have some Qlik objects that are embedded on the site and you can actually interact with those Qlik objects, make some selection which will reflect on all the other objects on the page you can just also clear the selection here.
Yeah very cool. So, it's the same functionality as a Qlik app but building those objects into a separate website. Okay.
Yes, that's correct.
Now, where can we find some documentation on how to actually do this?
There are three different ways to embed Qlik Sense charts which are iFrame integration through the app integration API.
Okay, that's like just taking an entire sheet from an app and putting it into a website?
Yes, you can take the entire sheet, the entire app itself, and you can navigate through the different sheets in the app.
Oh, okay.
As you would do if you open the app from the hub, but you would have that in an iFrame on your own website. Okay. and what's the other methods then we have the single integration API which it's just exposing the single object which is a sheet or a single chart. Okay. that's just like we saw in the Oscars demo just pulling out individual charts and objects without the framework of the app yes that would be similar and you mentioned the third possible one is using Nebula.js or capability APIs to embed charts directly you don't need to go through an iFrame So, that. Okay. you would just call the API and the API will return the chart in html element on your site. Okay. given that there are different ways to do similar things which method would you recommend really depends on what you want to do and how much skill you have because if you go through the iFrame iFrame is much more simpler you just need basically to copy the URL put it in an iFrame and then you just need to handle the authentication part while if you use a mashup then you will need to code to the spacers object but you have much more control on what you do in the mashup you can customize basically any of the object. Okay. much more customizable but requires some skill yes all right performance wise also mashup will be faster than iFrames ah that's a good thing to know are there any important policies or settings to allow this functionality of embedding objects yes So, in order to be able to embed there are a few settings that need to be set this article explanation on the different settings. Okay. for example you need to make sure that your Qlik Sense Server is running on HTTPS and the website where you're embedding is also running HTTPS you need to set Same Site settings and you also need to set the hostel our list can you show us in the QMC where to find those settings yes first of all let's look at the HTTPS part by default HTTPS is enabled So, Qlik Sense Enterprise defaults automatically to use HTTPS yes and from here you can see it will be on port43 by default. Okay. and you would also need to make sure that the certificate that you have applied is trusted from the client So, by default there is no certificate applied here for demonstration purposes I have just installed this certificate on the machine where I’m gonna demo this So, basically you've got the same certificate installed and trusted on the Qlik Sense Enterprise machine and the server hosting the site where we'll be embedding.
Yes.
Okay. So, where were those other settings?
From here we are good but we need now to check the virtual proxy settings.
Okay.
You will go from the start page or you can go to get to the virtual proxy settings and here you need to make sure that you have set the Same Site attribute and what do those different options mean there So, no attribute means you let the browser decide basically So, in Chrome it default to Lax it would take the setting from the Chrome security settings yes. Okay. and none means that you can embed from a different website while a streak means that you can attempt it and lacks means Lax means you can embed from the same website basically lacks wood means you can only embed from this same machine that's hosting Qlik Sense yes. Okay. and none allows you to embed from any website that's correct. Okay. and then we also need to make sure that the Host File List contains the name of the server on which we are embedding the Qlik Sense charts.
Now, when embedding, is there some sort of authentication that's passed so the website where embeddings objects recognizes the user as a Qlik Sense user?
In the same way that we would connect to Qlik Sense hub, you also need to be authenticated to see the Sense chart. In this article here, we have some different recommendation based on which type of authentication you want to use.
So, here you've outlined a lot of different authentication types that you could consider; and you've discussed them; added links to where you can find more information; even ranked them in order of skill level so people can understand kind of what they might be getting into.
That's correct.
Is it possible to embed objects and run it without authentication?
Yes. So, if you want to embed and see those object without authentication as an anonymous user, you would need to have a specific type of license.
So, this article shows the types of licenses needed to run with anonymous access?
Yes.
So, I guess have a follow-up to that is the capability to embed objects is that free?
Yes, there is no extra cost for embedding objects.
All right, can you demonstrate for us how this all works?
Sure. So, first of all we are gonna demo how to use a single integration API.
Okay. That's just a single object. So, which chart will we be embedding.
For example, take this bar chart.
Okay.
Right click on it. We click on Share, and then we will have the URL that we need to put on our webpage in order to embed.
Okay. So, you just hit the copy button to grab that code to embed the chart into an iFrame?
Yes. So, I’m just gonna click on Copy. Open a code editor.
Is there a preferred code editor that you use or just Notepad ++ works fine?
For simple projects and Notepad ++ will just be fine.
Okay.
So, here I’ve just prepared a very simple html structure, and I’m gonna paste the URL that I’ve just copied.
Okay. Just copy it right in there.
Let's save this file.
And you're saving this on the machine that's hosting the website right?
Yes. So, I’m saving, I’m using IIS for this demo.
All right.
And I’m saving this file in the IIS root folder.
Okay. Great.
So, now we're gonna go again in our browser.
Yeah, let's test it out. So, this is the name of the machine hosting the site, and then name of that html file.
Yes. I’m just gonna open the browser Dev Tools also.
And how do you open the browser Developer tools?
So, you can either press f12 or you can go to the Chrome menu here, go to more tools, and go to the Developer tools.
Okay. So, when I open those up, I’m always a little confused at first because I’m not used to using them all the time. Where in the Developer tools do you like to look when you're monitoring traffic?
So, I usually go first to the network tab which is where you will see all the traffic on this on this page. Okay. Now I’m going to start loading the page and see what is happening in the Dev tool. All right. So, like we saw in the html document, it was going to say My First Heading, and then My First Paragraph and below that should be that bar chart that we saw in the app. Okay. So, obviously things aren't working as expected, what can you tell by looking at the Developer tools on the right?
So, here in the Developer tools we can see a graph of all the requests that are done and from this pattern we can see that it's just looping forever.
I’m assuming this will time out at some point. So, how would you go about troubleshooting this issue?
I’m gonna check any of the Qlik Sense URL to see what is happening in there. Okay. I’m just gonna stop the recording here.
Okay. So, the page will continue to try and load, but the Dev tools have stopped recording the feed. So, how do you search this?
Yes So, I’m gonna filter on the Qlik Sense Server name; so that I know which request turned on to Qlik Sense. Okay. So, all those I see the initiator is test.html So, that's your that's your IIS server trying to communicate with the Qlik Sense Server.
Yes. Qlikserver1.domain.local which is my Qlik Sense Server so it ask to authenticate, so it redirects because here where is the authenticate and then it's say found and redirect So, it's redirecting to the app.
Okay.
And in the response header here we can see that it asks the browser to set the cookie.
But nothing's really popping up as an error nothing's showing in red oh there's a warning isn’t there? There is a warning here. We can see the warning also here it's showing in yellow and when you have a cookie that is doing in yellow here it means that the browser doesn't accept it.
Okay.
So, there is something wrong with this cookie. We can just expand this here and check the cookie properties sure we have those properties and Same Site and we can see that Same Site is set to Lax.
Right, right, you mentioned a troubleshooting checklist can we take a look at that?
Yes. So, let's check all of those and in this demo we're only using one iFrame. So, we don't need to check the fourth point. Okay. I see it finally timed out and it gave us Unknown Error which is tells us nothing but you you've kind of already dug in and found that at least one of the settings the Same Site setting was set to Lax. So, we know there's something there that's wrong.
Yes. So, let's check the different setting from our checklist.
Okay. So, how would you check if HTTPS is being used?
In the Qlik Sense URL we have HTTPS. So, we are using HTTPS on the Qlik Sense.
Okay. what about the site where we're embedding?
So, we see here that it's not secure.
All right. So, that is basically telling you it's not using HTTPS. So, that's part of the problem.
Yes. So, that would tell us that it's even not using HTTPS or that the certificate is not trusted.
Okay. So, where would you go to correct that?
So, I’m using IIS to host my webpage So, I’m gonna go in the IIS settings; and in the default website I’m gonna right click, and go to edit bindings.
All right.
Here I can indeed confirm that there is only one binding for HTTP on port 80. I’m gonna add binding for HTTPS instead on port 443, and I’m gonna select a certificate here this is a certificate that I’ve pre-installed.
Okay. All right. So, now we have HTTPS listed there. So, that's correcting one problem. What else was on our checklist?
So, the next thing on our checklist was the Same Site settings.
All right was that in proxies?
So, that was in virtual proxies. And I’m gonna click the virtual proxy that I’m using for this integration, and I’m gonna go in advanced. This set to Lax and we would need it to be set to None.
That's a setting that allows embedding in other sites than the Qlik Sense Server machine?
Yes. For the browser to accept the cookie from a different site it you need to have the Same Site attribute set to None.
Okay.
Apply this and that will cause Qlik proxy service to do soft restart we're gonna disconnect it from this page. Okay. So, there's also the host allow list where do we find that which is also under advanced right just add the name of the server from where we want to embed which is dc1.domain.local. Apply.
And does it matter if it's the fully qualified domain name or the IP address?
So, it needs to be the name that you use in your browser when you access the site.
Okay, that makes sense. Shall we try and reload? And right away I see we've got the little secure icon the padlock on the URL visually I can see that we're running HTTPS the traffic on the right is moving it's but it's still not fully loading is it?
Actually I believe that's fully loaded, but the iFrame is too small. ah. Okay. So, that's why we're not seeing the whole thing So, we can just specify pixels So, that we can see the whole chart. Okay. and refresh there we go So, that seems to be working very smoothly can you show us how it works with the full app integration
Yes. So, for the full app integration choose any of the sheets that you want to embed, or you could even choose the app of the view if you want to have the overview in your iFrame, and you can just copy directly the URL. Okay.
And then just replace this URL in the iFrame So, the source of the URL here you can just replace it. Save this file. Go back to our browser and just refresh the page. Now we will have the full UI here ah So, it's got everything there So, we have that top menu you can select bookmarks see the different sheets So, you have the full UI in this that's great you mentioned there's a third method of doing this which is a little more complicated but that was using the Nebula Jave Script?
Yes. So, we're gonna demo how to create a mashup using a Nebula.js and where do we find information and how to do that?
So, you would go to Qlik.Dev, and on this page there is an example on how to build a simple mashup using Nebula.js this sample is aimed at Qlik Sense SaaS right this article explain the differences. Okay. So, you've broken it down specifically to using client managed Qlik Sense Enterprise So, how do we get started?
So, first of all let's open a command line and I’m gonna navigate to my project folder and once I’m in this folder I’m gonna create a new project you can just simply copy this line. Okay.
Note that you have to have Node.js installed before you can run with this command right paste this. I’m just gonna run this So, it's actually starting to create the mashup in the background. Okay. So, now the project is created. So, in our project folder we will have a new folder called Hello-cm which contain our project. There it is all right So, the next step is to go to this project and edit it I’m gonna go in the SRC folder I will need to edit the index.js file. Okay. there it is and edit in Notepad ++ modify those three lines here to match my Qlik Sense server here I’m gonna put the Qlik Sense Server name. Okay. a web integration id is specific to SaaS So, I don't need that line and then I would need app id and we can get that from the URL of the app right yes just copy the app id from the UI over here save this file. Okay. what was the next step according to the article So, the next step is to edit the connect.js file I’m just gonna replace the whole content by the code in the article. Okay. now I see it's got the dollar sign variable So, it's picking up the URL and the app id from another file yes So, it's reading the URL and the app id from the index.js.
Okay. Great.
Save this file and the next step would be to go back to index.js to add the objects that I want to display. And grab the same chart?
Yes. So, I’m gonna right click, Share but embed oh there it is right below the preview cool first copy the piece of code there's a place holder for this code I will just need to to replace this.
Okay. And then it's just missing the object id.
Copy the object id from my app and just save the file the last thing that we want to do before we start the project is just to use HTTPS on the project.
So, this is something specific for json that you need to configure the package to run in HTTPS?
Yes. So, for this sample we're using another js component which is called Parcel that acts as a web server.
Okay.
So, I’m just gonna copy the argument here and just add them to my command line. Okay. So, here basically it says I’m gonna use port 444 then indicate we want to use HTTPS, and we need to indicate which certificates we want to use and hostname. So, we can just save this.
And that host name is that the name of the server for Sense or the server where we're embedding?
It’s the server where we're embedding.
Okay. All right. So, are you ready to try and run this?
Yes. So, I’m now ready to run. So, first of all I need to move to my project. Type cd the name of the folder and then you just run npm run start.
Uh-oh. Could not get available port
Our server name is not correct. We forgot to update it here is dc1.domain.local not dc1.example.local. Okay. So, we can save this file again and let's try to run it.
All right, it automatically opens up a browser tab going to that specific port that we specified, 444. I can see that it's running HTTPS.
Yeah, well let's actually refresh and see if there is actually any error.
Okay. So, now we've recorded the traffic with the refresh. It was quick and it stopped. So, you're going to the end there and seeing what it's doing: no engine available. So, I tried to open the document and it couldn't and it's getting a ‘no engine available’ error.
Could be some cache .
So, that was actually some cache in the browser that was causing the issue.
Ah. Okay, but by clearing the cache or just not reading from the cache, that resolved it. There it is. The object is embedded into a simple site and it's got that object directly from the app.
Yes, it's always good for you when you debug something you that you click on Disable Cache here. So, you make sure that you don't have some previous cache from your previous trials.
Okay, now everything's been working relatively according to plan but if things go wrong what might go wrong and how could someone find some information?
So, there could be different things that can go wrong you usually go to here in the browser Dev tools just go to the Web Socket connection.
Okay, and how do you identify the Web Socket connection?
What you would do first is to filter on Web Socket here click on WS.
Okay.
And then you would find the lines that have your app id.
There it is.
And then you would go in the messages, here and the message is you have the different requests and response.
All right. So, you can see step by step what's actually happened there I see opening the dock; creating a session; starting the app layout; finding the specific object; it's kind of cool to see how it all breaks down.
Here you have everything that happens in the engine API and in Chrome as requests are displayed in green and the response are displaying white.
Okay.
So, identify the response to specific requests, you need to check the id. So, for example here I have id 1. So, if I want to check the response to the specific request, I will need to check the white line that have id one.
Okay. So, you can match up the request for the response.
Yes. So, here you can see that the fourth line has id1. So, that is a response to the first line.
Okay, but basically this kind of breaks it down and if something's wrong you could identify exactly where it went wrong using this feed.
Yes, that's correct, you can identify where it went wrong and you can address back; for example if you have an error, you can you could just filter here an error.
Okay.
And then trace back the object that returned the error.
Now how can this be downloaded so it can be shared with someone at Qlik Support to help with an investigation?
So, there's a little button here to export the HAR file.
Okay.
Which will also include all those requests in a Web Socket. Be aware this Web Socket might not get recorded if you open the browser Dev Tool after loading the page.
Right.
So, I would usually recommend that you refresh the page before exporting the file.
Okay. that makes sense. Do you have an example of another issue that users might run into?
Yes, let's try to open this mashup as a User 2. Okay, which basically doesn't have access to any app from the hub.
So, if User 2 tried to access that same link to the embedded object what would happen?
So, let's try to open the mashup with the browser Dev Tools open and see.
Okay.
So, let's load the mashup.
Okay. We can see that it's all gray and doesn't seem to be loading.
So, let's see what's happening.
So, if you did like you mentioned before and filter on web sockets let's go to messages. So, we can see there's an open doc here, and the response is on license: access denied.
All right. So, this user User2 does not have a license at least according to this log here.
Yes. So, let's go to the Qlik Management Console and check if the user has a license or not.
Okay.
And I’m going to license management, and user access allocations. So, that might be a little bit different based on the type of license that you're using.
But I’m looking at the list on the left and I don't see User 2 listed there.
Correct. So, let's allocate the license.
Okay.
Let's find User 2 and click allocate.
All right. So, let's get back to our Nebula.js mashup, refresh the page to see if it goes any better.
So, again it looks the same it's gray and not loading, but do we have the same error?
Let's check in the web socket. Okay. So, we see a little bit more lines here.
It does have an error there at the end.
A 403 error: a forbidden.
Oh.
What is object: read error.
So, yeah what is that telling you?
Well, it's telling me that the user doesn't have access to the object that I want to display.
Okay.
So, the first thing to check is actually if the user has access to the app itself. So, we can go back to the Headers tab, and we can find the id of the app. So, the same process is to just copy this id here, and try to open the app from the hub.
I would expect this to fail since it looks like User 2 has no available apps from the hub. Access denied. So, where would you check the access for this app?
Back to the Qlik Management Console, and I’m going to go to apps.
And the app are trying to access is Canadian Wildfire Analysis Story?
Yes. So, we can actually see here the id is the same, you could just a filter here on the id to make sure that you are acting on the correct app.
Oh that's a great tip.
So, here we can see that the owner is administrator and it's not published to any stream.
Ah! So, it's not working because it's not published to a stream that User 2 has access to. Shall we publish it then?
Publish, and just select a stream.
All right. So, if we try it again with User 2 hopefully now it will work.
Now, we can see that we can access the app.
Yeah. One issue at a time, but we're solving multiple issues let's try and load the mashup.
Just refresh.
Success. Okay. What else can you think of it someone might run into in trying to set this up?
Um. So, one other common issue would be that you're trying to use a type of chart which is not supported by Nebula.js.
Okay. So, there are some limitations to what type of objects you can actually embed depending on the method you're using?
Yes. So, if you just search for Nebula.js supported charts, go in the visualization section.
Okay. So, I see a long list of charts on the left, and all those are supported. Do you have an example of an error message you would see if you embedded a chart that is not supported?
Yes.
Okay. So, that's what you would see if it's running an unsupported version. Is there any way to get around that type of issue?
Yes. You could use a library that is called Picasso.js instead.
Okay, and Picasso is just a different Jave Script library?
Yes, that's a different Java Script library that is provided by Qlik open source.
Great, well, just so everyone knows; we'll be including the links with everything we've been showing today along with the recording of this session on Qlik Community. And now it's time for Q&A. Everyone please submit your questions in the Q&A panel on the left side of your on24 console. Damien, let's take some questions from the top.
I see the first question is: where can I find information about how to do this with a reverse proxy?
We actually have a kb article about how to consider Qlik Sense for reverse proxy. So, this is an example on how you would do it for IIS, but that would be similar also for the type of reverse proxy.
Okay. So, that goes through all the little steps that are necessary to get that set up. That's great.
Next question: how much is a license to allow embedding analytics?
There's no extra cost to use Embedded Analytics compared to a regular Qlik Sense license.
Okay. So, anybody can do this?
Yes, you would just need to make sure, for example; if you want to use anonymous access as we've said in the presentation that you have the correct type of license. Okay. Great.
Next question: how to configure Qlik Sense with SSL offloading where the SSL certificate is installed on a load balancer?
Okay. So, we don't have a step by step for that, but we have some general information about SSL offloading in an article. So, here in this article there's some general information regarding SSL offloading.
I’m not too familiar with this term; could you kind of summarize what SSL offloading is? What that means?
Yes, yes. So, so basically SSL offloading is when you have a reverse proxy or a load balancer in front of Qlik Sense; and you're using HTTPS between your client and your reverse proxy load balancer, but you're using HTTP between reverse proxy and Qlik Sense.
All right, interesting. Yeah, what do we have here on this article? Just some kind of best practices for how that would work?
Yes, some kind of best practices; and also when it comes to embedding as a connection to Qlik Sense come as HTTP, so Qlik Sense sees that connection as HTTP. We've talked earlier about the Same Site settings which I can show again. Here you have two sets of settings; ones are for HTTPS and the other ones are for HTTP. When you use SSL off loading, you need to use the one for HTTP instead of the one from HTTPS, because the incoming connection to Qlik Sense is in HTTP.
Okay. So, with that Same Site attribute for HTTP need to be set to None as well?
Yes. So, you will need to set it to None here and ‘Has Secure’ for HTTP, and actually those two settings are, they are solely used for this kind of case where you have SSL offloading; because embedding is not it's not allowed on HTTP. So, those two settings here they might be confusing because you might, you might think that you would be able to embed with HTTP, but those settings actually they are for this specific case where you're using a reverse proxy with SSL offloading.
Well, that's interesting to know that the only reason those settings are there in the QMC is for this specific use case. Okay. Well thanks for clarifying that.
Next question: we have is I have an issue where the Embedded Analytics works fine in Firefox but in Chrome it asks for credentials and loads forever, any idea why?
So, usually this this is actually also caused by Same Site you must you need to make sure that Same Site is set properly because Chrome enforced Same Site.
Okay. So, it sounds like that's a fairly common issue that people might run into is that that one setting right there.
Yes, that's a really common one.
Next question: is it possible to do this with Qlik view charts as well?
Yes. So, it's possible to embed that through an iFrame or embed even as a mashup, but I would rather recommend that for this kind of implementation that you move to Qlik Sense, because it is much more flexible and has much more rich functionalities when it comes to embedding.
Okay. Great. So, it's nice to know it's possible, but yeah just there's a lot more options for Qlik Sense.
The next question: what could cause a Google maps extension that's been working fine for years to suddenly go blank for users when they try to filter on the map?
So, yeah usually this kind of issue would be due to some kind of change in the Google API. We've seen that several times in the past. So, you need to make sure that the code of the extension is updated to use the latest Google APIs.
Okay, yeah that can happen if it gets kind of static for a while that the APIs get changed in the background after the extension's been developed.
Next question is: how would you investigate bad request 400 errors when authorization fails?
First thing that I would do is: to check in the browser Dev Tools on which endpoint is that bad request being thrown.
Okay. So, like where the authorization is breaking?
Yes. So, where exactly on with which URL, because it might look like an authorization issue / authentication issue but it might be: (for example) that the host white list is not set properly, because that would also return error 400; and on the, on the Qlik server side, what I would check is the proxy logs. The Qlik proxy logs in the in the trace folder. You have a file that is got the audit proxy on which usually records these types of error.
Okay. Great.
Next question: are there any specific log files for embedded charts?
So, there is not a specific one for embedded charts. So, the first thing that you would do is to check the browser Dev Tools. Check where it fails; if it fails on the authentication part, then you would need to check the proxy logs, the Qlik proxy logs and see what is happening. If it fails later on, it's something in the web socket in the engine, then you would need to check the engine logs.
And can you show us where those are?
So, the logs are located by default in Program Data > Qlik Sense, go to Log. So, first of all, you have the proxy logs here, and usually the first log that I check is audit proxy one.
Okay.
More general issues on the proxy service itself our check system; if this is due to certificate, so, we check security.
Great, I think that's helpful getting to actually see where to find those log files.
Next question: is it possible to allow users to open multiple tabs with different sessions in each? We're using anonymous access, as a note there.
For this kind of use case, you would either use and alternate identity specifying a slash identity, slash like any random string.
Okay.
Or you would use alternate state, but that would require you modified the app to so that it looks how you want.
Next question: any idea how to see variable values from an app to show in a mashup?
For variables, you would need to first call the API to fetch the variable; which you can find from the engine API reference on Qlik Dev. And go to API, and go to JSON RPC API, which is the engine API, and you would go to the reference. Getting variable is an action on the doc. All right. Get variable; we see this one is deprecated, the get variable. So, you will need to get it get use one of those two: Get Variable ID or Get Variable by Name. So, ‘get variable by name,’ it's probably the easiest one. So, you can get the variable by name and it will return you that variable; and then you can get the value of the variable, and then you can display it. So, here in generic variable, you can. So, you would find the info from get layout or get properties.
Okay.
And then you can display that, parse it, and display it in your Mash Up.
Great, it's nice just seeing this library of code that people can use.
Next question is: does hosting embedded apps affect server performance any differently than having a normal session open?
So, that's a kind of a tricky question because, if you do exactly the same thing that you're doing in the hub, then it would just act the same. It wouldn't affect performance more than you it would when you're accessing the hub; but then it depends on what you do in your, in your mash up; what kind of actions. Make sure that you don't enter any loop that would cause performance issues.
Okay.
Make sure that yeah you keep things simple.
So, really, it's it depends on the activity against the app, but?
Yes.
Okay.
That's correct.
And we have time for one last question and that is: we're seeing a page redirecting users to a login URL in a loop; any idea how to investigate or correct?
So, if it's going through a loop, I would check the browser Dev tools and see actually if the authentication is succeeded or not, because this kind of symptoms usually indicates that the authentication goes through, but that cookie cannot get saved. Probably because it doesn't have the correct properties.
Okay.
That's similar to the first issue that we ran into actually, when testing the single integration API.
Right. So, you just sort of look through the Dev tools on Web Socket, and follow the thread there?
Yes.
Well that's great. That's all the questions we have time for today. Damien, thank you very much for sharing with us. I think this will be helpful for a lot of people.
Thank you everyone for attending, and if you have any further questions, just reach out to us on the community.
Thank you everyone. We hope you enjoyed this Techspert Talks session. Here is our legal disclaimer, and thank you once again. Have a great rest of your day.