Can Web Apps be embedded in an external website?

Solved!
Meredith
Level 1
Can Web Apps be embedded in an external website?
I would like to know if there is a way to embed a dashboard or web app into an external website, so that the visualization would be updated when the web app/dashboard is updated in DSS.
1 Solution
Alex_Combessie
Dataiker Alumni

Hi,

By design, web-apps developed in DSS require a logged-in user. They can be exposed internally within your organisation but not to external people without a DSS login.

Having said that, you can develop a web-app externally which calls Dataiku API nodes in the backend. This is a common pattern that we have applied in this example: https://blog.dataiku.com/predicting-taxi-fares-in-new-york-using-machine-learning-in-real-time.

You can use this external web-app here: https://taxifare.dss-demo.dataiku.com/

Best regards,

Alex

View solution in original post

11 Replies
jereze
Community Manager
Community Manager

Hi Meredith,



As of DSS 2.2, here is what you can do:




  • Embed a web app externally (you can find the URL of the iframe with a browser inspector)

  • Connect to your datasets with the Javascript API (and create your own visualizations with D3 for example)

  • More tricky: create a webapp with a backend Python and serve via an API what you'd like



You cannot expose a DSS Dashboard (or graph) externally. It is a feature that we have in mind but no ETA yet.



I hope that helps.



Jeremy from Dataiku

Jeremy, Product Manager at Dataiku
Graham_E
Level 2
Hi Jeremy,

I came across this post almost 2 years after it was made and I am wondering if there are any updates on it. Thanks!
0 Kudos
aitoufkm
Level 2

Hi,

I am also interested if there is a way to expose web-app externally (in 2020)

Thank you!

0 Kudos
Alex_Combessie
Dataiker Alumni

Hi,

By design, web-apps developed in DSS require a logged-in user. They can be exposed internally within your organisation but not to external people without a DSS login.

Having said that, you can develop a web-app externally which calls Dataiku API nodes in the backend. This is a common pattern that we have applied in this example: https://blog.dataiku.com/predicting-taxi-fares-in-new-york-using-machine-learning-in-real-time.

You can use this external web-app here: https://taxifare.dss-demo.dataiku.com/

Best regards,

Alex

Anshul-BKT
Level 1

hi Alex,

New to DSS.

I understand your response, however, I'm only limiting the exposure of the DSS generated webapp to a smaller group of users within an organization. Following is what I'm trying to achieve:

  1. Use a dataset(DB/CSV/XLS files) and create ML models to generate data driven insights.
  2. Expose insights through charts, graphs, tables, heatmaps using DSS dashboard.
  3. Embed these dashboards into DSS driven webapps( not using APIs ) deployed on, say Apache web-server on a client premise.

Is the above possible? Most interested in knowing if #3 can be achieved through clicks? 

Alternately, is it possible to embed DSS generated graphics, as on DSS dashboard, into webapps through API calls?

Thanks for your help. 

0 Kudos
Alex_Combessie
Dataiker Alumni

Hi,

From what you have explained, it looks like you could achieve your goal without using webapps.

Use a dataset(DB/CSV/XLS files) and create ML models to generate data-driven insights. โžก๏ธ This can be done using DSS visual Flow and AutoML features.

Expose insights through charts, graphs, tables, heatmaps using DSS dashboard. โžก๏ธ This can be done in visual DSS dashboards.

Embed these dashboards into DSS driven webapps( not using APIs ) deployed on, say Apache web-server on a client premise. โžก๏ธ No need to embed these dashboards, you can share dashboards directly with your end-users. Note that as of today, it is required for these end-users to have a DSS account, for security reasons.

Since you are new to DSS, perhaps starting with this guide on core concepts would help?

Hope it helps,

Alex

0 Kudos
Anshul-BKT
Level 1

Hi Alex, 
Thanks for your reply. 


I appreciate the direct dashboard link. Very useful. So, this is still a HTTP URL. correct? Something that users can bookmark in their browsers for easy access. 

Organizations prefer their own logo for the users and don't want to see references to say "Search DSS..." or "Dataiku" labels or logos. These are non-technical business users, who are a bit picky about what they use or show. There may be some way to overlay organization's logo and labels, which I will explore through the tutorials, however, if you provide me a direct link, I will bookmark it. 

We intend to use Dataiku for providing AutoML solutions through workflows behind the scene to help business users make data driven decisions. This user base is only interested in the end result and all the works flows need to be hidden away from them. Currently, I'm taking up the tutorials and learning through the basic instance of Dataiku, however, soon we will require a more scalable version.

Appreciate all your help.

0 Kudos
Alex_Combessie
Dataiker Alumni

Hi,

Yes, dashboard readers will get an HTTP/HTTPS URL which they can open with their DSS login. These readers will only be able to see the dashboards they have been granted access to, but not the rest of the projects (Flow, Visual ML, ...). 

At the moment, we do not offer options to hide the Dataiku logos and buttons. I will log that as a feature request in our product backlog.

Best regards,

Alex 

0 Kudos
Marlan

Hi @Anshul-BKT,

Public web apps is another option. https://doc.dataiku.com/dss/latest/webapps/public.html

More work certainly to develop but you have more control and can provide access to users who don't have a DSS login.

Marlan

0 Kudos
marawan
Level 3

hey @Alex_Combessie quick follow up question, would it be technically possible to implement the same taxi fares application you mentioned fully on the API Node, so that it's externally visible? I know that we can implement it using the Dataiku web apps as explained in the blog post, but is it then possible to move this application (with some modification) to be served by the API Node? I mean using the API Node to serve both the static HTML/JS content + the REST API calls

0 Kudos
Alex_Combessie
Dataiker Alumni

Hi,

This taxi fare webapp is a simple Flask app for the front-end, with a Python backend calling the API node endpoint. It's public as it's hosted on an external web server.

 You need a web server to serve the front-end. Dataiku API nodes are meant to be used in the backend.

Cheers,

Alex