Dash
Documentation about how to integrate Dash in other applications
Direct authentication with access token#
In order to integrate Dash within your application, it is possible to point directly
to any valid URL and to automatically log in any user by
adding the access_token
query string at the end of the URL. For example
if you want to point to the list of dossier:
https://dash.pricehubble.com/my-dash?access_token=<YOUR ACCESS TOKEN>
Or you might want to point directly to a specific dossier overview
https://dash.pricehubble.com/dossier/169b2b19-01b6/overview?access_token=<YOUR ACCESS TOKEN>
Info
Replace <YOUR ACCESS TOKEN>
with the value returned by the authentication API.
To obtain this access token refer to the Authentication documentation
Warning
Do not reveal your access token to an untrusted user or the public. This technic is reserved for users within your organisation. If you need a public facing solution use a dossier permalink
Iframe integration#
Dash can be integrated into your existing application by the use of an iframe. The mechanism proposed for automatic authentication is the same as above for trusted users. For public facing applications you must use a dossier permalink.
<iframe
width="100%"
height="500px"
id="iframe"
src="https://dash.pricehubble.com/my-dash?access_token=<YOUR ACCESS TOKEN>">
</iframe>
Listen to events from Dash#
Dash will communicate some information via the Post Message API. You can listen to them this way:
<script>
var receiveMessage = function (event) {
var data = event.data
if (data.contentHeight) {
console.log(`content height: ${data.contentHeight}`)
// activate this line if you want the iframe height to follow Dash content
// document.querySelector('#iframe').height = data.contentHeight + 'px'
}
if (data.state && data.state === 'browserNotSupported') {
console.log("the browser doesn't support WebGL")
}
if (data.state && data.state === 'ready') {
console.log('iframe has fully loaded')
}
}
window.addEventListener('message', receiveMessage, false)
</script>
Control the navigation#
It is possible to order Dash to navigate to any specific pages without having to reload the whole iframe:
<script>
var iframe = document.querySelector('#iframe').contentWindow
// go to the list of dossier
iframe.postMessage({ navigate: '/my-dash' }, '*')
// go the overview of a specific dossier
iframe.postMessage({ navigate: '/dossier/169b2b19-01b6/overview' }, '*')
</script>
This is only useful if you want to override the natural navigation interface of Dash.
Warning
We are careful to not change any of our URLs without a good reason. But this is something that cannot be avoided completly. You have to be ready to make the necessary adjustments when that happens.