Politique de confidentialité

Dernière mise à jour : 2026-10-27

1. Responsable du traitement et champ d'application

Responsable du traitement : Giacomo Cacciatore — e-mail info@turnix.ch. Pour les demandes par voie postale, écrivez à cette adresse e-mail pour recevoir l'adresse postale. Nous répondons aux demandes relatives à la vie privée dans un délai de 30 jours.

Turnix est réservé aux personnes âgées d'au moins 18 ans. L'app ne vérifie pas l'âge.

Turnix est utilisable dans l'Union européenne (27 États), dans l'Espace économique européen (Norvège, Islande, Liechtenstein), en Suisse et au Royaume-Uni. La présente politique de confidentialité suit le règlement général sur la protection des données (RGPD, UE 2016/679), le UK GDPR avec le Data Protection Act 2018 et la loi fédérale suisse sur la protection des données (nLPD) avec son ordonnance.

2. Données que nous traitons

Compte (sur le serveur Supabase). Adresse e-mail ; le mot de passe, si vous vous inscrivez avec e-mail et mot de passe (le service d'authentification de Supabase ne le conserve pas en clair, mais uniquement sous forme d'empreinte cryptographique, à partir de laquelle on ne peut pas retrouver le mot de passe) ; le nom que vous saisissez lors de l'inscription ; le nom que vous choisissez dans la liste du PDF pour reconnaître votre ligne ; le mode du calendrier (PDF ou manuel) ; l'état du guide d'introduction et de la Légende ; la date de début de la période d'essai et si vous l'avez déjà utilisée ; si vous avez reçu des jours Premium grâce aux invitations, la date jusqu'à laquelle ils sont valables. Si vous vous connectez avec Google, Google communique à Supabase votre e-mail, votre nom, l'identifiant de votre compte Google et l'adresse de votre photo de profil (l'app n'affiche pas la photo) ; sur iPhone, si vous vous connectez avec Apple, Apple communique à Supabase votre e-mail (ou l'adresse anonyme d'Apple, si vous la choisissez) et un identifiant de votre compte Apple. Sur le téléphone, la session de connexion est conservée dans le stockage sécurisé du système.

Services (sur le serveur Supabase). Pour chaque jour : date, code du service (lu sur le téléphone dans la cellule du PDF, que l'app enregistre comme étiquette masquée en vous montrant l'image de la cellule, ou le type que vous choisissez si vous saisissez les services à la main), horaires, notes, statut, une empreinte de l'image de la cellule (pHash, pour reconnaître les services identiques ou modifiés) et le chemin du fichier de l'image sur le téléphone ; si la cellule change, aussi le code, l'empreinte et le chemin précédents. Les images des cellules restent sur le téléphone et ne vont pas sur le serveur. Le PDF que vous importez, qui contient aussi les noms et les services des collègues, reste dans les Archives PDF du téléphone jusqu'à ce que vous le supprimiez ou importiez un autre PDF du même mois, et il n'est pas envoyé sur le serveur. Pour trouver votre ligne, l'app lit sur le téléphone les noms de toutes les personnes du PDF (dans le texte du PDF ou, si nécessaire, avec Google ML Kit) : les noms des collègues ne quittent pas le téléphone ; le vôtre, celui que vous choisissez, va sur le serveur (voir « Compte »). Pour les données techniques que ML Kit envoie à Google, voir la section 5.

Noms et horaires des services. Les types de service créés à la main (nom, horaires, pause, couleur, icône et description) sont enregistrés sur le serveur Supabase. Les noms et les horaires que vous donnez aux types de service dans la Légende restent sur le téléphone, mais pour chaque jour qui a un nom l'app enregistre sur le serveur un « service dérivé » (nom et horaires du service de ce jour-là), qui sert au partage avec les collègues et, si vous le connectez, à Google Calendar : l'app le met à jour à chaque démarrage, même si vous ne partagez vos services avec personne.

Agenda, alarmes et tâches (sur le serveur Supabase). Événements personnels (titre, notes, couleur, horaires, rappels), listes de tâches (texte, fait, ordre ; le texte n'est pas chiffré par l'app), alarmes, règles des alarmes et jours sautés.

Partage avec les collègues. Si vous invitez un collègue et qu'il accepte, il voit vos services dérivés (nom et horaires) et votre nom, jusqu'à ce que vous révoquiez l'invitation ; son téléphone reçoit aussi l'identifiant de votre compte et, si vous utilisez Google Calendar, les identifiants Google de ces services, que l'app n'affiche pas. De même, si vous acceptez une invitation, la personne qui vous a invité reçoit l'identifiant de votre compte.

Notifications push. L'app demande l'autorisation pour les notifications et enregistre sur le serveur le code du téléphone pour les notifications push (Firebase Cloud Messaging, qui, sur iPhone, passe par le service de notifications d'Apple), pour chaque utilisateur qui se connecte ; aujourd'hui, seules les notifications des équipes l'utilisent. Le code est supprimé avec « Supprimer le compte » (pas avec « Se déconnecter »). Pour les notifications, la bibliothèque Firebase crée aussi un identifiant aléatoire de l'installation de l'app (Firebase Installation ID), qu'elle enregistre auprès de Firebase au démarrage de l'app et qui, selon Google, n'identifie ni vous ni le téléphone.

Journaux des serveurs. Lorsque l'app se connecte aux serveurs de Turnix (Supabase et le serveur des invitations sur Google Cloud), les fournisseurs enregistrent, pour la sécurité et le fonctionnement, les données techniques de la connexion, dont l'adresse IP et l'heure (voir la section 4 pour la durée).

Invitations. L'app pour iPhone n'a pas la section « Inviter des amis » : sur iPhone, aucun code d'invitation n'est créé, partagé ni utilisé. Si, avec le même compte, vous avez reçu des jours Premium grâce à des invitations, l'app sur iPhone lit sur le serveur combien de jours vous avez reçus et jusqu'à quand ils sont valables, pour savoir si Premium est actif.

Abonnement (App Store et RevenueCat). L'abonnement s'achète avec l'App Store d'Apple, qui gère le paiement : Turnix ne reçoit pas les données de votre moyen de paiement. Pour vous afficher le prix et savoir si vous avez l'accès Premium, l'app utilise RevenueCat : au démarrage de l'app et à chaque connexion, elle communique à RevenueCat l'identifiant de votre compte Turnix (ni votre e-mail ni votre nom), même si vous n'achetez rien. RevenueCat reçoit aussi l'historique de vos achats Turnix sur l'App Store, des données techniques du téléphone (par exemple le modèle et la version d'iOS), l'identifiant qu'iOS attribue sur le téléphone aux apps d'un même développeur (identifierForVendor), les langues préférées, la devise et le pays de votre App Store.

Google Calendar (seulement si vous le connectez ; fonction Premium). Avec « Connecter Google Calendar » dans les Paramètres, Google vous demande d'autoriser Turnix à voir et modifier les événements de tous vos agendas et à voir la liste des agendas auxquels vous êtes abonné (autorisations « calendar.events » et « calendar.calendarlist.readonly »). Dès lors, l'app écrit dans votre Google Calendar vos événements Turnix (titre, notes, date, horaires) et vos services dérivés (nom et horaires), avec un code technique qui sert à les reconnaître. Dans les mois qu'elle synchronise, elle lit les événements (titre, description, date, horaires, rappels) de l'agenda principal, de l'agenda Anniversaires (les anniversaires de vos contacts, même si vous l'avez masqué) et des autres agendas de votre liste, par exemple Jours fériés et les agendas que d'autres personnes partagent avec vous : aucun ne peut être exclu. Elle les copie dans Turnix comme événements, avec le nom de l'agenda d'origine dans la note : comme les autres événements, ils sont enregistrés sur le serveur de Turnix (Supabase). Aux événements de l'agenda principal qu'elle copie, l'app ajoute sur Google un code technique, invisible dans l'agenda, pour les reconnaître. Les suppressions des événements de l'agenda principal et de ceux écrits par Turnix sont reportées d'un côté à l'autre. La synchronisation démarre après l'ouverture de l'app et au retour au premier plan, après que vous avez créé, modifié ou supprimé un événement, et lorsque vous la demandez ; vous pouvez la suspendre dans les Paramètres. Aucune donnée de santé ne va à Google. Les clés d'accès à Google sont conservées sur le téléphone, dans la partie du trousseau iOS réservée à Turnix, par la bibliothèque de connexion de Google intégrée à l'app, qui les supprime lorsque « Déconnecter » révoque l'accès ; sur le téléphone, l'app conserve l'adresse du compte Google connecté, l'heure de la dernière synchronisation, les identifiants des événements synchronisés et, pour les services dérivés déjà écrits, leur nom et leurs horaires ; sur le serveur, elle conserve les identifiants Google des services dérivés. « Déconnecter » révoque l'accès et supprime ces données du téléphone ; les événements déjà copiés restent dans Turnix jusqu'à ce que vous les supprimiez et ceux déjà écrits restent dans votre Google Calendar. L'utilisation et le transfert vers toute autre application des informations reçues des API Google respectent la Google API Services User Data Policy, y compris les exigences d'utilisation limitée (Limited Use).

Santé (uniquement sur le téléphone). Sommeil, Bien-être et Rappels s'activent ensemble avec l'interrupteur « Santé » dans les Paramètres (ou depuis le Compagnon, avec la même boîte de dialogue). Les Rappels (titre, note, horaires et, si vous l'indiquez, « Fait » ou « Sauté ») sont une fonction générique et s'activent sans consentement ; Sommeil et Bien-être uniquement si, dans la boîte de dialogue d'activation, vous cochez la case du consentement explicite aux données de sommeil et de bien-être. Le Cycle s'active séparément, avec l'interrupteur « Suivi du cycle » (ou depuis le Compagnon) et son propre consentement. Ils sont tous désactivés tant que vous ne les activez pas. Voir la section 2.1.

Analyses (uniquement sur le téléphone). Si vous les choisissez avec un consentement distinct (la deuxième case de la boîte de dialogue « Santé » ou la ligne « Analyses » dans les Paramètres), l'app compare sur le téléphone vos services des 90 derniers jours avec les données de sommeil, de bien-être et de cycle et vous montre des moyennes (par exemple combien vous avez dormi en moyenne les jours avec un service de nuit par rapport aux jours de repos). C'est une forme de profilage (art. 4 point 4 RGPD) qui ne produit pas de décisions ayant des effets juridiques à votre égard (l'art. 22 RGPD ne s'applique pas) : les résultats restent en mémoire, ne sont pas enregistrés et ne quittent pas le téléphone. Vous pouvez retirer votre consentement à tout moment depuis la ligne « Analyses », sans désactiver les autres modules.

Diagnostic des erreurs (Sentry). Lorsque l'app se bloque ou rencontre une erreur, Sentry reçoit un rapport technique contenant uniquement ces données : date et heure de l'erreur ; type et texte de l'erreur et pile d'appels du code dans lequel l'erreur s'est produite, avec les adresses mémoire du code ; version de l'app et des outils avec lesquels elle est conçue, s'il s'agit d'une version de test ou publiée et si elle était au premier plan ; système d'exploitation, sa version et s'il est modifié (root) ; modèle, marque et caractéristiques techniques du téléphone (dimensions de l'écran en pixels et orientation, processeur, mémoire totale, si la mémoire est presque pleine, si un réseau est disponible et de quel type, s'il s'agit d'un émulateur) ; langue, fuseau horaire et format de l'heure ; l'état, accordé ou non, des autorisations que l'app demande ; les noms des écrans ouverts avant l'erreur, avec la date et l'heure ; pour les erreurs de synchronisation, la table et l'opération concernées (sans données) ; des codes aléatoires qui distinguent le rapport et l'ouverture de l'app au cours de laquelle il a été généré. Toute autre donnée que les bibliothèques ajouteraient est retirée avant l'envoi : les rapports ne contiennent ni vos identifiants ni ceux du téléphone, ni les paramètres d'accessibilité. L'app retire du texte des erreurs les identifiants du compte et des lignes de données (les longs codes au format UUID), les adresses e-mail, les valeurs des opérations sur la base de données et les dates des jours ; les textes écrits par vous ne peuvent en général pas être reconnus : si le message d'une erreur contenait, par exemple, le nom d'un service, ce nom resterait. Comme utilisateur, l'app indique un identifiant fixe, identique pour tous, et une adresse IP fictive, et Sentry est configuré pour ne pas conserver les adresses IP. L'app écarte les rapports dans lesquels le message d'erreur, les détails de l'erreur ou les étapes enregistrées avant l'erreur contiennent l'un des mots d'une liste fixe liée à la santé, en italien et en anglais (par exemple les mots pour cycle, sommeil, bien-être et rappel), et retire des autres les chemins des images des services. Avec les symboles de la version de l'app, on peut reconstituer à partir de la pile d'appels les noms des parties du code : un rapport peut donc montrer dans quelle partie de l'app l'erreur est née (par exemple celle du cycle), sans les données. Les rapports des plantages du code natif de l'app ne passent pas par ces filtres : ils contiennent aussi d'autres données techniques que la bibliothèque de Sentry collecte et peuvent contenir un identifiant aléatoire de l'installation de l'app et, si le plantage survient dans les premiers instants après le démarrage de l'app, la ville approximative déduite de l'adresse IP de la connexion. L'app envoie en outre, au plus une fois par jour pour chaque compte, un rapport de contrôle de l'intégrité des données : des comptages (uniquement des nombres, aucune date, aucun nom) avec les mêmes données techniques que les rapports d'erreurs.

Exportations. Les images (du mois ou d'un service), les fichiers CSV et les rapports PDF que vous créez ne vont qu'aux apps que vous choisissez.

Journal du téléphone. Dans la version publiée, le code de Turnix n'écrit pas de lignes dans le journal système du téléphone ; des lignes techniques du système, du moteur de l'app (Flutter) et de certaines bibliothèques peuvent apparaître, par exemple au démarrage et pendant la lecture des PDF.

2.1 Données relatives à la santé (uniquement sur ce téléphone)

Les données de sommeil, de bien-être et de cycle sont des données relatives à la santé (catégories particulières de données, art. 9 RGPD ; données personnelles sensibles au sens de la nLPD). Les rappels sont génériques, mais ils peuvent en contenir si vous les écrivez vous-même dans le titre ou dans la note : c'est pourquoi ils bénéficient des mêmes protections.

Ces données restent uniquement sur le téléphone : elles ne vont ni sur le serveur de Turnix ni à des tiers et n'ont pas de copies dans le cloud de Turnix. Sur le téléphone, les contenus sont chiffrés avec AES-256-GCM, avec une clé conservée dans le stockage sécurisé du système : flux et notes du cycle, horaires et qualité du sommeil, humeur, symptômes, énergie et notes du bien-être, titre et note des rappels. Restent non chiffrés, dans la mémoire privée de l'app : les dates des enregistrements (pour le cycle, donc, les jours marqués), les horaires des rappels et la mention « Fait » ou « Sauté », l'origine de chaque nuit de sommeil (saisie à la main, estimée ou confirmée) et les paramètres. Pour que les notifications arrivent même après un redémarrage, le téléphone conserve en clair, dans la mémoire privée de l'app, le texte des notifications déjà programmées (par exemple le titre d'un rappel ou un avis du cycle), jusqu'à ce qu'elles arrivent ou soient annulées ; les notifications sont aussi visibles sur l'écran de verrouillage, si les paramètres du téléphone le permettent.

La désactivation de l'interrupteur « Santé » supprime du téléphone les données de sommeil, de bien-être et des rappels et retire le consentement aux Analyses ; la désactivation de « Suivi du cycle » supprime les données du cycle.

3. Finalités et bases juridiques

Pour la Suisse : exécution du contrat, intérêt légitime et consentement (art. 31 nLPD).

4. Pendant combien de temps nous conservons les données

5. Prestataires (sous-traitants)

L'achat et le paiement de l'abonnement sont gérés par Apple avec l'App Store, selon les conditions et la politique de confidentialité d'Apple.

Aucune donnée n'est vendue ni utilisée à des fins publicitaires.

5.1 Cookies et stockage local

L'app n'utilise pas de cookies. Sur le téléphone, elle conserve : la base de données avec vos données, les images des cellules, les images des jours pour le widget et les PDF, le stockage sécurisé avec la session et la clé de chiffrement, la file d'attente des modifications à envoyer au serveur, les préférences, le texte des notifications déjà programmées, quelques compteurs de diagnostic, les données que les bibliothèques de Firebase, Sentry et RevenueCat conservent pour fonctionner et, si vous connectez Google Calendar, les données de synchronisation décrites à la section 2. Ils sont nécessaires au fonctionnement.

Le site turnix.ch n'utilise ni outils de statistiques ni cookies de profilage.

5.2 Délégué à la protection des données et analyse d'impact

Turnix n'est pas tenu de désigner un délégué à la protection des données (art. 37 RGPD). Pour les modules de santé et pour les Analyses, une analyse d'impact relative à la protection des données (AIPD, art. 35 RGPD) a été réalisée. Pour toute demande relative à la protection des données, écrivez à info@turnix.ch : nous répondons dans un délai de 30 jours.

6. Transferts hors de l'UE, de l'EEE, de la Suisse et du Royaume-Uni

7. Vos droits

Vous avez un droit d'accès, de rectification, d'effacement, de limitation, de portabilité et d'opposition, et vous pouvez retirer vos consentements à tout moment (art. 15-22 RGPD et UK GDPR ; art. 25-32 nLPD). Turnix ne prend pas de décisions automatisées ayant des effets juridiques à votre égard (art. 22 RGPD).

Dans l'app :

Pour le reste, écrivez à info@turnix.ch.

8. Autorités de contrôle

Vous avez le droit d'introduire une réclamation auprès de l'autorité de contrôle de votre pays de résidence ou de résidence habituelle. Ci-dessous la liste des 32 autorités compétentes dans les juridictions où Turnix est utilisable.

Comité européen de la protection des données (CEPD) — liste officielle à jour de toutes les autorités UE+EEE : edpb.europa.eu/about-edpb/about-edpb/members_en

── Union européenne (27 États) ──

── Espace économique européen (EEE, 3 États hors UE) ──

── Suisse ──

── Royaume-Uni (UK post-Brexit) ──

9. Sécurité

Les communications sont chiffrées (HTTPS/TLS). Sur le serveur, chaque utilisateur n'accède qu'à ses propres données (Row Level Security de Supabase), sauf les collègues qui ont accepté une invitation de votre part, qui voient vos services dérivés (nom et horaires) et votre nom. La personne qui invite et celle qui est invitée, au partage des services ou avec un code d'invitation, peuvent aussi recevoir l'identifiant du compte de l'autre, que l'app n'affiche pas.

Notification de violation de données personnelles (data breach) : en cas de violation de la sécurité des données personnelles présentant un risque pour les droits et libertés de l'utilisateur, Turnix notifiera l'autorité de contrôle compétente du pays de résidence de l'utilisateur dans les 72 heures suivant la découverte de la violation, au sens de l'art. 33 RGPD / UK GDPR et de l'art. 24 nLPD. Lorsque la violation est susceptible d'engendrer un risque élevé pour les droits et libertés des utilisateurs concernés (art. 34 RGPD), Turnix communiquera la violation directement aux utilisateurs sans retard injustifié, en langage clair et simple, en indiquant : la nature de la violation, les données et catégories concernées, les conséquences probables, les mesures prises ou proposées pour en atténuer les effets, le point de contact info@turnix.ch.

10. Modifications

Lorsque cette politique de confidentialité change, nous mettons à jour la date en tête et, à la première ouverture après la modification, l'app vous le signale par un avis qui mène à cette page.