Grind

Ton travail reste sur ta machine.

La version honnête, qui est un argument plus solide que la version absolue.

Où est l’audio

Sur ta machine, dans les dossiers que tu as choisis, sous les noms que tu leur as donnés. Grind construit un catalogue qui pointe vers ces fichiers. Il ne les déplace pas, ne les renomme pas, ne les copie pas sur un serveur et ne les modifie pas, et débrancher le disque laisse la fiche en place, marquée hors ligne.

Il y a exactement un moment où de l’audio quitte ton ordinateur, et c’est toi qui le provoques : tu composes un pack et tu l’envoies, et les fichiers vont dans ton propre Dropbox connecté. Rien d’autre ne téléverse d’audio, jamais.

Ce qui quitte réellement la machine

  • Le pack que tu composes et envoies, vers ton propre Dropbox.
  • Le message que tu rédiges, via ton propre Gmail, adressé à des gens que tu as choisis.
  • Des requêtes vers des fournisseurs de données musicales publiques, pour rapprocher une sortie et lire ses chiffres publics. Ce qui sort, c’est un titre, un nom d’artiste ou un identifiant. Ton catalogue n’est pas envoyé.
  • L’e-mail de ton compte et l’état de ton abonnement, vers le service de comptes, parce que c’est ce qu’est un compte.

Ce que l’autorisation Gmail permet

Une chose : soumettre un message. Le scope est https://www.googleapis.com/auth/gmail.send, et il ne peut ni lire un message, ni lister ton courrier, ni le chercher, ni poser une étiquette, ni archiver, ni supprimer. Google le classe comme sensible et non comme restreint, et c’est la différence qui compte ici.

Deux autres disent quelle boîte est connectée, pour poser le bon expéditeur : https://www.googleapis.com/auth/userinfo.email et openid. Aucun des deux ne donne accès au courrier.

Ce qu’elle ne permet pas, et ce qui n’est délibérément pas demandé

Lire ta boîte est une autorisation distincte, https://www.googleapis.com/auth/gmail.readonly, que Google classe comme restreinte. Grind la demande à part, depuis les Réglages, et uniquement pour lire les avis de non-remise afin de te signaler un rebond. La refuser te coûte le suivi des rebonds et rien d’autre : l’envoi fonctionne sans.

Grind ne demande pas profile, parce qu’un nom et une photo ne sont pas nécessaires pour envoyer un mail. Il ne demande pas https://mail.google.com/, le scope de boîte complète qu’exigerait une connexion SMTP, et utiliser l’API Gmail est précisément la façon d’éviter ça.

Chaque autorisation est révocable sur myaccount.google.com/permissions, immédiatement, sans passer par Grind.

Le compte

Les comptes sont gérés par Supabase Auth. Les mots de passe ne sont jamais vus par Grind : ils vont de ton navigateur à Supabase, qui les stocke hachés. Connexion, confirmation et réinitialisation s’y déroulent.

La clé Supabase présente dans ces pages est la clé anon, publique par conception et bornée par la sécurité au niveau des lignes. C’est elle qui fait fonctionner les pages d’authentification. La clé service-role n’est ni dans ce site, ni dans l’application de bureau, et ne quitte jamais le serveur.

Ce qui tourne où

Ce site, ce sont des fichiers statiques. Aucun rendu serveur, aucune connexion à une base depuis une page, aucune session tenue ici.

Tout ce qui nécessite un secret tourne dans une fonction serveur que tu ne peux pas appeler directement : émettre un jeton de licence, recevoir un webhook de paiement, supprimer un compte. C’est cette règle qui fait qu’il n’y a rien à trouver dans ces pages : si une clé peut accorder quelque chose, le navigateur ne la détient jamais.

Paiements et webhooks

Les abonnements ne sont pas ouverts. Rien sur ce site ne peut débiter une carte, et aucune URL de paiement, de quelque prestataire que ce soit, n’existe dans ce build. C’est vérifié par un test qui lit chaque octet du site construit.

À leur ouverture, un paiement sera créé côté serveur pour un compte connecté, et l’accès sera accordé par le webhook du prestataire et par rien d’autre. La page de succès ne lira aucun paramètre de son URL : n’importe qui peut taper une chaîne de requête, donc une page qui lui fait confiance montre au visiteur sa propre saisie en l’appelant un reçu.

Supprimer ton compte

Supprimer le compte est une fonction serveur, et elle ne consulte ni ta formule ni ton entitlement avant de s’exécuter. Perdre un abonnement n’est pas une raison de perdre la possibilité de supprimer ses données, et c’est écrit dans le code plutôt que dans une politique.

Tes prods ne sont pas concernées, parce qu’elles n’ont jamais été téléversées. Ce sont les fichiers sur ton disque, exactement là où ils étaient.

Ce qui n’est pas revendiqué ici

Grind n’a ni rapport SOC 2, ni certification ISO, ni audit de sécurité par un tiers. Il n’a pas fait l’objet d’un test d’intrusion. Il n’y a pas de bug bounty.

Ce sont des choses réelles avec des preuves derrière, et cette page le dira le jour où ces preuves existeront. D’ici là, en revendiquer une serait la seule chose qu’une page sécurité ne doit jamais faire.

Signaler quelque chose

Si tu trouves une vulnérabilité, écris à security@grindapp.io avec assez de détails pour la reproduire. Tu auras une réponse humaine. Merci de ne pas tester sur les comptes ou les données d’autres personnes.

La divulgation complète de l’API Google est sur /fr/google-api-disclosure. Ce qui est collecté et pourquoi est dans la politique de confidentialité, et les conditions d’utilisation sont sur /fr/terms.