---
title: "Politique de confidentialité"
description: "Comment StatHall collecte, traite et protège vos données personnelles."
lang: fr
canonical: "https://www.stathall.com/legal/privacy/"
updated: "2026-09-28"
---

# Politique de confidentialité

Cette politique décrit comment StatHall (« le Service ») collecte, traite et protège vos données à caractère personnel, conformément au Règlement Général sur la Protection des Données (RGPD, UE 2016/679).

## 1. Responsable du traitement

**Sébastien Soulier**, micro-entrepreneur — 12 Rue Georges Brassens, 32600 Lias (France) — SIRET : 10483848700015 — contact : `contact@stathall.com`. Aucun Délégué à la Protection des Données (DPO) n'est désigné à ce stade, l'éditeur assumant directement les demandes relatives à vos droits.

## 2. Données collectées

### 2.1 Données de compte

- **Email** : identifiant de connexion, envoi des emails transactionnels et — si vous y consentez — des notifications opérationnelles.
- **Mot de passe** : stocké uniquement sous forme de hash bcrypt (cost 12).
- **Consentements** : dates et valeurs d'acceptation des CGU, de la politique de confidentialité et de l'opt-in marketing.
- **Secret TOTP** (si 2FA activée) : stocké chiffré via Fernet.
- **Codes de récupération 2FA** : stockés uniquement sous forme de hash bcrypt.
- **Abonnements email** (depuis la v1.0.0-alpha.17) : vos réglages de notifications opérationnelles (alertes d'anomalie, résumé IA hebdomadaire), y compris la fréquence, le jour d'envoi et les éventuels réglages par app. Désactivés par défaut.
- **Statut de validation** (depuis la v1.0.0-alpha.19) : pour les comptes créés via signup public, l'état `en attente` ou `validé`, ainsi que — le cas échéant — l'identifiant de l'administrateur ayant décidé, la date de la décision et la raison de refus. Cet historique est supprimé avec le compte.
- **Message de motivation signup** (depuis la v1.0.0-alpha.19) : le texte libre que vous pouvez joindre à votre demande de compte (`Pourquoi ce compte ?`) est visible uniquement des super-administrateurs. Supprimé avec le compte.

### 2.2 Données d'usage

- **Audit log** : chaque action sensible (connexion, changement de mot de passe, export, suppression, ajout de credentials, synchronisation manuelle, décision d'approbation d'un signup) est tracée avec horodatage, adresse IP, user-agent et identifiant acteur. Rétention : 1 an pour les entrées courantes, 3 ans pour les entrées relatives à l'export et à la suppression de compte **ainsi qu'aux décisions d'approbation de signups** (obligation de preuve RGPD + anti-fraude).
- **Journal des emails sortants** (`email_log`) : chaque tentative d'envoi d'une notification opt-in (alerte d'anomalie, résumé IA) ou transactionnelle (invitation, décision d'approbation) est tracée avec sujet, statut (`sent` / `failed` / dédoublonné / désabonné) et horodatage. Rétention : 1 an. Inclus dans l'export de vos données (article 20). Un utilisateur ne peut jamais consulter les envois destinés à un autre compte (Row-Level Security).
- **Journal des notifications push** (`push_log`) : chaque tentative d'envoi d'une notification push (alerte d'anomalie, test de diagnostic admin) est tracée avec titre rendu serveur, statut (`sent` / `failed` / dédoublonné / désabonné) et horodatage. Rétention : 1 an. Inclus dans l'export de vos données. Lorsqu'un **administrateur StatHall** envoie un push de diagnostic sur votre appareil (cas typique : vous nous signalez ne plus recevoir vos notifications), vous recevez systématiquement un **email transactionnel de transparence** vous informant de l'action, du nom de l'administrateur, du nom de l'appareil ciblé et de l'horodatage. Ces tests sont consignés dans le journal d'audit (rétention 1 an).
- **Invitations** (depuis la v1.0.0-alpha.19) : lorsque vous invitez un utilisateur sur une app, une ligne est créée contenant son adresse email, le rôle proposé, votre identité d'inviteur, un empreinte bcrypt du jeton d'invitation (le jeton en clair n'est jamais stocké), les dates d'émission et d'expiration, et le statut de l'invitation (`pending` / `accepted` / `revoked` / `expired`). Ces lignes sont conservées pour l'audit et la prévention de rejeu. L'empreinte bcrypt rend techniquement impossible la reconstitution du jeton à partir de la base.
- **Préférences** : thème, langue, devise, app par défaut.

### 2.3 Données métier ingérées

Les données issues de vos comptes tiers (avis store, crashs Sentry/Firebase, métriques ASC/Play, versions, notes éditeur) sont stockées en base pour restituer le tableau de bord. Ces données peuvent contenir des données à caractère personnel de tiers (ex. pseudo d'un auteur d'avis) qui relèvent de votre responsabilité en tant que responsable de traitement pour vos applications.

**Accès aux données métier — principe de minimisation** : depuis la v1.0.0-rc.27, un super-administrateur de la plateforme **n'a pas accès** à ces données métier d'une app dont il n'est pas membre. Il voit uniquement les métadonnées techniques nécessaires au support (nom, connecteurs configurés, statut de synchronisation). Pour accéder ponctuellement aux données métier dans un cadre de support, il doit s'octroyer un **accès temporaire tracé** (voir section 2.5) dont vous êtes notifié immédiatement par email, ou être ajouté explicitement comme propriétaire, co-propriétaire ou lecteur par un membre de votre équipe. Cette restriction est appliquée à la fois au niveau applicatif et au niveau base de données (Row-Level Security Postgres).

### 2.4 Transferts de propriété d'une app

À votre initiative (depuis l'onglet *Équipe* d'une app), vous pouvez **transférer la propriété principale** d'une app à un co-propriétaire existant ou à un super-administrateur. L'événement est enregistré dans le journal d'audit (acteur, destinataire, horodatage) et les deux parties reçoivent un email de confirmation. Vous conservez un accès co-propriétaire après le transfert.

Un super-administrateur peut, à titre exceptionnel et tracé (décès, licenciement, propriétaire injoignable), forcer un transfert depuis la console d'administration sur demande d'un tiers légitime (héritier, RH, support). Cette opération requiert une raison écrite conservée en audit et déclenche un email immédiat à l'ancien propriétaire avec un canal de contestation.

**Justificatif joint au forced transfer** : le super-administrateur peut accompagner sa décision d'un fichier justificatif (PDF, PNG ou JPEG, 5 Mo maximum) fourni par le tiers ayant motivé la demande — par exemple un acte de décès, une attestation de cessation de fonction, un mandat de représentation. Ce fichier :

- est facultatif mais fortement recommandé pour matérialiser la preuve de la demande
- peut contenir des données personnelles de tiers (état civil, signatures, identité du demandeur) ; **vous êtes responsable** en tant qu'expéditeur de la légitimité de l'ingestion de ces données dans StatHall (cf. CGU section 5)
- est conservé **chiffré au repos** dans une table dédiée liée à l'audit log, avec un hash SHA-256 d'intégrité enregistré dans le journal
- a une **base légale** d'intérêt légitime (preuve d'opération, anti-fraude) et une **rétention** de 3 ans alignée sur les autres événements sensibles
- est accessible aux super-administrateurs (audit) ; l'ancien propriétaire peut obtenir copie sur demande à `contact@stathall.com` (canal de contestation officiel).

### 2.5 Accès temporaire d'un super-administrateur (« break-glass »)

Un super-administrateur peut s'octroyer un accès temporaire (1 à 72 heures) à une app dont il n'est pas membre pour des besoins de support technique. Chaque accès temporaire :

- requiert une **raison écrite** (20 caractères minimum), qui vous est communiquée par email
- déclenche un **email immédiat au propriétaire** de l'app dès le déclenchement
- est consigné dans le **journal d'audit** (création, révocation, expiration) avec une rétention de 30 jours après expiration
- peut être **révoqué** par le propriétaire en un clic depuis la fiche de l'app
- expire **automatiquement** à l'échéance, avec un email de confirmation au propriétaire.

Ce mécanisme remplace l'accès permanent illimité du super-administrateur qui existait dans les versions antérieures à la v1.0.0-rc.27.

### 2.6 Application mobile StatHall Mobile

L'application pour iOS et Android se connecte au serveur StatHall que vous choisissez : l'instance hébergée par l'éditeur, ou une instance auto-hébergée, dont l'exploitant est alors responsable du traitement pour ce qu'elle reçoit. Elle ne permet pas de créer un compte.

- **Connexion** : l'e-mail et le mot de passe saisis sont transmis au serveur choisi. Le mot de passe n'est pas conservé sur l'appareil ; les jetons de session sont rangés dans le trousseau iOS ou le Keystore Android.
- **Enregistrement de l'appareil** : à la connexion, l'application envoie la plateforme (iOS ou Android), sa version, la version du système, le modèle d'appareil, un nom d'appareil générique et le jeton de notification. Ces informations servent à acheminer les alertes et à lister vos appareils connectés, que vous pouvez révoquer depuis l'application. Elles sont supprimées avec le compte.
- **Notifications** : le jeton de notification est émis par Firebase Cloud Messaging (Google) et, sur iOS, par le service de notifications d'Apple, qui acheminent les alertes. Le contenu d'une alerte est rédigé par le serveur StatHall.
- **Notes et actions** : les notes que vous écrivez sur une anomalie et les actions que vous faites (acquitter, résoudre, reporter) sont enregistrées sur le serveur avec votre compte, comme depuis le cockpit.
- **Rapports de plantage** : activés par défaut et désactivables à tout moment dans **Compte → Confidentialité** de l'application. Ils partent chez Sentry (hébergement dans l'Union européenne, Allemagne) et contiennent la trace technique de l'erreur, le modèle d'appareil, la version du système et de l'application, ainsi que des mesures de performance sur un échantillon de sessions. Ils ne contiennent ni votre e-mail ni votre identifiant de compte ; les jetons et adresses sont masqués avant l'envoi, et aucune capture d'écran n'est jointe.
- **Sur l'appareil seulement** : cache hors ligne, préférences et journal de diagnostic restent sur votre téléphone. Le déverrouillage par Face ID ou empreinte est vérifié par le système : l'application ne reçoit aucune donnée biométrique.
- **Aucune publicité ni traçage** : l'application ne contient aucun outil publicitaire ni de mesure d'audience, et ne lit aucun identifiant publicitaire.

## 3. Finalités et bases légales

| Finalité | Base légale |
|---|---|
| Fourniture du Service (compte, tableau de bord) | Exécution du contrat (CGU) |
| Emails transactionnels (vérification, reset mot de passe, invitation, décision d'approbation) | Exécution du contrat |
| Emails produit (annonces, nouveautés) | Consentement — opt-in global pilotable depuis **Mon compte → Confidentialité**, révocable à tout moment |
| Notifications opérationnelles par app (alertes d'anomalie, résumé IA hebdomadaire) | Consentement — opt-in fin par app pilotable depuis **Mon compte → Notifications email**, révocable à tout moment. Désactivé par défaut. |
| **Validation des demandes de compte** | Intérêt légitime (prévention des abus, contrôle de la charge pendant la phase de lancement) |
| **Gestion des invitations multi-tenants** | Exécution du contrat (partage d'accès à une app entre utilisateurs autorisés) |
| Audit log sécurité | Intérêt légitime (sécurité du Service) |
| Notifications de l'application mobile et liste des appareils connectés | Exécution du contrat ; l'affichage des notifications dépend de l'autorisation donnée au système |
| Rapports de plantage de l'application mobile | Intérêt légitime (qualité et sécurité de l'application), désactivables dans l'application |
| Conservation du consentement et des demandes RGPD | Obligation légale |

L'opt-in marketing (communications produit générales) et l'opt-in des notifications opérationnelles (alertes par app, résumé IA) sont **indépendants** : vous pouvez activer l'un sans l'autre.

## 4. Destinataires et sous-traitants

Vos données ne sont ni vendues, ni louées. Les sous-traitants techniques suivants peuvent traiter des données pour le compte de l'éditeur :

| Sous-traitant | Rôle | Localisation |
|---|---|---|
| Scaleway | Hébergement des serveurs applicatifs | France (Paris) |
| Hetzner (Storage Box) | Sauvegardes chiffrées hors site | Allemagne |
| Fournisseur SMTP | Envoi des emails transactionnels **et** des notifications opt-in (alertes d'anomalie, résumé IA hebdomadaire) | Union Européenne |
| Cloudflare Turnstile | Anti-bot captcha (cookie-free) | États-Unis (DPF-compliant) |
| APIs tierces (Sentry, Apple App Store Connect, Google Play, Firebase Crashlytics) | Source des données métier, ouvertes par VOS credentials | Suivant le fournisseur |
| Sentry | Rapports de plantage de l'application mobile (désactivables) | Union Européenne (Allemagne) |
| Google (Firebase Cloud Messaging) | Acheminement des notifications de l'application mobile | États-Unis (DPF-compliant) |
| Apple (Apple Push Notification service) | Acheminement des notifications sur iOS | États-Unis (DPF-compliant) |
| Fournisseur LLM (DeepSeek / OpenAI / Anthropic) | Génération des synthèses IA reviews, opt-in explicite côté configuration d'app | Suivant le fournisseur |

**Sources publiques consultées pour vos serveurs** : pour dire si un logiciel supervisé est vulnérable ou en retard, le Service interroge deux types de sources publiques, sans jamais leur transmettre de donnée personnelle, de nom de machine ni d'adresse :

- la base de failles **OSV.dev** (Google), qui reçoit des couples « paquet, version » ;
- les **registres d'images publics** d'où vos conteneurs ont été tirés (Docker Hub, GitHub Container Registry, Quay, Google, Microsoft, Amazon ECR Public, GitLab, Elastic, Chainguard), qui reçoivent le nom public de l'image et son tag. Le nom d'une image construite sur votre machine n'est jamais envoyé.

**Analytics** : si l'éditeur active son instance Plausible self-hosted, celle-ci fonctionne **sans cookie** et n'exporte **aucune donnée personnelle** (pas d'IP brute stockée, pas de fingerprinting). Aucun consentement cookies n'est donc requis à ce titre.

## 5. Durées de conservation

- **Compte utilisateur** : conservé tant que le compte est actif. Après demande de suppression, période de rétractation de 14 jours puis effacement définitif (ou anonymisation, si vous l'avez choisie).
- **Appareils connectés à l'application mobile** : jusqu'à la révocation de l'appareil ou la suppression du compte.
- **Rapports de plantage (Sentry)** : 90 jours au plus.
- **Audit log** : 1 an (3 ans pour les événements export/suppression).
- **Journal des emails sortants** : 1 an.
- **Données métier ingérées** : conservées tant que l'app associée existe. L'historique long est nécessaire au calcul des tendances et des anomalies.
- **Logs techniques serveur** : 30 jours maximum.

## 6. Vos droits

Conformément aux articles 15 à 22 du RGPD, vous disposez des droits suivants :

| Droit | Exercice |
|---|---|
| Accès (art. 15) | `GET /account/export` depuis l'UI ou contact `contact@stathall.com` |
| Rectification (art. 16) | Modification depuis **Mon compte**, ou demande email |
| Effacement (art. 17) | **Paramètres → Confidentialité → Supprimer ou anonymiser mon compte** dans le cockpit, ou **Compte → Supprimer mon compte** dans l'application mobile (14 j de rétractation puis effacement) — voir [Supprimer son compte](https://www.stathall.com/docs/supprimer-son-compte/) |
| Portabilité (art. 20) | Export JSON complet via **Mon compte → Confidentialité → Exporter mes données** |
| Opposition (art. 21) | Désactivation de l'opt-in marketing depuis **Mon compte → Confidentialité** et/ou des notifications opérationnelles depuis **Mon compte → Notifications email** |
| Limitation (art. 18) | Demande par email, traitement suspendu durant l'examen |
| Réclamation | Vous pouvez à tout moment saisir la CNIL : `www.cnil.fr` |

Toute demande reçue est traitée dans un délai de 30 jours maximum, prorogeable de 2 mois pour les cas complexes (avec notification).

## 7. Cookies et technologies similaires

StatHall utilise un nombre minimal de cookies, tous strictement nécessaires au fonctionnement du Service. Voir la [politique cookies](https://www.stathall.com/legal/cookies/) pour le détail.

## 8. Sécurité

L'éditeur met en œuvre les mesures techniques et organisationnelles suivantes :

- Chiffrement TLS 1.2+ de bout en bout (HTTPS obligatoire via reverse proxy)
- Chiffrement Fernet en base pour tout secret (credentials tiers, TOTP, clés LLM utilisateur)
- Mots de passe hachés bcrypt cost 12, jamais stockés en clair
- Row-Level Security Postgres pour l'isolation multi-tenant (un tenant ne peut pas lire les données d'un autre via SQL direct)
- Cookies de session `HttpOnly; Secure; SameSite=Strict`
- Rate limiting sur les endpoints sensibles (login, signup, reset)
- Audit log horodaté et signé sur chaque action sensible.

Malgré ces mesures, aucun système n'est exempt de risque. En cas de violation de données susceptible d'engendrer un risque pour vos droits et libertés, l'éditeur notifiera la CNIL dans les 72 heures et vous notifiera dans les plus brefs délais (art. 33-34 RGPD).

## 9. Transferts hors UE

Les transferts hors Union Européenne sont limités aux sous-traitants listés en section 4, systématiquement encadrés par des clauses contractuelles types de la Commission Européenne ou par l'adhésion au Data Privacy Framework.

## 10. Contact et réclamations

Pour toute question relative à vos données : `contact@stathall.com`. Réponse sous 30 jours.

Vous disposez du droit d'introduire une réclamation auprès de la CNIL : **Commission Nationale de l'Informatique et des Libertés — 3 place de Fontenoy, 75007 Paris — www.cnil.fr**.
