Politique de confidentialité — Lirvia
Privacy Policy — Lirvia
Français
1. Objet et responsable
Lirvia est une application Android de lecture EPUB conçue pour fonctionner principalement sur votre appareil. El Mehdi Benchekroun, éditeur de Lirvia établi en France, est responsable du traitement des données décrit dans cette politique. Pour toute question ou pour exercer vos droits, écrivez à benmehdy0@gmail.com.
2. Données locales et caractère facultatif du compte
Lirvia conserve dans l’espace privé de l’application vos fichiers EPUB et couvertures, titres et auteurs, positions et progressions de lecture, signets, surlignages, extraits sélectionnés, notes, conversations et réponses IA enregistrées, récapitulatifs, sessions, objectifs, préférences, cartes et historiques de révision Memory. Ces données restent sur votre appareil : le Reader ne les synchronise pas vers Firebase ou Cloudflare. Elles restent jusqu’à leur suppression dans l’application, l’effacement des données Android ou la désinstallation. Une sauvegarde ou un export n’est créé que vers un emplacement choisi par vous.
La lecture locale est disponible sans compte. La connexion Google, les fonctions IA et les abonnements sont facultatifs pour lire localement, mais un compte est nécessaire lorsque le service doit authentifier l’accès, appliquer le quota ou rattacher un achat. Supprimer un compte cloud ne supprime pas les données locales ; pour les effacer, supprimez les livres concernés ou effacez les données de Lirvia dans les réglages Android.
3. Compte, IA, abonnement et diagnostic
- Compte Google. Si vous choisissez « Continuer avec Google », Google et Firebase Authentication traitent l’identifiant Firebase, le nom affiché, l’adresse e-mail, le fournisseur de connexion et des données techniques telles que l’adresse IP, le user-agent et la plateforme. Lirvia utilise ces données pour authentifier et sécuriser le compte et rattacher quota et abonnement. Pour empêcher une remise à zéro artificielle du quota après suppression et recréation, le Worker calcule une empreinte HMAC-SHA256 pseudonymisée de l’identité Google ; l’identifiant Google brut n’est pas stocké dans D1. L’application peut aussi créer un identifiant Firebase anonyme technique ; aucun contenu de livre n’est stocké dans Firebase Authentication.
- Assistance IA. Lorsque vous l’utilisez volontairement, Lirvia envoie au Worker Cloudflare puis à l’API OpenAI les informations nécessaires : type d’action, langue, question éventuelle, historique récent, titre et auteur, chapitre, position, extrait sélectionné et contexte déjà lu. Pour un récapitulatif, des passages déjà lus et le résumé intermédiaire peuvent être envoyés. Le fichier EPUB complet et tout texte situé après votre position actuelle ne sont pas envoyés. Le Worker ne stocke ni le prompt ni la réponse dans D1 et appelle OpenAI avec
store: false. - Quota et sécurité. Cloudflare D1 ne conserve que des métadonnées techniques et d’usage : identifiant Firebase, période et unités consommées, identifiant et état de requête, action, modèle, nombres de jetons, coût estimé, dates et codes d’erreur. L’adresse IP sert à limiter les abus mais n’est pas écrite dans D1 ni dans les journaux applicatifs personnalisés.
- Abonnement. Google Play Billing et RevenueCat traitent les achats. Lirvia transmet l’identifiant Firebase à RevenueCat comme App User ID et reçoit les offres, droits, expiration, historique d’achat et l’URL de gestion. L’application ne configure pas d’attribut RevenueCat avec votre nom ou e-mail et désactive la collecte automatique d’identifiants d’appareil proposée par RevenueCat.
- Fiabilité. Firebase Crashlytics peut recevoir des piles d’appels, l’état de l’application, des informations d’appareil et système, des identifiants d’installation/Crashlytics et des données de session. Le code Lirvia n’y envoie pas le Firebase UID, le nom, l’e-mail, les titres ou contenus des livres, extraits, questions, notes ou réponses IA.
Active Listening est désactivé dans la release V1. La release ne demande pas la permission microphone et cette politique ne décrit aucun traitement public de microphone, de reconnaissance vocale, de synthèse vocale ou d’audio.
4. Finalités et bases juridiques (lorsque le RGPD s’applique)
Les traitements servent à fournir les fonctionnalités demandées, authentifier et sécuriser le compte, exécuter les demandes IA volontaires, appliquer les quotas, prévenir la fraude et les doubles traitements, fournir ou restaurer les droits d’abonnement, diagnostiquer les erreurs et traiter les demandes de suppression.
La base juridique est l’exécution du contrat ou de mesures précontractuelles demandées par l’utilisateur pour le compte, les fonctions IA demandées et les fonctionnalités d’abonnement. La sécurité, la prévention de la fraude, la limitation des abus, l’idempotence, la fiabilité et le diagnostic reposent sur l’intérêt légitime de Lirvia à protéger et maintenir le service, sans prévaloir sur vos droits. Les données nécessaires pour répondre à une obligation légale sont traitées lorsque cette obligation s’applique. Les données locales sont traitées sur l’appareil pour fournir les fonctionnalités que vous déclenchez.
5. Destinataires, prestataires et transferts internationaux
Les destinataires se limitent aux prestataires nécessaires au service : Google (Firebase Authentication et Crashlytics), Cloudflare (Workers et D1), OpenAI API, RevenueCat et Google Play Billing. Ces prestataires peuvent traiter des données depuis des pays situés hors de l’Espace économique européen. Leurs conditions et mécanismes de transfert applicables encadrent ces transferts ; consultez leurs politiques pour les informations à jour sur leurs localisations et garanties.
Lirvia n’intègre pas de SDK de publicité, Firebase Analytics, Firestore, Firebase Storage ni Firebase Performance dans la release V1.
6. Durées de conservation
- Données locales : jusqu’à suppression locale, effacement des données Android ou désinstallation.
- Données D1 rattachées au compte : jusqu’à suppression du compte.
- Empreinte irréversible d’un UID Firebase supprimé : 30 jours pour bloquer les anciens jetons et webhooks retardés.
- Si des unités IA ont été utilisées, le guard de quota pseudonymisé : jusqu’au septième jour suivant la fin de la période mensuelle, sans identifiant Google brut, e-mail, Firebase UID, plan ni contenu de lecture.
- Identifiants d’événements RevenueCat : 90 jours pour l’idempotence et la protection contre le rejeu, sans UID associé dans cette table.
- OpenAI : jusqu’à 30 jours par défaut pour les journaux de surveillance des abus, sous réserve de ses exceptions de sécurité ou légales.
- Firebase Authentication : les adresses IP sont conservées quelques semaines ; les autres données Auth supprimées quittent les systèmes actifs et les sauvegardes dans les 180 jours.
- Firebase Crashlytics : 90 jours avant le début du processus de suppression.
- Cloudflare Workers Logs : 3 jours. Cloudflare D1 Time Travel : 7 jours. Les journaux applicatifs personnalisés ne contiennent pas de contenu de livre.
- RevenueCat : jusqu’à suppression du customer ; les données de transaction Google Play relèvent des règles de Google et de vos obligations de paiement applicables.
7. Suppression du compte
La suppression depuis Compte supprime le customer RevenueCat, les données D1 rattachées au compte et le compte Firebase Authentication. Elle ne supprime pas les données locales présentes sur vos appareils, ni l’abonnement ou l’historique de transaction conservés par Google Play. Une empreinte d’UID pendant 30 jours et, si nécessaire, le guard de quota pseudonymisé jusqu’au septième jour suivant la fin du mois peuvent être conservés temporairement pour sécurité et prévention de la fraude. La suppression du compte Lirvia n’annule pas un abonnement Google Play : gérez-le séparément dans Google Play.
Vous pouvez demander la suppression sans application via https://bookreaderai-legal.pages.dev/account-deletion. N’envoyez jamais votre mot de passe, code de validation ou jeton Firebase.
8. Vos droits et réclamation
Lorsque le RGPD s’applique, vous pouvez demander l’accès, la rectification, l’effacement, la limitation, vous opposer aux traitements fondés sur l’intérêt légitime et demander la portabilité lorsque applicable. Écrivez à benmehdy0@gmail.com avec « Demande de confidentialité Lirvia » et les informations nécessaires pour identifier votre compte ; une vérification raisonnable peut être demandée pour protéger vos données. Vous pouvez aussi introduire une réclamation auprès de la CNIL (cnil.fr) ou de l’autorité de contrôle compétente de votre pays.
9. Sécurité et mises à jour
Les échanges avec Firebase, Cloudflare, OpenAI et RevenueCat utilisent HTTPS. Le Worker vérifie les jetons Firebase et limite les données distantes. Cette politique peut être mise à jour lorsque le service, ses prestataires ou les exigences applicables évoluent ; la date ci-dessus sera alors modifiée.
English
1. Scope and controller
Lirvia is an Android EPUB reader designed to work primarily on your device. El Mehdi Benchekroun, the publisher of Lirvia established in France, is the controller for the processing described in this policy. For privacy questions or to exercise your rights, contact benmehdy0@gmail.com.
2. Local data and optional account
Lirvia keeps in its private app storage your EPUB files and covers, titles and authors, reading positions and progress, bookmarks, highlights, selected excerpts, notes, saved AI conversations and answers, recaps, sessions, goals, preferences, and Memory cards and review history. This data stays on your device: the Reader does not synchronize it to Firebase or Cloudflare. It remains until you delete it in the app, clear Android app data, or uninstall the app. A backup or export is created only to a location you choose.
Local reading is available without an account. Google sign-in, AI features, and subscriptions are optional for local reading, but an account is required where the service must authenticate access, enforce quota, or associate a purchase. Deleting a cloud account does not delete local data; delete the relevant books or clear Lirvia data in Android settings to erase it.
3. Account, AI, subscription, and diagnostics
- Google account. If you choose “Continue with Google,” Google and Firebase Authentication process the Firebase identifier, display name, email address, sign-in provider, and technical data such as IP address, user agent, and platform. Lirvia uses this data to authenticate and secure the account and associate quota and subscription. To prevent artificial quota resets after deletion and recreation, the Worker computes a pseudonymized HMAC-SHA256 hash of the Google identity; the raw Google identifier is not stored in D1. The app may also create a technical anonymous Firebase identifier; no book content is stored in Firebase Authentication.
- AI assistance. When you voluntarily use it, Lirvia sends to the Cloudflare Worker and then the OpenAI API only data needed for the request: action type, language, any question, recent history, title and author, chapter, position, selected excerpt, and already-read context. For a recap, already-read passages and the interim summary may be sent. The complete EPUB file and text after your current position are not sent. The Worker stores neither prompt nor response in D1 and calls OpenAI with
store: false. - Quota and security. Cloudflare D1 keeps only technical and usage metadata: Firebase identifier, period and units used, request identifier and state, action, model, token counts, estimated cost, dates, and error codes. IP address is used for rate limiting against abuse but is not written to D1 or custom application logs.
- Subscription. Google Play Billing and RevenueCat process purchases. Lirvia sends the Firebase identifier to RevenueCat as the App User ID and receives offers, entitlements, expiry, purchase history, and the management URL. The app does not configure a RevenueCat attribute containing your name or email and disables RevenueCat’s automatic device-identifier collection.
- Reliability. Firebase Crashlytics may receive call stacks, app state, device and system information, installation/Crashlytics identifiers, and session data. Lirvia code does not send it Firebase UID, name, email, book titles or content, excerpts, questions, notes, or AI answers.
Active Listening is disabled in the V1 release. The release does not request microphone permission, and this policy does not describe any public microphone, speech-to-text, text-to-speech, or audio processing.
4. Purposes and legal bases (where GDPR applies)
Processing is used to provide requested features, authenticate and secure the account, perform voluntary AI requests, enforce quotas, prevent fraud and duplicate processing, provide or restore subscription entitlements, diagnose errors, and handle deletion requests.
The legal basis is performance of a contract or user-requested pre-contractual steps for the account, requested AI features, and subscription features. Security, fraud prevention, abuse prevention, idempotency, reliability, and diagnostics rely on Lirvia’s legitimate interest in protecting and maintaining the service, without overriding your rights. Data needed to meet a legal obligation is processed where that obligation applies. Local data is processed on the device to provide features you trigger.
5. Recipients, providers, and international transfers
Recipients are limited to providers needed for the service: Google (Firebase Authentication and Crashlytics), Cloudflare (Workers and D1), OpenAI API, RevenueCat, and Google Play Billing. These providers may process data from countries outside the European Economic Area. Their applicable terms and transfer mechanisms govern those transfers; consult their policies for current information on locations and safeguards.
Lirvia does not include an advertising SDK, Firebase Analytics, Firestore, Firebase Storage, or Firebase Performance in the V1 release.
6. Retention
- Local data: until local deletion, Android app-data clearing, or uninstallation.
- D1 data associated with an account: deleted with the account.
- Irreversible hash of a deleted Firebase UID: 30 days to block stale tokens and delayed webhooks.
- If AI units were used, the pseudonymized quota guard: until the seventh day after the relevant monthly period ends, with no raw Google identifier, email, Firebase UID, plan, or reading content.
- RevenueCat event identifiers: 90 days for idempotency and replay protection, without an associated UID in that table.
- OpenAI: up to 30 days by default for abuse-monitoring logs, subject to its security or legal exceptions.
- Firebase Authentication: IP addresses are retained for a few weeks; other deleted Auth data leaves active systems and backups within 180 days.
- Firebase Crashlytics: 90 days before the deletion process begins.
- Cloudflare Workers Logs: 3 days. Cloudflare D1 Time Travel: 7 days. Custom application logs do not contain book content.
- RevenueCat: until customer deletion; Google Play transaction data is governed by Google’s rules and applicable payment obligations.
7. Account deletion
Deletion from Account deletes the corresponding RevenueCat customer, account-related D1 data, and Firebase Authentication account. It does not delete local data on your devices, nor a subscription or transaction history held by Google Play. An UID hash for 30 days and, where necessary, the pseudonymized quota guard until the seventh day after month end may be temporarily retained for security and fraud prevention. Deleting a Lirvia account does not cancel a Google Play subscription: manage it separately in Google Play.
You can request deletion without the app at https://bookreaderai-legal.pages.dev/account-deletion. Never send your password, verification code, or Firebase token.
8. Your rights and complaints
Where GDPR applies, you may request access, rectification, erasure, restriction, object to processing based on legitimate interests, and request portability where applicable. Email benmehdy0@gmail.com with “Lirvia privacy request” and information needed to identify your account; reasonable verification may be requested to protect your data. You may also lodge a complaint with the CNIL (cnil.fr) or the competent supervisory authority in your country.
9. Security and updates
Communications with Firebase, Cloudflare, OpenAI, and RevenueCat use HTTPS. The Worker verifies Firebase tokens and limits remote data. This policy may be updated when the service, providers, or applicable requirements change; the date above will then be updated.