Une base managée
eodia analytics fonctionne avec une base PostgreSQL managée : Amazon RDS, Google Cloud SQL,
Azure Database for PostgreSQL, Scaleway, OVHcloud… PostgreSQL 17, celui des fichiers Compose, est
conseillé. Il suffit de pointer DATABASE_URL vers elle et de retirer le service db du
déploiement.
DATABASE_URL=postgres://eodia:<mot de passe>@pg.exemple.fr:5432/analytics?sslmode=requireCe que l’utilisateur de l’application doit pouvoir faire
Section intitulée « Ce que l’utilisateur de l’application doit pouvoir faire »L’utilisateur de DATABASE_URL est le propriétaire des trois schémas — public,
collect, analytics — : il crée les tables, les partitions mensuelles, les vues et leurs
commentaires. Donnez-lui une base à lui, dont il est propriétaire.
Les vues lisent avec les droits de leur propriétaire : c’est ce qui permet au rôle de lecture de
ne voir que analytics, sans aucun droit sur les données brutes.
Créer le rôle de lecture à la main
Section intitulée « Créer le rôle de lecture à la main »Les migrations créent le rôle eodia_analytics si l’utilisateur de l’application en a le
droit (CREATEROLE). Sur une base managée, ce droit manque souvent : la migration le signale
dans le journal de l’API, et Administration › Réglages › Rôle de lecture indique que le rôle
n’existe pas. Créez-le alors avec un compte administrateur de la base :
CREATE ROLE eodia_analytics NOLOGIN;GRANT USAGE ON SCHEMA analytics TO eodia_analytics;GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO eodia_analytics;ALL TABLES couvre aussi les vues. Puis redémarrez l’API : si READER_PASSWORD est renseigné,
elle donne au rôle son mot de passe (LOGIN PASSWORD) — si elle en a le droit ; sinon, faites-le
vous-même :
ALTER ROLE eodia_analytics LOGIN PASSWORD '<mot de passe>';Le réseau
Section intitulée « Le réseau »eodia insights se connecte à la même base avec ce rôle. Restreignez l’accès à l’adresse
d’insights (règles réseau du fournisseur), et exigez TLS (sslmode=require côté insights).
Ce que la base ne voit jamais
Section intitulée « Ce que la base ne voit jamais »Aucune adresse IP n’arrive en base : elle est oubliée dans la mémoire de la requête. Les données brutes ne portent que des identifiants de visiteur pseudonymes, et le sel du hachage du jour est détruit le lendemain.
eodia analytics est un logiciel libre d’Eodia.