Politique de confidentialité — Zoela (zoela.app)

Version 1.0 du 3 septembre 2026. Service en bêta.

Ce service est jeune et bouge encore : il est explicitement en bêta. Cette politique décrit ce que Zoela fait aujourd'hui, vérifié dans le code et l'infrastructure en production, pas ce qu'il fera peut-être demain. Elle se lit avec les conditions d'utilisation, qui forment avec elle les deux textes du service ; leur version, exigée par le serveur à l'inscription, est la 1.0.

Une règle guide ce texte : il se vérifie, il ne se relit pas. Chaque affirmation ci-dessous a été confrontée au code réel du serveur et de l'application. Là où nous ne pouvons pas vérifier, nous le disons.


1. Éditeur et responsable du traitement

Le service encaisse des paiements via Stripe : l'identité complète de l'éditeur (raison sociale, numéro d'entreprise, adresse) doit être publiée avec ce texte, pas après.


2. L'essentiel, dit en quelques phrases

Le cerveau de l'agent est un modèle cloud. Quand vous discutez avec Flash (glm-5.3-flash) ou Ultra (glm-5.3), vos prompts et vos images quittent votre Mac : ils passent par notre serveur api.zoela.app, qui les relaie vers ollama.com, un service exploité par une entreprise américaine. Aucune inférence locale n'est proposée par le service : sans ce passage par le cloud, l'agent ne fonctionne pas (seuls des modèles que vous auriez vous-même installés localement peuvent être utilisés depuis le sélecteur du chat, hors du service cloud).

Nous ne lisons pas vos contenus — mais nous les acheminons, et le serveur voit tout ce qui transite. Il serait malhonnête de prétendre le contraire. La question honnête n'est donc pas « gardez-vous quelque chose ? » mais : quoi, où, et combien de temps ? C'est ce que le reste de ce texte répond.


3. Les données que nous conservons — et où

Toutes les données du service vivent dans une seule base PostgreSQL, dans un conteneur sur le même serveur que l'API, chez notre hébergeur (voir section 9). Aucune donnée n'est répliquée ailleurs par nos soins.

DonnéeContenu exact
Compteadresse e-mail (unique clé du compte), mot de passe jamais stocké en clair (hachage bcrypt), formule d'abonnement, date de création
Empreinte machinel'UUID de la carte mère de votre Mac (IOPlatformUUID), envoyé à chaque requête, stocké dans le champ device_id — utilisé pour limiter l'offre gratuite à une place par Mac
Compteurs d'usagenombre de messages, tokens d'entrée, tokens générés, par mois et par fenêtre (4 h / 5 jours). Des compteurs, jamais du texte
Créditssolde de tokens de votre pack d'achat unique (10 M tokens pour 10 $), et l'identifiant de session Stripe correspondant
Paiementidentifiants Stripe (client, abonnement, statut) — aucun numéro de carte ni moyen de paiement, nous ne les recevons jamais
Erreursen cas d'échec, un fragment de message d'erreur de l'amont, tronqué à 120–300 caractères

À l'inverse, voici ce que le serveur ne conserve pas : aucun contenu de prompt, aucune réponse du modèle, aucun titre de conversation, aucune adresse IP en base, aucun journal de vos requêtes, aucun fichier de log applicatif, aucun identifiant Google/Apple au-delà de l'e-mail, aucun nom ni photo de profil.


4. Ce qui part vers le cloud — dit franchement

Quand vous utilisez l'agent cloud, ceci quitte votre Mac, en HTTPS, vers api.zoela.app puis vers ollama.com :

Cas particulier : sur la formule Power, vos images transitent deux fois vers ollama.com — une première fois pour générer une description texte (le modèle Ultra n'a pas de vision), puis la description est incorporée à votre prompt.

La messagerie (section 6) ajoute le contenu de vos e-mails à cette liste.

Notre serveur ne conserve aucun de ces contenus : le flux de réponse est réécrit vers l'app au fil de l'eau, rien n'est écrit en base ni en fichier. Mais il voit tout ce qui transite — c'est le rôle d'un relais, et nous ne dirons pas le contraire.

Ce que fait ollama.com du contenu reçu est régi par la politique de ce tiers, pas par la nôtre : nous ne pouvons pas vérifier ce qu'il en retient. [À COMPLÉTER : référence à la politique de confidentialité de ollama.com et à sa durée de rétention, à vérifier avant publication.]


5. Ce qui reste sur votre Mac

Les fichiers, eux, ne partent pas : vos conversations (JSON local, avec images), vos projets, vos fichiers de référence copiés, votre mémoire (Memoire.md), vos exports et vos instantanés git (points de restauration) sont stockés dans le dossier de documents de votre Mac, par l'application, sans envoi serveur.

Vos secrets locaux sont dans le Trousseau macOS (chiffré par le système, trousseau com.zoela.account), jamais dans des fichiers de préférences lisibles : le jeton de session, le mot de passe d'application e-mail, une éventuelle clé Ollama personnelle, le jeton GitHub. Dans les préférences système (UserDefaults) ne vivent que des données non secrètes : l'e-mail du compte et sa formule, avec d'autres préférences dont l'empreinte machine mise en cache et la langue d'affichage.

Les commandes de l'agent tournent dans un bac à sable : elles peuvent lire le disque, mais n'écrivent que dans le dossier du projet, les répertoires temporaires système (/private/tmp, /private/var/folders) et les caches et outils de développement de votre dossier maison (~/Library/Caches, ~/Library/Developer, ~/.npm, ~/.cache, ~/.config, ~/.ollama), via le mécanisme de sandbox macOS. Ouvrir un vrai dossier de votre Mac exige votre consentement explicite à l'écran, et les actions sensibles (exécuter, supprimer, naviguer hors du local) demandent une confirmation — sauf si vous avez activé le mode automatique.


6. La messagerie : le modèle lit vos e-mails

Si vous connectez la messagerie, soyez pleinement informé :

Si vous n'utilisez pas la messagerie, aucune de ces données ne quitte votre Mac.


7. Autres communications sortantes de l'application


8. Durées de conservation — chiffrées

Nous ne purgons pas ce que nous ne purgeons pas ; le voici tel que le code le fait :

DonnéeDurée
Contenu des prompts et des réponsesJamais conservé (transfert au vol, rien écrit)
Compte (e-mail, hash, formule)Conservé indéfiniment, tant que le compte existe
Empreinte machine (device_id)Conservée indéfiniment avec le compte
Compteurs d'usage (par mois)Conservés indéfiniment
Compteurs par fenêtre (4 h / 5 j)Conservés indéfiniment (lignes accumulées)
Crédits et achatsConservés indéfiniment (les crédits n'ont pas de date de péremption)
Jeton de session (JWT)30 jours, révocable immédiatement (voir section 12)
Identifiants OAuth temporaires (states)10 minutes, usage unique
Secret client Apple (JWT signé)1 heure
Adresses IP des gardes anti-abusEn mémoire vive uniquement, jamais écrites en base ni loggées : chaque entrée expire au bout de 10 minutes à 1 heure selon la garde, et est effacée de la mémoire au plus tard quand le plafond de 10 000 entrées est atteint
Cache de la liste des modèles10 minutes (noms de modèles uniquement)
Fragment d'erreur amont (last_error)Jusqu'au remplacement par l'erreur suivante

Point important et peu flatteur : aucune sauvegarde de la base n'est mise en place dans le code ni dans la configuration de déploiement que nous exploitons — à notre connaissance, ni chez nous ni chez l'hébergeur. Conséquence honnête : en cas de perte du serveur, vos comptes peuvent être perdus sans récupération possible. [À COMPLÉTER : confirmer qu'aucune sauvegarde Dokploy/Hostinger n'existe, ou documenter celle mise en place et sa durée.]


9. Sous-traitants et destinataires — ce que chacun reçoit

TiersCe qu'il reçoit
Hostinger (VPS srv1227322)L'infrastructure physique du serveur de comptes et de la base de données, à Boston, Massachusetts, États-Unis. Les journaux techniques que Dokploy et l'hébergeur collectent de leur côté (durée de rétention inconnue de nous) peuvent inclure des adresses IP. [À COMPLÉTER : rétention des logs côté hébergeur]
ollama.com (entreprise américaine)Le corps complet de vos prompts, vos images, votre audio, la mémoire utilisateur et projet, les extraits de fichiers de référence, le contenu des e-mails (classement et réponses), et le résumé d'environnement — via notre relais. C'est le destinataire le plus significatif de ce texte
StripeVotre e-mail (création du client), notre identifiant interne de votre compte, et les montants. Rien d'autre : ni nom, ni adresse, ni empreinte machine, ni contenu. Le paiement a lieu sur le domaine de Stripe
GoogleVotre connexion OAuth (e-mail + mot de passe de session côté serveur) ; nous ne lisons que l'e-mail via l'endpoint userinfo — pas le nom, pas la photo, pas l'identifiant de compte
AppleIdentique : nous ne lisons que l'e-mail depuis le jeton d'identité envoyé par Apple

Aucun service de télémétrie, d'analytics ou de journalisation externe n'existe dans le serveur. Le serveur n'envoie aucun e-mail : pas de vérification d'adresse, pas de réinitialisation de mot de passe, pas de facture (les reçus viennent de Stripe). Cette absence d'e-mails a une conséquence importante pour vous : voir la section 15.


10. Transferts hors de votre pays — dits franchement

Si vous êtes dans l'Union européenne, au Royaume-Uni, au Canada ou au Québec : vos données sortent de votre région, et ce dès la première utilisation du cloud.

Nous n'utilisons pas, à ce jour, de mécanisme formel de transfert (clauses contractuelles types, etc.) pour ces flux. [À COMPLÉTER : mise en place d'un mécanisme de transfert conforme si l'offre s'ouvre à l'UE.] Si ce point vous pose problème, le service tel qu'il est conçu ne vous conviendra pas pour le cloud — nous préférons le dire.


11. Fondements juridiques, par finalité

FinalitéFondement
Créer et gérer votre compte (e-mail, mot de passe, session)Exécution du contrat
Relayer vos prompts vers le cloud et vous facturer les tokensExécution du contrat
Paiements, abonnements, créditsExécution du contrat ; conservation des enregistrements d'achat : obligation légale (comptabilité)
Limiter l'essai gratuit à une place par Mac et prévenir les abus (empreinte machine, gardes sur IP en mémoire)Intérêt légitime (protéger un service gratuit contre les comptes multiples et l'abus)
Connexion par Google ou AppleVotre consentement, que vous retirez en utilisant la connexion e-mail/mot de passe ou en ne connectant pas ces fournisseurs
Journalisation technique des erreurs serveur (sans IP, sans contenu)Intérêt légitime (maintenir le service en état de marche)

12. Sécurité — ce qui est fait, sans surenchère

Deux faiblesses connues, dites telles quelles :

1. Le jeton de session transite dans l'URL lors d'une connexion Google ou Apple (il finit dans l'historique de votre navigateur, où il peut rester jusqu'à 30 jours — la durée de vie du jeton). C'est un point d'audit connu, en cours de correction. Sur un Mac partagé, purgez l'historique du navigateur après une connexion OAuth ; 2. Si la variable d'environnement du secret de signature n'est pas réglée, un secret est généré et stocké en texte clair dans la table settings de la base — mécanisme prévu par le code ; [À COMPLÉTER : confirmer que la variable est bien réglée en production].

Nous ne prétendons pas que le service est « totalement sécurisé » : aucun service ne l'est.


13. Témoins de connexion (cookies)

Aucun. Le site vitrine zoela.app ne pose aucun cookie, aucun traceur publicitaire, aucun service d'analyse d'audience — vérifié dans le code : pas de Google Analytics, pas de Fathom, Plausible, Umami, Matomo ni autre. Le seul stockage navigateur est une préférence locale (zoela-lang, votre langue d'affichage), qui n'est envoyée nulle part.

L'application, elle, n'utilise pas de cookies du tout. Conséquence : nous n'avons pas besoin de bandeau de consentement aux cookies, et c'est tant mieux.


14. Vos droits

Vous disposez des droits suivants sur vos données : accès (savoir ce que nous avons), rectification (corriger), effacement (faire supprimer), portabilité (récupérer dans un format lisible), opposition (vous opposer à un traitement fondé sur l'intérêt légitime), et retrait du consentement là où le consentement est le fondement.

Autorités de contrôle. Si vous êtes dans l'Union européenne, vous pouvez saisir la CNIL (cnil.fr) — ou l'autorité de votre pays de résidence. Si vous êtes au Québec, vous pouvez saisir la Commission d'accès à l'information du Québec (CAI). Vous pouvez aussi vous adresser directement à nous d'abord ; nous répondrons, sous trente jours au plus tard.


15. Perte d'accès au compte — lisez ceci avant que ça arrive

Le serveur n'envoie aucun e-mail, donc aucune réinitialisation de mot de passe n'existe. Si vous vous connectez par e-mail et mot de passe et que vous oubliez ce mot de passe, votre compte est définitivement perdu — avec son abonnement et ses crédits, sans récupération possible de notre part : nous ne pouvons pas réinitialiser un hash bcrypt.

Notre conseil, que nous préférons donner franchement : connectez votre compte à Google (ou Apple) en plus du mot de passe. Ce chemin de connexion ne dépend pas d'un mot de passe que vous pourriez oublier. Si vous n'utilisez que la connexion mot de passe, notez ce mot de passe dans un endroit sûr : personne, ni nous ni un support, ne pourra vous le remettre. [À COMPLÉTER : si un mécanisme de récupération (e-mails transactionnels ou autre) est mis en place, remplacer cette section et prévenir les utilisateurs.]


16. Mineurs

Zoela n'est pas destiné aux moins de 16 ans (15 ans au Québec). Nous ne vérifions pas l'âge à l'inscription — c'est une limite que nous reconnaissons. Si vous êtes parent et qu'un compte a été créé par votre enfant, écrivez à contact@zoela.app : il sera supprimé. [À COMPLÉTER : âge minimum retenu si différent.]


17. Changements de cette politique

Le service étant en bêta, cette politique peut évoluer. La date de version en tête de page fait foi ; un changement substantiel sera signalé dans l'application ou sur le site. La version que vous avez acceptée à l'inscription reste consultable sur demande à contact@zoela.app.


18. Nous contacter

obed Bucyana — service Zoela (zoela.app) contact@zoela.app [Raison sociale, numéro d'entreprise et adresse : À COMPLÉTER]

CNIL (Union européenne) : cnil.fr — Commission d'accès à l'information du Québec : cai.gouv.qc.ca