Politique de confidentialité
Bête est une application web libre (licence MIT) éditée par Rémi Sarrailh (usini). Son code source est public : github.com/usini/bete. Cette page explique quelles données l'application manipule, où elles sont stockées et comment les supprimer. Le responsable des traitements réalisés par Bête est Rémi Sarrailh, joignable à remi@usini.eu.
En résumé
- Pas de compte Bête, pas de publicité ni de suivi publicitaire. La connexion Drive utilise deux cookies techniques sécurisés.
- Tes tableaux restent sur ton appareil, avec une sauvegarde Drive facultative. Le service de connexion Bête traite les autorisations Google, pas les tableaux.
- Le partage de groupes est facultatif : leur contenu est transmis directement aux participants disposant du lien.
- La sauvegarde sur Google Drive est facultative : le fichier est enregistré dans ton propre Drive, dans un dossier caché réservé à Bête.
1. Données stockées sur ton appareil
Ce que tu crées dans Bête (textes, couleurs, positions des blocs, liens, images, prix et délais de livraison saisis à la main) est enregistré automatiquement dans le navigateur ou l'application, sur ton appareil :
IndexedDB: le tableau et son historique, les images, la dernière taille de bloc utilisée, les titres YouTube déjà récupérés, les métadonnées Drive et les paramètres de partage.- Les anciennes données de
localStoragesont migrées automatiquement dans IndexedDB ; elles ne sont retirées qu’après validation de l’écriture. Aucun service externe n’est contacté pour cette migration.
Ces données restent locales, sauf si tu actives la sauvegarde Drive, partages un groupe ou utilises un service tiers décrit ci-dessous. Tu peux les exporter dans un fichier JSON (bouton « Exporter JSON ») et les supprimer en effaçant les données du site dans les réglages de ton navigateur. Elles restent présentes jusqu’à leur suppression, l’effacement des données du site ou une suppression automatique par le navigateur. Les groupes reçus par P2P sont conservés de la même manière et peuvent être inclus dans tes sauvegardes locales, JSON et Drive. L’historique annuler/rétablir (60 états maximum) est conservé avec le tableau dans la sauvegarde locale, les exports JSON et, si activée, la sauvegarde Drive. Il peut contenir d’anciens textes et images supprimés du tableau courant ; supprimer un bloc ne l’efface donc pas immédiatement de ces états antérieurs. Tu peux vider l’historique depuis sa liste d’actions, en conservant le tableau actuel. Cela ne modifie pas les fichiers JSON déjà exportés ni l’ancienne sauvegarde Drive avant une nouvelle sauvegarde. Les images locales devenues inutilisées peuvent rester dans IndexedDB jusqu’à l’effacement des données du site. Dans les nouveaux JSON, les images identiques sont enregistrées une seule fois et référencées par les états de l’historique. Les métadonnées de synchronisation Drive (identifiant du fichier, date et empreinte du dernier état synchronisé) sont également conservées localement jusqu’à la déconnexion ou à leur effacement.
2. Services tiers contactés par l'application
Une URL reconnue de publication X ou Instagram charge automatiquement son intégration officielle
lorsque le rectangle est visible, y compris après restauration ou dans un groupe partagé.
Le navigateur contacte directement X (notamment platform.twitter.com et ses services
de contenu) ou Instagram/Meta, en transmettant l’identifiant du post, l’adresse IP et les
informations techniques habituelles. Ces services peuvent utiliser leurs cookies selon les
réglages du navigateur. Le paramètre dnt=true est demandé au module X ; il ne
garantit pas l’absence de collecte. Bête ne récupère ni copie du contenu sur son serveur,
ni métadonnées via un proxy. L’intégration est retirée hors écran et la page Bête ne transmet
pas son adresse comme référent. Les contenus privés ou non intégrables peuvent rester indisponibles.
Voir les politiques de X et
Instagram/Meta.
Un rectangle contenant une URL d’intégration Google Maps charge automatiquement la carte officielle lorsque le bloc est visible, y compris après restauration ou dans un groupe partagé. Le navigateur transmet directement à Google l’URL de la carte (qui peut contenir un lieu ou des coordonnées), l’adresse IP et les informations techniques de connexion. Google peut utiliser ses cookies selon les réglages du navigateur et sa politique de confidentialité. Bête n’utilise aucun proxy ni récupération de carte sur son serveur et retire l’intégration hors écran. Si tu colles le code HTML fourni par Google, seule l’URL Maps reconnue est conservée dans le bloc.
Un lien reconnu vers une publication ou un reel Facebook dans un rectangle charge automatiquement l’intégration officielle Facebook quand le bloc est visible, y compris dans un groupe partagé ou un tableau restauré. Le navigateur contacte directement Meta, qui reçoit l’URL du post, l’adresse IP et les informations techniques de connexion, et peut utiliser ses cookies selon les réglages du navigateur et sa politique de confidentialité. Bête ne récupère pas le contenu par son serveur et ne conserve pas de copie du post. Les reels utilisent le lecteur vidéo officiel de Facebook, sans lecture automatique. Les liens de groupes Facebook ne déclenchent aucune intégration. Seules les publications publiques autorisant l’intégration peuvent s’afficher. Les posts privés ou supprimés peuvent être indisponibles. Le module est retiré lorsque le bloc est hors écran.
Quand un bloc contient un lien YouTube, ton navigateur contacte directement YouTube (Google) :
i.ytimg.compour afficher la miniature ;www.youtube.com/oembedpour récupérer le titre de la vidéo ;www.youtube-nocookie.compour lire la vidéo, uniquement quand tu la lances.
YouTube reçoit alors l'identifiant de la vidéo et les informations techniques habituelles d'une requête web (adresse IP, navigateur). Leur usage est régi par les conditions et la politique de confidentialité de Google.
Le site est hébergé par GitHub Pages. GitHub peut enregistrer des données techniques de connexion (comme l'adresse IP) selon sa propre déclaration de confidentialité. Le code de Bête ne collecte pas ces journaux d’hébergement.
Lors du dépôt d’un lien depuis le navigateur, son titre ou son texte peut être fourni avec l’URL. Bête utilise uniquement ces informations transmises localement par le glisser-déposer ; aucune requête vers la page liée ni service de récupération de titre n’est utilisé. Le titre est enregistré comme texte du bloc et suit les mêmes règles de sauvegarde et de partage.
Les liens ordinaires ne déclenchent aucun chargement de favicon ou d’aperçu sur le site lié. Les icônes de services connus sont intégrées aux fichiers de Bête et choisies localement à partir du domaine et du chemin du lien ; leur affichage ne contacte pas ces services. En l’absence de titre fourni par le navigateur, Bête affiche le nom du site extrait localement de l’URL. Le site lié n’est ouvert que lorsque tu actives le lien. Les traitements spécifiques à YouTube, Facebook, Google Maps, X et Instagram restent décrits ci-dessus.
3. Sauvegarde sur Google Drive (facultative)
Si tu choisis « Connecter Google Drive » :
-
Droit demandé : uniquement l'accès au dossier de données propre à
l'application (
https://www.googleapis.com/auth/drive.appdata). Bête ne peut ni voir, ni lire, ni modifier tes autres fichiers Drive. Aucun droit sur Gmail, les contacts ou ton profil n’est demandé par ce flux. Le mot de passe Google est saisi chez Google et n’est jamais transmis au service Bête. - Ce qui est enregistré : un seul fichier contenant ton tableau (blocs, textes, liens, images et cadrage du tableau), dans ce dossier caché. Il n'apparaît pas dans ton Drive habituel. L’application lit ce fichier, son identifiant et sa date de modification pour comparer les versions, le télécharger, le créer ou le remplacer lors de la connexion initiale ou à ta demande (disquette ou restauration). Aucune sauvegarde Drive périodique ni aucun envoi à la fermeture ou au changement d’onglet n’est effectué. L’enregistrement local reste automatique. En cas de conflit détecté, elle te demande quelle version conserver. Le fichier reste sur Drive jusqu’à sa suppression ; déconnecter Bête ne le supprime pas.
- Où vont les données : directement de ton navigateur vers ton Drive. Elles ne passent par aucun serveur de Bête.
-
Connexion durable : le jeton d’accès reste en mémoire dans le navigateur.
Le jeton de renouvellement est conservé chiffré dans un cookie HttpOnly et Secure sur
auth-bete.usini.eu. Le service OAuth du VPS le reçoit temporairement pour renouveler l’accès auprès de Google, sans base de données de jetons ni journalisation des autorisations ou des tableaux. Ce service peut techniquement utiliser cette autorisation : les sauvegardes ne sont pas chiffrées de bout en bout. Le chiffrement du cookie protège son stockage ; le serveur dispose de la clé de déchiffrement. Il n’empêche donc pas techniquement l’administrateur du service d’utiliser l’autorisation, limitée au dossier de Bête. -
Appels réseau : Google pour la connexion et le stockage Drive, ainsi que
auth-bete.usini.eupour l’authentification et le renouvellement. Ce service est exposé via Cloudflare Tunnel : Cloudflare termine la connexion HTTPS et traite les requêtes d’authentification. Le cookie expire au plus tard après un an (les navigateurs ou Google peuvent imposer une durée plus courte) et est supprimé à la déconnexion. La déconnexion demande aussi la révocation auprès de Google. - Utilisation : les données de ton Drive servent exclusivement à sauvegarder et restaurer ton tableau. Elles ne sont ni vendues, ni partagées à des fins commerciales, ni utilisées pour de la publicité ou pour entraîner des modèles par Bête. Les prestataires techniques nécessaires au fonctionnement sont précisés ci-dessous.
L'utilisation par Bête des informations reçues des API Google respecte la politique relative aux données utilisateur des services d'API Google, y compris les exigences d'utilisation limitée.
Cookies et conservation des autorisations
__Host-bete-flow: état de connexion et vérificateur OAuth chiffrés ; durée maximale de 10 minutes, supprimé lors du retour de connexion. Il protège la connexion contre les requêtes falsifiées.__Host-bete-refresh: autorisation de renouvellement chiffrée ; durée maximale d’un an après la connexion, ou moins selon Google et le navigateur. Il permet de renouveler la session sans te redemander régulièrement de te connecter.
Ces cookies sont propres à auth-bete.usini.eu, marqués HttpOnly, Secure et SameSite=Lax.
Ils servent uniquement à la connexion Drive que tu demandes, pas au suivi publicitaire.
Le jeton d’accès de courte durée reste en mémoire dans la page et n’est pas enregistré dans
le stockage local. Une ancienne copie issue de la version précédente est supprimée à l’ouverture.
Les autorisations sont traitées temporairement par le service OAuth et Google, sans base de
données utilisateur côté Bête. Le code du service ne journalise ni jetons, ni cookies, ni tableaux.
Hébergement, destinataires et données techniques
Le service OAuth est hébergé sur un VPS chez OVHcloud et accessible via Cloudflare Tunnel. Le site statique est hébergé par GitHub Pages. Google assure la connexion et le stockage Drive ; YouTube intervient pour les vidéos. Ces prestataires peuvent traiter les données techniques de connexion nécessaires au service (adresse IP, date, navigateur, URL et informations de sécurité) selon leurs propres politiques. Cloudflare termine la connexion HTTPS et traite donc les requêtes OAuth, y compris les autorisations qui y transitent ; les tableaux ne transitent pas par ce service OAuth.
Bête ne constitue pas de fichier de suivi des visites. Les journaux techniques éventuels des infrastructures sont distincts des tableaux et suivent les durées et paramètres des prestataires. Le pays précis du VPS et les durées des journaux d’infrastructure ne sont pas indiqués ici car ils n’ont pas été vérifiés. Leurs services peuvent impliquer des traitements hors de l’Espace économique européen ; cette application ne garantit pas une localisation exclusivement européenne. Pour connaître leurs modalités de conservation, transferts et garanties : OVHcloud, Cloudflare, GitHub et Google.
Finalités et bases légales
L’enregistrement local, l’import et l’export permettent de fournir le tableau demandé. La sauvegarde et le renouvellement OAuth servent uniquement à fournir la synchronisation Drive que tu actives volontairement, sur la base de ton consentement ; tu peux le retirer à tout moment. Refuser Drive n’empêche pas l’usage local de Bête. Les traitements techniques nécessaires à la sécurité et à la disponibilité reposent sur l’intérêt légitime à protéger et faire fonctionner le service. Aucune décision automatisée produisant des effets juridiques ni aucun profilage n’est réalisé par Bête.
Partage de groupes entre appareils (facultatif)
Activer un partage ou accepter un lien de groupe déclenche une connexion PeerJS/WebRTC.
Le serveur de signalisation peer-bete.usini.eu, hébergé sur le VPS OVHcloud et
exposé par Cloudflare Tunnel, échange les identifiants, les offres de connexion et les
informations réseau nécessaires à la mise en relation. Il reçoit notamment les adresses réseau
présentes dans la signalisation et les informations techniques des connexions HTTP/WebSocket.
Il ne stocke pas et ne relaie pas le contenu des groupes ni leurs images.
Les mêmes limites d’information sur le pays du VPS et les journaux d’infrastructure s’appliquent
que pour le service OAuth décrit ci-dessus.
Le navigateur contacte le serveur STUN Google stun.l.google.com:19302 pour
connaître son adresse réseau publique. Ce serveur peut donc recevoir cette adresse et les
informations techniques STUN ; il ne reçoit pas les blocs. Aucun relais TURN n’est configuré.
Si une connexion directe est impossible, le partage échoue sans envoi du contenu via un relais.
Les bibliothèques PeerJS et QR sont servies depuis Bête, sans téléchargement depuis un CDN tiers.
Les blocs du groupe, son titre, ses dimensions, ses couleurs, ses liens et ses images sont transmis par un canal WebRTC chiffré aux appareils autorisés. Les positions internes sont relatives au groupe ; la caméra et l’emplacement du groupe dans ton tableau restent locaux. Les autres blocs et l’historique global ne sont pas partagés. Des identifiants aléatoires de participants sont échangés dans chaque groupe pour afficher le nombre de connexions et éviter les doublons ; ils ne sont pas sauvegardés. Les positions des curseurs sont transmises uniquement à l’intérieur des groupes partagés, au maximum environ vingt fois par seconde, avec un identifiant de participant aléatoire propre à la page. Elles restent en mémoire temporaire (expiration après environ six secondes sans mise à jour) et ne figurent ni dans l’historique, ni dans les exports ou sauvegardes. Les déplacements dans les zones privées ne sont pas transmis. L’appareil source retransmet les modifications entre les invités. Les participants peuvent connaître leurs adresses IP publiques respectives, notamment celle de la source et celles des invités connectés à elle.
Le lien autorise la lecture et l’écriture. Toute personne qui le possède peut
recevoir, modifier, exporter et conserver les données, et transmettre le lien. Il contient
une capacité aléatoire dans son fragment #, qui n’est pas envoyé dans la requête
HTTP. Elle est retirée de la barre d’adresse après lecture. La preuve de possession est liée
au canal WebRTC et vérifiée entre participants ; la capacité brute n’est pas envoyée au
serveur de signalisation. Cela ne protège pas contre un participant autorisé qui copie les
données, ni contre du code malveillant exécuté dans le navigateur.
Les paramètres de partage, les liens/capacités d’accès et les versions des blocs (y compris
les marqueurs de suppression utiles à la reconnexion) restent dans le stockage local
bete2:groupShares. Ils sont conservés jusqu’à l’effacement des données du site ;
désactiver le partage conserve ces paramètres pour permettre sa réactivation. Les images reçues
sont conservées dans IndexedDB. Les capacités privées et les paramètres d’hébergement du partage
ne sont pas inclus dans les exports JSON ni les sauvegardes Drive ; l’ID public du groupe et
le contenu du tableau, y compris les copies reçues, peuvent y figurer.
Tu peux désactiver ta connexion à tout moment. Sur l’appareil source, désactiver coupe le partage, et régénérer le lien invalide l’ancien accès. Ces actions n’effacent pas les copies déjà reçues, leurs historiques ou les exports des participants. Supprimer un bloc pendant une connexion active synchronise sa suppression, sans garantir l’effacement des copies antérieures. La fonction P2P est facultative et repose sur ton choix de l’activer ou d’accepter une invitation ; elle n’est pas nécessaire pour utiliser le tableau local. Les traitements de sécurité de la signalisation servent à protéger le fonctionnement de ce service.
4. Retirer l'accès et supprimer tes données
- Déconnecter cet appareil : le bouton « Déconnecter » supprime les cookies d’authentification et demande à Google la révocation de l’autorisation. Cette révocation peut aussi affecter les autres appareils connectés à la même application. En cas d’échec réseau, retire également l’accès dans ton compte Google.
- Retirer l'accès de Bête à ton Drive : rends-toi sur myaccount.google.com/permissions, choisis Bête, puis « Supprimer l'accès ».
- Supprimer le fichier de sauvegarde : dans les paramètres de Google Drive, « Gérer les applications », puis « Supprimer les données masquées de l'application » pour Bête.
-
Supprimer les données locales : efface les données de
bete.usini.euet deauth-bete.usini.eudans ton navigateur. Les exports JSON déjà téléchargés doivent être supprimés séparément. Effacer les données locales ne supprime pas la sauvegarde Drive.
5. Ce que Bête ne fait pas
- Aucune analyse d'audience, aucun traceur, aucune publicité.
- Aucune création de compte et aucune collecte d'adresse e-mail.
- Aucune vente ni utilisation commerciale de tes données par Bête. Les transmissions techniques et le partage volontaire avec les participants sont décrits ci-dessus.
6. Tes droits
Selon les traitements et les conditions prévues par la réglementation, tu peux demander l’accès, la rectification, l’effacement, la limitation, la portabilité de tes données et t’opposer aux traitements fondés sur l’intérêt légitime. Tu peux retirer ton consentement pour l’avenir sans remettre en cause les traitements antérieurs. L’export JSON permet de récupérer ton tableau. Bête n’a pas de copie centrale de tes tableaux permettant de les retrouver à partir d’un nom.
Pour exercer tes droits ou poser une question, écris à remi@usini.eu. N’envoie pas de mot de passe, de jeton OAuth ni de tableau contenant des informations sensibles. Une demande de droits reçoit en principe une réponse sous un mois, avec prolongation possible dans les cas prévus par la réglementation. Tu peux aussi déposer une réclamation auprès de la CNIL.
7. Modifications
Cette politique peut évoluer avec l'application. La date de dernière mise à jour figure en haut de la page, et l'historique des modifications est public dans le dépôt GitHub.
8. Contact
Contact confidentialité : remi@usini.eu. Pour un problème technique sans données personnelles, tu peux aussi ouvrir un ticket public sur github.com/usini/bete/issues.