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
- Service : Zoela (zoela.app) — application macOS d'agent assisté par IA, et son service de comptes api.zoela.app.
- Éditeur et responsable du traitement : obed Bucyana.
- Raison sociale : [À COMPLÉTER]
- Numéro d'entreprise : [À COMPLÉTER]
- Adresse postale : [À COMPLÉTER]
- Contact : contact@zoela.app (unique adresse de contact du service).
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ée | Contenu exact |
|---|---|
| Compte | adresse e-mail (unique clé du compte), mot de passe jamais stocké en clair (hachage bcrypt), formule d'abonnement, date de création |
| Empreinte machine | l'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'usage | nombre 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édits | solde de tokens de votre pack d'achat unique (10 M tokens pour 10 $), et l'identifiant de session Stripe correspondant |
| Paiement | identifiants Stripe (client, abonnement, statut) — aucun numéro de carte ni moyen de paiement, nous ne les recevons jamais |
| Erreurs | en 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 :
- Tout l'historique de la conversation (rôle + contenu de chaque message), pas seulement le dernier tour ;
- Vos images, converties en JPEG base64 (jusqu'à 1024 px, corps de requête jusqu'à 10 Mo) ;
- De l'audio (WAV base64) quand vous dictez ;
- La mémoire utilisateur (le fichier Memoire.md de votre Mac) et la mémoire du projet (ZOELA.md, 4 000 premiers caractères) — leur contenu est injecté dans le prompt système et part donc au cloud, même si les fichiers restent sur le Mac. C'est une nuance importante que nous préférons dire : « rien ne quitte le Mac » est vrai pour les fichiers, faux pour leur contenu ;
- Des extraits de vos fichiers de référence (3 000 premiers caractères, images jusqu'à 12 Mo) ;
- Un résumé de votre environnement (version de macOS, nombre de cœurs, dossier de travail, logiciels détectés : node, python3, git, ffmpeg, etc.) ;
- Votre empreinte machine (en-tête X-Zoela-Device), à chaque appel.
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é :
- Le relevé se fait depuis votre Mac, directement vers le serveur IMAP de votre fournisseur (SSL port 993) : aucun serveur intermédiaire ne lit votre boîte ;
- Le classement sort du Mac : pour chaque relevé, un prompt envoyé au cloud contient, pour chacun des 10 derniers messages, l'expéditeur, le sujet et un aperçu de 280 caractères au plus, plus votre mémoire utilisateur ;
- La proposition de réponse envoie le corps complet du message au modèle cloud ;
- L'envoi des réponses ne passe pas par nous : votre Mac parle directement au serveur SMTP de votre fournisseur, avec votre clé d'application ;
- Votre clé d'application ne quitte jamais le Trousseau : le modèle ne la voit jamais, le serveur de comptes non plus.
Si vous n'utilisez pas la messagerie, aucune de ces données ne quitte votre Mac.
7. Autres communications sortantes de l'application
- Vérification de mise à jour : à chaque lancement (environ 4 secondes après le démarrage), l'app interroge https://zoela.app/mise-a-jour.json — un manifeste (version, URL de la DMG, empreinte SHA-256, taille), sans notes de version. Aucune donnée personnelle n'y est envoyée ;
- Requêtes de compte : catalogue des formules, état du compte, paiement Stripe, liste des modèles — toutes vers api.zoela.app avec votre jeton de session.
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ée | Durée |
|---|---|
| Contenu des prompts et des réponses | Jamais 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 achats | Conservé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-abus | En 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èles | 10 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
| Tiers | Ce 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 |
| Stripe | Votre 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 |
| Votre 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 | |
| Apple | Identique : 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.
- Le serveur de comptes et la base de données sont à Boston, Massachusetts, États-Unis (VPS Hostinger srv1227322, IP 147.93.47.117 — vérifié le jour de la publication de ce texte) ;
- L'amont des modèles, ollama.com, est également américain : vos prompts et images y sont traités sur le territoire américain ;
- Stripe, Google et Apple traitent leurs parts selon leurs propres infrastructures, principalement hors de l'UE et du Canada.
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 tokens | Exécution du contrat |
| Paiements, abonnements, crédits | Exé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 Apple | Votre 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
- Le mot de passe du compte n'est jamais stocké en clair : hachage bcrypt ; les comptes créés via Google ou Apple reçoivent un mot de passe aléatoire de 32 octets, non connectable ;
- Le jeton de session vit dans le Trousseau macOS (com.zoela.account), jamais dans UserDefaults ; il est valable 30 jours et révocable immédiatement : la déconnexion invalide tous les jetons du compte d'un coup ;
- Les clés Ollama Cloud ne sortent jamais du serveur : stockées dans la base (en clair — nous ne prétendons pas le contraire), mais jamais renvoyées à l'application, qui n'envoie que son jeton de session ;
- HTTPS sur tout le service ; aucun port de base de données ni d'API ouverts directement sur Internet ;
- Les gardes anti-abus (limitation de tentatives de connexion, d'inscriptions) fonctionnent sur IP en mémoire vive uniquement, jamais persistées ;
- Ce que le serveur journalise : la méthode, l'URL, les messages d'erreur, quelques messages techniques internes (type d'événement Stripe, identifiant numérique de compte) et des erreurs amont tronquées. Jamais : IP, User-Agent, prompts, réponses, e-mails des utilisateurs.
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.
- Exercice : écrivez à contact@zoela.app. Comme le service n'envoie pas d'e-mails, nous répondrons par ce même canal, sous trente jours au plus tard ;
- Ce que vous pouvez faire vous-même : consulter et télécharger vos conversations depuis votre Mac (elles sont en fichiers JSON locaux, donc déjà portables) ; vous déconnecter (révocation immédiate des jetons) ; résilier votre abonnement en deux clics via le portail de facturation Stripe — votre compte repasse en gratuit et vos crédits achetés survivent ;
- Suppression du compte — sans détour : le service ne propose pas aujourd'hui de suppression de compte automatisée. Aucun bouton dans l'app, aucune route sur le serveur ne supprime un compte ; résilier l'abonnement ne supprime ni le compte ni ses données. Pour demander la suppression de votre compte et de ses données, écrivez à contact@zoela.app — la suppression sera faite manuellement sur la base. [À COMPLÉTER : une route de suppression de compte est prévue ; mettre à jour cette section le jour où elle existe, et indiquer son délai.]
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