diff --git a/android-client/PLAN.md b/android-client/PLAN.md index dd24c2d..fef0ed5 100644 --- a/android-client/PLAN.md +++ b/android-client/PLAN.md @@ -400,8 +400,21 @@ il répond **409**. C'est le `If-Match` qu'on avait dû implémenter à la main. ### Le jeton -Un jeton d'accès personnel **limité à ce dépôt**, droits `repo` en écriture. Il -remplace le jeton Bearer actuel et se range au même endroit — `settings.bin`, +**Gitea ne sait pas limiter un jeton à un dépôt** — vérifié sur 1.26.1. Ses +portées sont par *catégorie* et valent pour tout le compte : `read:repository` +donne la lecture de **tous** les dépôts que le compte peut lire. Rien à voir avec +les jetons fins de GitHub. (Ce paragraphe disait le contraire ; c'était faux.) + +Ce qu'on peut faire, par ordre de coût : + +- **`read:repository` seul**, tant que le téléphone ne fait que lire. C'est le + choix actuel : un jeton qui ne peut rien écrire coûte peu s'il fuite. +- L'écriture ne se justifiera qu'au §4, et pour publier depuis le poste c'est + **un autre jeton, sur une autre machine**. +- Vraie isolation, si elle devient nécessaire : un **compte Gitea dédié**, + collaborateur du seul dépôt de sync. + +Il remplace le jeton Bearer actuel et se range au même endroit — `settings.bin`, scellé par la clé AES du Keystore, lisible sans authentification. Le raisonnement ne change pas : il n'ouvre que du chiffré.