Paramètres des URL pour l'intégration Web

Modifié par Aurelie Bertrand le 2023/11/14 16:04


Prérequis : Les propositions d'intégration d'objets DigDash (tableaux de bord, pages, flux, etc.) dans des iframe nécessitent de mettre en place ces balises iframe au sein de pages HTML, elles-mêmes distribuées par un serveur Web. 

Dans ce document, nous présentons des URLs fonctionnant dans le contexte suivant :

  • Nom du serveur: ddsrv
  • Port: 8080
  • Domaine DigDash : ddenterpriseapi
  • Domaine tableau de bord DigDash: digdash_dashboard

Tableau de bord

Vous pouvez intégrer une ou plusieurs pages de tableau de bord dans une iframe.

URL : http://ddsrv:8080/digdash_dashboard/index.html

Paramètres disponibles :

  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur
  • domain=<domainname> Nom du domaine DigDash Enterprise (Exemple : ddenterpriseapi)
  • server=<server URL> URL du domaine DigDash Enterprise (Exemple : http://localhost:8080)
  • defaultPage=<pageId> Identifiant de la page que l'utilisateur souhaite afficher par défaut à la place de la première page (voir note ci-dessous pour plus de détails)
  • hideBanner=<true|false> Cache (true) ou montre (false) la barre de titre
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeurVariable> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe Filtres ci-dessous

Exemple : 

http://ddsrv:8080/digdash_dashboard/index.html?server=http://localhost:8080&domain=ddenterpriseapi&user=user1&pass=pass1&hideBanner=true&hideFilters=true&var=1

Identifiant de la page (pageId)
Cet identifiant est visible dans l'Éditeur de tableau de bord dans le menu contextuel de la page (affiché via un clic droit sur le titre de l'onglet de la page).
Deux identifiants sont affichés, l'un est unique et non modifiable (uid), l'autre est "calculé" en fonction du nom du rôle et de la page (ces 2 éléments étant modifiables, l'identifiant peut donc changer et le paramètre ne plus être efficace).
Les 2 identifiants sont utilisables par l'utilisateur pour ce paramètre.

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls.

Pages de tableaux de bord

Vous pouvez intégrer une page ou toutes les pages d’un tableau de bord d’un rôle ou d’un utilisateur dans une iframe.

URL : http://ddsrv:8080/digdash_dashboard/index.html?page=<user|role>[.<pagename>]

Si vous souhaitez afficher une page, spécifiez le nom de la page, sinon, l’URL affiche toutes les pages de l’utilisateur ou rôle.

Paramètres disponibles :

  • page=<user|role>[.<pagename>] Nom de la page préfixée par le rôle ou le user
  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur non authentifié
  • server=<server URL> URL du domaine DigDash Enterprise (Exemple : http://localhost:8080)
  • domain=<domainname> Nom du domaine DigDash Enterprise (Exemple : ddenterpriseapi)
  • hideBanner=<true|false> Cache (true) ou montre (false) la barre de titre
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeurVariable> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe  Filtres ci-dessous

Exemple : 

http://ddsrv:8080/digdash_dashboard/index.html?page=user1.page1&server=http://localhost:8080&domain=ddenterpriseapi&user=user1&pass=pass1&hideBanner=true&hideFilters=true&var=1

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls

Flux d’information

Vous pouvez intégrer un flux d’information (composant graphique) de votre portefeuille d’informations dans une iframe.

URL : http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=<flowid>

Vous pouvez facilement obtenir l’URL d’un flux d’information depuis la console d’administration. Pour cela, sélectionnez le flux, faites un clic droit et choisissez Copier l’URL du flux

Paramètres disponibles :

  • flowId=<flow> Identifiant du flux à afficher
  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeur> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe Filters ci-dessous

Exemple : 

http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=2340fd0&user=user1&pass=pass1&hideFilters=true

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls

Filtres

Vous pouvez définir des filtres spécifiques sur des dimensions qui seront pris en compte lors de l’intégration des URLs dans vos iframes.

Pour cela, renseignez les paramètres supplémentaires suivants :

  • NomDimension=ValeurFiltre

Si la dimension contient une hiérarchie ou plus, vous pouvez sélectionnez la hiérarchie et le niveau souhaités en ajoutant :

  • H<DimensionName>=NomHierarchie
  • L<DimensionName>=NiveauHierarchie

Exemple : 

http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=2340fd0&user=user1&pass=pass1&Geo=France&HGeo=Geography&LGeo=Country

Contraintes de sécurité

Certains navigateurs, par exemple Chrome à partir de sa version 80, peuvent refuser de transmettre des cookies provenant d'une page intégrée par une iframe, si cette iframe n'a pas le même domaine que la page l'incluant. Une erreur apparait alors dans la console du navigateur, à propos d'un attribute SameSite qui n'est pas défini.

L'attribut SameSite ne peut pas être défini sur un cookie non sécurisé. Donc le cookie doit aussi avoir un attribut Secure pour permettre de définir SameSite=None. Et l'attribut Secure ne peut être défini que si la connexion est en HTTPS.

Donc, en conséquence, intégrer une page de tableaux de bord, ou une page viewflow, en tant qu'iframe, si l'iframe et la page l'incluant ont des domaines différents, nécessite d'utiliser une connexion HTTPS, et de configurer les cookies.

Le document Mozilla suivant explique cette contrainte : https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Set-Cookie/SameSite