Aller au contenu

Le bouton Statistiques

Chaque site d’eodia analytics porte un bouton Statistiques. Il ouvre un tableau de bord d’eodia insights qui ne montre que ce site — même à quelqu’un qui écrirait du SQL libre dans insights. Le mécanisme est l’intégration signée qu’insights sait déjà vérifier : analytics signe un jeton, insights applique une règle de ligne. Aucune ligne de code dans insights.

Créez un groupe, « eodia analytics », avec l’accès en lecture à la source PostgreSQL d’analytics.

Pour ce groupe, sur chaque vue du schéma analytics, une règle de ligne :

site_id est égal à {{user.site_id}}

Toutes les vues portent site_id, y compris celles générées (evt_*, cls_*) : ajoutez la règle aux nouvelles vues quand elles apparaissent. Un attribut absent ferme l’accès, comme toujours dans insights : sans site_id, aucune ligne.

Administration › Réglages › Intégration signée : créez un secret lié à ce groupe. Notez son identifiant (le kid) et sa valeur, affichée une seule fois.

Construisez les tableaux de bord à ouvrir depuis analytics — audience, campagnes, commerce, attribution —, avec un paramètre « site » (un filtre sur site_id). Notez l’identifiant de chaque tableau de bord et celui de son paramètre.

Fenêtre de terminal
INSIGHTS_URL=https://insights.exemple.fr
INSIGHTS_EMBED_KID=<l’identifiant du secret>
INSIGHTS_EMBED_SECRET=<la valeur du secret>
# INSIGHTS_EMBED_TTL=240 # durée de validité du jeton, en minutes

INSIGHTS_URL sert aussi au mode aperçu : c’est la seule origine que le script écoute pour dessiner une carte de chaleur.

Dans Administration › Réglages › Branchement à insights, déclarez chaque tableau de bord :

ChampExemple
Identifiant insightsl’identifiant du tableau de bord
Libellé« Audience », « Campagnes », « Commerce »
Paramètre « site »l’identifiant du filtre à verrouiller sur le site

Avec un tableau de bord, le bouton Statistiques l’ouvre ; avec plusieurs, il devient un menu.

  1. analytics vérifie que la personne a accès au site ;
  2. il signe un JWT HS256, avec le kid dans l’en-tête :
{
"resource": { "dashboard": "<identifiant insights>" },
"params": { "<paramètre site>": "<site_id>" },
"user": { "id": "analytics:<personne>", "attributes": { "site_id": "<site_id>" } },
"exp": 1791158400
}
  1. il journalise l’ouverture (insights.open) et ouvre INSIGHTS_URL/embed?token=… dans un nouvel onglet.

insights vérifie la signature, lit les données avec les droits du groupe lié au secret, et applique la règle de ligne avec l’attribut site_id du jeton. Le paramètre verrouillé est caché : la personne ne peut pas changer de site.

La durée du jeton (4 heures par défaut) couvre la consultation : insights revérifie le jeton à chaque exécution d’une carte. Au-delà, un nouveau clic sur Statistiques en signe un autre.

Administration › Réglages indique si INSIGHTS_URL et INSIGHTS_EMBED_KID sont présents, et liste les tableaux de bord déclarés. Ouvrez Statistiques sur un site, puis, dans insights, essayez d’en lire un autre : rien ne doit sortir.

eodia analytics est un logiciel libre d’Eodia.