Privacy & RGPD
Pionne est conçu pour être conforme RGPD par défaut. Voici ce qui est fait, ce que tu dois savoir, et ce que tu peux faire en plus.
Ce que Pionne fait par défaut
Section intitulée « Ce que Pionne fait par défaut »PII scrubbing automatique
Section intitulée « PII scrubbing automatique »Avant l’envoi, le SDK nettoie les patterns PII courants : email, numéros de carte, IBAN, JWT, tokens, IPs, téléphones. Voir PII Scrubbing pour la liste complète et la personnalisation.
Pas de stockage email/IP
Section intitulée « Pas de stockage email/IP »- Le serveur n’enregistre jamais l’IP de l’event.
- Le champ
user.idest libre côté SDK — utilise un identifiant anonyme (UUID, hash). N’envoie jamais l’email.
// BienPionne.setUser('user_a8f2c1');
// MalPionne.setUser('john@doe.com');Rétention 30 jours
Section intitulée « Rétention 30 jours »Les events sont automatiquement supprimés après 30 jours. Aucune action requise. Cette durée couvre la grande majorité des besoins de debug post-release sans accumuler des données indéfiniment.
Droits des utilisateurs finaux
Section intitulée « Droits des utilisateurs finaux »Si un utilisateur de ton app demande la suppression de ses données :
- Récupère son
user.id(l’identifiant anonyme que tu lui as assigné). - Filtre les issues dans le dashboard Pionne par ce
user.id. - Supprime les issues concernées via DELETE /api/projects/{id}/issues/{issueId}.
Comme le seul lien entre un event et l’utilisateur réel est cet ID anonyme stocké côté ton app, la suppression côté Pionne est définitive.
Géographie (opt-in)
Section intitulée « Géographie (opt-in) »Pionne peut afficher la ville/région/pays approximatif sur chaque event, comme Sentry — utile pour repérer une régression localisée à un FAI ou un pays. Désactivé par défaut.
Activation :
Pionne.init({ token: '...', sendGeography: true,});Ce qui est fait :
- Un seul appel HTTP au démarrage vers
https://ipapi.co/json/(timeout 4 s). Pas de coordonnées GPS, aucune permission OS requise. - Le résultat —
{ city, region, country, country_code }— est mis en cache et joint à chaque event souscontexts.geo. - L’IP brute n’est jamais persistée : seule la ville/région/pays approximatif l’est, sous la même rétention 30 jours que le reste.
- Le lookup peut être désactivé runtime via
setEnabled(false)ou en repassantsendGeography: falseau prochaininit().
Tu veux ton propre fournisseur pour rester chez toi ? geographyEndpoint: 'https://geo.tonapi.com/' accepte n’importe quelle URL renvoyant { city, region, country, country_code }.
Screenshots
Section intitulée « Screenshots »Les screenshots sont :
- Opt-in (
captureScreenshot: true). - Stockées en JPG q=0.5 par défaut côté serveur Pionne.
- Soumises à la même rétention 30 jours.
Apps santé / finance / mineurs
Section intitulée « Apps santé / finance / mineurs »Pour ces verticales sensibles, va plus loin que le default :
Pionne.init({ token: '...', captureScreenshot: false, scrubPii: [ { re: /patient_[a-z0-9]+/gi, replace: '[patient]' }, { re: /diagnosis:[^\n]+/gi, replace: 'diagnosis:[redacted]' }, ], beforeSend: (event) => { // Drop tout ce qui contient des champs métier sensibles if (event.extra?.medicalRecord) return null; return event; },});Sous-traitance & hébergement
Section intitulée « Sous-traitance & hébergement »- Données hébergées en France (datacenter UE).
- Backend : stack Laravel + base SQL.
- Pas de transferts hors UE.
- Sous-traitants : Apple/Google pour les push notifications uniquement.