Embedding QS dashboards

Hello,

I have a Java application and I am trying to do anonymous QS embedding into Java app using JCef.

Setup:

  1. On QS side, the dashboard is available and when I load it in browser, it works fine.
  2. No white-listing done as the embedding is done from Java application.

Local environment:

  1. My local environment is open to internet so I can connect to QS endpoint and QS Website both and the dashboard embedding works, everything is perfect.

UAT (Citrix environment):

  1. This does not work.
  2. My dashboard is in us-east-1 so per the document (Supported AWS Regions for Amazon QuickSight - Amazon QuickSight) I have whitelisted https://us-east-1.quicksight.aws.amazon.com & quicksight.us-east-1.amazonaws.com.
  3. The api endpoint works (quicksight.us-east-1.amazonaws.com) and I can see a list of dashboard but the embedding does not work. I dont get any errors.
  4. When I trace it, it goes to a cloudfront.net ip address: 18.160.250.172.

Can you please suggest what could be the issue here?
Thank you.

Hello @harpar1808, have you whitelisted your application URL in the QuickSight console? That seems like the most likely issue if you are successfully querying the QuickSight API but it isn’t displaying the dashboards.

Either you, or someone in your account with access in the account will need to select the little user icon in the top right corner and click Manage QuickSight.


Then you need to go to the domains and embedding tab:

That is where you will see the place where you can whitelist your application URL for QuickSight to allow the dashboard embedding. Let me know if that resolves the error you are facing!

2 Likes

Hello @DylanM,

The embedding is done from a thick Java client (Swing based) and its using a JCef component to render browser content. It works perfectly from my local environment and embedding happens, I see the dashboard. This is only the case from UAT environment which is hosted in Citrix VDA.

Thanks.

I enabled more logs and I am getting more visibility into errors now. When I try to embed the dashboard url, I get following error:

16:40:04.111 INFO c.f.f.m.b.q.QuickSightWidgetModel - Dashboard URL: <correct_url_value>
16:40:04.897 INFO c.f.f.m.b.q.QuickSightWidget - quicksight-view-6 - LOGSEVERITY_ERROR - Uncaught NetworkError: Failed to execute ‘importScripts’ on ‘WorkerGlobalScope’: The script at ‘https://d758cqe2bs24d.cloudfront.net/app/esm/webworker/queryworker.73bddbbf6fac626976db.5.js’ failed to load., source: blob:https://us-east-1.quicksight.aws.amazon.com/<some_uuid>:1

Can you please advise?
Thank you.

Hello @harpar1808 !

Were you able to find a solution for this issue or are you still working on it?

I have never tried to embed a QuickSight dashboard into Citrix. Did you attempt the solution that @DylanM mentioned above and did it caused the same error?

Hello @harpar1808 !

Checking in, are you still working through this issue?

After looking into this more I have two theories. 1) This may be related to a CORS policy, in CloudFront, that is blocking the content OR 2) there is a Citirix permission/policy issue that is blocking the content from QuickSight. I would recommend checking both of those to make sure that you are able to pass the information from QuickSight to Citrix.

Ultimately, I recommend creating an AWS support ticket. Here are the steps to open a support case. If your company has someone who manages your AWS account, you might not have direct access to AWS Support and will need to raise an internal ticket to your IT team or whomever manages your AWS account. They should be able to open an AWS Support case on your behalf.

1 Like