← Retour à Bête

Politique de confidentialité

Dernière mise à jour : 2 novembre 2026

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é

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 :

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) :

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 » :

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

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

5. Ce que Bête ne fait pas

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.