Pourquoi TofuPilot demande Administration: write
L'application GitHub de TofuPilot demande désormais la permission de dépôt Administration: write. Ce guide explique pourquoi nous la demandons en amont d'une fonctionnalité à venir, à quoi elle sert, notre modèle de sécurité et les alternatives si vous préférez ne pas l'accorder.
Pourquoi cette nouvelle permission
La prochaine version, Stations v2.0, introduira un nouveau parcours de création de procédure qui vous emmène de la procédure au déploiement sur station en deux étapes. Comme beaucoup d'utilisateurs n'ont pas encore de dépôt, ou découvrent TofuPilot Framework / OpenHTF, nous fournirons des modèles prêts à l'emploi qui seront clonés dans votre compte avant le déploiement.
GitHub exige la permission Administration: write pour qu'une application tierce puisse créer un dépôt pour le compte d'un utilisateur. Nous n'effectuons aucune autre opération en écriture en dehors de celle-ci. C'est la même permission que demandent les principales plateformes de développement, pour la même raison : c'est le seul mécanisme exposé par GitHub pour créer un dépôt à partir d'un modèle.
Modèle de sécurité
Nous prenons cette permission au sérieux. Nos protections incluent :
- Aucune autre route en écriture. Nos API n'exposent aucune opération en écriture vers GitHub au-delà de cet unique appel de clonage de modèle, limité à la création d'un seul dépôt.
- Isolation stricte par organisation. Les enregistrements de connexion sont isolés par organisation au niveau de la base de données — un utilisateur authentifié d'une organisation ne peut pas lire les données d'une autre.
- Réservé aux propriétaires et administrateurs. La gestion des connexions (création / mise à jour / suppression) est réservée aux propriétaires et administrateurs de l'organisation.
- Les secrets ne sont pas dans la base de données. La clé privée de l'application GitHub, nécessaire pour générer des jetons d'installation, est stockée dans le coffre de secrets chiffré de notre fournisseur cloud, et non dans la base de données applicative. Une fuite de la base ne suffit pas à donner accès à votre compte GitHub.
Si vous préférez ne pas l'accorder
Vous avez trois options :
1. Ne pas accepter la permission
La fonctionnalité Clone Template ne fonctionnera pas, mais tout le reste (importation de dépôts existants, auto-déploiement, webhooks, interface opérateur) continue de fonctionner normalement. Vous pouvez créer un dépôt manuellement sur GitHub, puis utiliser le parcours Import.
2. Limiter aux dépôts sélectionnés
Lors de la réacceptation des permissions, choisissez Only select repositories au lieu de All repositories. Cela restreint l'accès de l'application aux dépôts que vous choisissez explicitement.
Après le clonage d'un modèle, vous devrez peut-être ajouter manuellement le nouveau dépôt à la liste autorisée de l'application pour que l'auto-déploiement commence à fonctionner.
3. Déploiement auto-hébergé ou dédié managé
Configurez votre propre application GitHub avec les permissions qui correspondent à votre politique de sécurité. TofuPilot s'adapte aux permissions disponibles : les fonctionnalités nécessitant des permissions manquantes sont masquées, le reste continue de fonctionner normalement.
Comment accorder ou cadrer la permission
- Dans TofuPilot, ouvrez la page Nouvelle procédure de votre organisation. Si la permission manque, une bannière apparaîtra avec un bouton Grant permission on GitHub dès la sortie de la fonctionnalité.
- Cliquez sur le bouton. Vous êtes redirigé vers la page de permissions de votre installation GitHub.
- Choisissez Only select repositories si vous souhaitez restreindre l'application. Sinon, All repositories convient.
- Cliquez sur Accept new permissions. Vous revenez sur TofuPilot, et le formulaire Clone Template se débloque automatiquement.
L'approbation prend environ 30 secondes.
À quoi nous servons cette permission
Nous utilisons Administration: write uniquement pour appeler l'API GitHub de création de dépôt à partir d'un modèle, pendant le parcours Clone Template. Chaque appel d'API est tracé dans le journal d'audit de votre GitHub pour que vous puissiez vérifier exactement ce que nous faisons.
Nous ne supprimons jamais, ne transférons jamais, n'archivons jamais et ne modifions jamais les paramètres de dépôts existants.
Questions fréquentes
Pouvez-vous implémenter le clonage de modèle sans cette permission ?
Pas sur GitHub. GitHub ne propose pas de portée plus restreinte. Toute plateforme qui permet de cloner un modèle vers un nouveau dépôt demande la même permission pour la même raison.
Que se passe-t-il si je révoque la permission plus tard ?
Révoquez-la quand vous voulez depuis les paramètres de votre installation GitHub. Clone Template cesse immédiatement de fonctionner ; tout le reste continue normalement. Les dépôts créés avant la révocation ne sont pas affectés.
Est-ce que cela donne à TofuPilot accès à mon code privé ?
Uniquement aux dépôts sur lesquels l'application est installée. Avec Only select repositories, vous contrôlez exactement lesquels. Avec All repositories, l'application voit tout ce qui se trouve sur le compte concerné. La lecture du contenu des dépôts est régie par une permission distincte que TofuPilot possède depuis le début — Administration: write ne concerne que la création de nouveaux dépôts.