Aller au contenu

Sécurité et fiabilité

Dernière mise à jour : 7 octobre 2026

En bref

Votre contenu vit dans votre propre dépôt GitHub ; notre base de données ne contient que les données de compte et de flux de travail nécessaires au fonctionnement du service (listées précisément dans la politique de confidentialité). PullPress demande à GitHub les autorisations les plus restreintes qui permettent encore aux rédacteurs de travailler, et est conçu pour que même une panne complète de PullPress ne vous prive jamais de votre contenu et ne fasse jamais tomber votre site.

Votre contenu reste dans votre dépôt

Chaque page, article et image que votre équipe modifie est commité dans votre propre dépôt GitHub via la GitHub App que vous installez. Les brouillons sont des branches ; les modifications publiées sont des commits fusionnés avec tout leur historique. Notre base de données stocke les données de compte et de flux de travail — comptes, états de relecture, titres des demandes de modification, commentaires et idées, titres des entrées avec leurs embeddings de recherche, et un cache des titres et dates des entrées qui accélère les listes — mais vos pages et articles eux-mêmes vivent dans Git.

Cette architecture est votre meilleure garantie : votre contenu est versionné par Git, hébergé par GitHub et entièrement portable. Arrêtez PullPress demain et vous gardez tout, historique compris.

Connexion et contrôle d’accès

Les rédacteurs se connectent avec des liens magiques à usage unique et de courte durée, envoyés par e-mail — il n’y a aucun mot de passe susceptible de fuiter, d’être réutilisé ou deviné par force brute, et les demandes de lien sont limitées par client et par adresse. L’invitation d’une nouvelle personne contient un lien de connexion personnel : à usage unique, valable 7 jours, stocké uniquement sous forme de hachage, lié à ce seul compte et inutilisable dès la première connexion ; l’ouvrir affiche seulement une page, pour que les scanners de messagerie ne puissent pas le consommer. Une personne qui a déjà un compte n’est jamais connectée par une invitation — elle l’accepte elle-même. Le même e-mail contient un code à six chiffres pour se connecter sur un autre appareil : valable 10 minutes, à usage unique, stocké uniquement sous forme de hachage et invalidé après cinq essais erronés. Une session dure 30 jours après la dernière utilisation. Les rédacteurs n’ont jamais besoin d’un compte GitHub.

L’accès est organisé en couches : rôles dans l’espace de travail (propriétaire, administrateur, membre), rôles sur le site (rédacteur, approbateur, lecteur) et restrictions facultatives par collection, de sorte qu’un rédacteur ne voit que ce qu’il est censé toucher. L’accès à un site exige toujours d’être membre de l’espace de travail auquel il appartient : retirer quelqu’un d’un espace de travail met fin à son accès partout dans celui-ci, et seuls les propriétaires peuvent accorder ou retirer la propriété. Chaque accès aux données passe sur le serveur par un point de contrôle unique qui isole les espaces de travail, si bien qu’un espace de travail ne peut jamais lire les sites ou installations d’un autre.

Les agents IA se connectent via le Model Context Protocol avec OAuth 2.1, PKCE et des jetons de courte durée renouvelés en rotation — un jeton de rafraîchissement réutilisé après avoir été remplacé révoque toute la connexion (une nouvelle tentative réseau dans les 30 secondes est tolérée) — ou avec des jetons API personnels qui expirent après 30 jours, 90 jours ou un an (à vous de choisir) et ne sont stockés que sous forme de hachage. Chaque connexion porte des portées (lecture, écriture, approuver et planifier) affichées sur l’écran de consentement à côté de l’adresse exacte vers laquelle l’application redirige ; les applications inconnues sont signalées comme non vérifiées, et chaque nouvelle connexion est notifiée par e-mail au titulaire du compte. Supprimer un compte ou enregistrer un appareil pour les notifications n’est jamais possible avec le jeton d’un assistant. Un agent ne dépasse jamais le rôle de la personne pour laquelle il agit : sans la portée approuver-et-planifier, il peut seulement rédiger et soumettre pour relecture, et seul un agent agissant pour un approbateur qui a accordé cette portée peut approuver ou planifier des modifications.

Des autorisations GitHub minimales

La GitHub App de PullPress ne demande que ce dont l’éditeur a besoin : lecture/écriture sur le contenu du dépôt et les pull requests, lecture seule des métadonnées et, en option, lecture seule des checks. Elle n’a volontairement aucun accès aux workflows Actions : même un compte compromis ne pourrait pas modifier votre pipeline CI/CD via PullPress. Au niveau de l’organisation, elle ne lit que l’appartenance (lecture seule), et uniquement pour vérifier — avec l’autorisation GitHub de la personne qui connecte — qu’elle est propriétaire de l’organisation avant de pouvoir déplacer une installation depuis un autre espace de travail.

L’accès à GitHub utilise des jetons d’installation de courte durée, émis pour chaque requête. Avant qu’une installation soit liée à un espace de travail, GitHub lui-même confirme — via l’autorisation GitHub de la personne qui connecte — qu’elle y a accès, si bien que personne ne peut rattacher les dépôts de quelqu’un d’autre en devinant un numéro d’installation. Les clés privées et les secrets restent dans des variables d’environnement côté serveur et ne sont jamais envoyés au navigateur. Les commits sont attribués au rédacteur qui les a faits : votre historique Git reste honnête. Cette vérification utilise PKCE, l’autorisation GitHub ponctuelle est révoquée aussitôt après, et un administrateur est invité à la reconfirmer tous les 180 jours, pour qu’une personne ayant quitté votre organisation GitHub ne continue pas à publier via PullPress sans que vous le sachiez.

Sécurité de la plateforme

Tout le trafic est chiffré en transit (HTTPS). Des limites de fréquence protègent la connexion, l’enregistrement, la relecture et les invitations contre les abus. Quand PullPress récupère une URL pour vous (vérification des liens, sitemap de votre site en ligne, webhooks de notification), il ne communique qu’avec des adresses internet publiques sur des ports standard : il ne peut donc pas être dirigé vers des réseaux internes. Les clés IA que vous apportez sont chiffrées au repos. La facturation est gérée par Stripe — nous stockons une référence d’abonnement, jamais de données de carte.

Vous avez trouvé une vulnérabilité ? Signalez-la à security@pullpress.app (également indiqué dans /.well-known/security.txt) et nous répondrons aussi vite que possible. Merci de nous laisser un délai raisonnable pour corriger le problème avant de le rendre public.

Fiabilité et disponibilité

Notre objectif interne, non contraignant, est une disponibilité mensuelle de 99,9 % pour le service hébergé — ce n’est pas un SLA contractuel, et les conditions d’utilisation ne prévoient pas de crédits de service. Nous publions une page d’état publique sur /status — état actuel, historique de disponibilité sur 90 jours et incidents, calculés à partir de nos propres contrôles de santé — ainsi qu’un point de contrôle en direct (/api/health) que des outils de surveillance indépendants peuvent suivre.

Plus important que n’importe quel chiffre, il y a ce qui se passe en cas de panne : PullPress se trouve à côté de votre site, pas en dessous. Votre site est construit et hébergé à partir de votre dépôt par votre propre pipeline — si PullPress tombe un jour en panne, votre site en ligne continue de fonctionner, votre contenu reste dans GitHub et rien n’est perdu ; l’édition est simplement suspendue jusqu’à notre retour.

Sauvegardes et conservation

Contenu : protégé par Git lui-même — historique complet des versions dans votre dépôt, stocké sur l’infrastructure de GitHub. Supprimé ou modifié par erreur ? Toute version antérieure peut être restaurée depuis l’historique, dans l’application, sans commande git.

Données de compte et de flux de travail : stockées dans une base Postgres gérée (Supabase) avec sauvegardes quotidiennes ; les sauvegardes sont renouvelées en 30 jours au plus. Les données de compte sont conservées tant que votre compte existe et supprimées lorsque vous supprimez votre compte (vous-même, depuis votre profil) ou votre espace de travail ; votre contenu reste dans votre dépôt, sous votre contrôle.

Où se trouvent vos données

Votre contenu se trouve là où se trouve votre dépôt GitHub, selon votre contrat avec GitHub. Notre base de données contient les données de compte et de flux de travail décrites ci-dessus, dans une base Postgres gérée dans l’UE (Supabase), l’application étant hébergée sur Netlify ; les analyses ne fonctionnent qu’avec votre consentement, sur le cloud européen de PostHog.

Notre accord de traitement des données (/dpa) s’applique automatiquement à chaque espace de travail, et la liste à jour des sous-traitants avec leur localisation se trouve sur /subprocessors.

Si votre organisation a des exigences particulières en matière de localisation des données ou d’évaluation des fournisseurs (questionnaires, détails des traitements), contactez-nous à security@pullpress.app — y répondre fait partie du travail, ce n’est pas une option entreprise payante.

DIGT CONSULTING BVMuidepoort 46, 9000 GentBelgiumCompany no. BE0783.477.116VAT BE0783.477.116