⚠️ Projet — Version 1.0. Ce registre est mis à jour par commit Git. Toute addition ou retrait de sous-traitant est tracé dans l'historique du dépôt de code de La Corvée (dépôt privé — logiciel propriétaire). L'historique des changements de ce registre est fourni sur demande au PRP (privacy@corvee.ca).

Engagement

La Corvée, en tant que sous-traitant technique des OBNL clientes (Loi 25 art. 18.3), tient un registre public de ses propres sous-traitants afin que la chaîne de traitement des RP soit entièrement transparente.

Chaque entrée du registre indique :

  • le service rendu ;
  • la localisation physique des serveurs ;
  • les types de RP traitées (ou leur absence) ;
  • les garanties contractuelles (5 clauses art. 18.3) ;
  • la date d'entrée en vigueur de la relation.

Sous-traitants actuels

Fly.io Inc. (datacenter YUL Beauharnois)

Service Hébergement infrastructure de l'application La Corvée (compute, réseau, stockage Postgres)
Localisation physique des serveurs Datacenter YUL — Beauharnois, Québec, Canada
Localisation juridique de l'entité Fly.io Inc., Delaware, États-Unis — siège social Chicago, IL
Type de RP traitées Toutes les RP de la plateforme. Chiffrement at-rest automatique des Volumes Fly (NVMe chiffré, clé Fly-managed). En complément : chiffrement applicatif Secretbox (libsodium) pour les champs particulièrement sensibles (secrets TOTP, sessions stockées dans Postgres master_db.sessions, contenu des téléversements) avec une clé ENCRYPTION_KEY séparée logiquement du volume Postgres. Mots de passe utilisateurs Argon2id (irréversibles).
Sous-juridiction Lois fédérales américaines applicables à Fly Inc. : CLOUD Act (50 USC §1881a), Stored Communications Act, FISA 702. Risque résiduel documenté dans l'évaluation des facteurs relatifs à la vie privée (EFVP) tenue par le PRP (document interne, non public) — Fly pourrait être contrainte de divulguer les volumes bruts, mais le chiffrement applicatif rend la majorité des champs sensibles illisibles sans la clé séparée.
5 clauses art. 18.3 ✓ Nature/finalité/durée définie · ✓ Confidentialité contractuelle (DPA Fly.io, publié depuis la page légale https://fly.io/legal/) · ✓ Notification d'incident sans délai indu · ✓ Sort des données à la fin (flyctl pg destroy + volume destroy) · ✓ Interdiction d'utilisation à d'autres fins
DPA signé Data Processing Agreement Fly.io accepté à l'ouverture du compte (acceptation électronique tracée côté Fly). Documents légaux publiés par Fly : https://fly.io/legal/
Registre sous-traitants ultérieurs de Fly Publié par Fly parmi ses documents légaux (https://fly.io/legal/) — révision annuelle par le PRP La Corvée
En vigueur depuis (à compléter à la mise en production F8.f2+)

Stockage des documents et téléversements (aucun sous-traitant externe)

Les documents téléversés (PDF de consentement, pièces jointes) et les exports générés par l'application ne sont plus confiés à un stockage objet externe. Depuis la simplification de l'architecture, ils sont stockés en bytea chiffré (client-side, une clé par OBNL) directement dans la base Postgres du tenant, hébergée au Québec chez Fly.io (YUL). Il n'y a donc aucun sous-traitant de stockage objet (ni Backblaze B2, ni MinIO, ni AWS S3, ni Tigris). La suppression de la clé d'une OBNL (par tenant:delete ou cycle de vie) rend ses documents définitivement indéchiffrables — effacement crypto compatible Loi 25 art. 23.

Les sauvegardes de la base de données reposent sur les snapshots natifs de Fly Postgres (flyctl pg backup), sur la même infrastructure YUL. Une réplication de sauvegarde hors site vers un fournisseur externe n'est pas en service à ce jour ; si elle est introduite (module optionnel futur), le fournisseur sera d'abord inscrit à ce registre.

Postmark ou Mailgun (prod — à déterminer définitivement)

Service Envoi de courriels transactionnels (notifications, reset password, alertes Loi 25, demandes d'accès art. 27)
Localisation États-Unis (Postmark : Boston, MA / Mailgun : San Antonio, TX)
Type de RP traitées Adresses courriel des destinataires + contenu du message (qui peut référencer le nom + résumé d'action). Pas de stockage durable côté fournisseur (rétention typique 30-60 jours pour debug, configurable).
5 clauses art. 18.3 À confirmer à la signature du contrat. Postmark publie son DPA https://postmarkapp.com/eu-privacy, Mailgun publie le sien https://www.mailgun.com/legal/dpa/.
En vigueur depuis (à compléter)

MailHog (dev local seulement)

Service Catch-all de courriels en environnement de développement (make dev-up)
Localisation Conteneur Docker tournant sur la machine du développeur — aucun courriel ne sort sur Internet
Type de RP traitées Sans objet (environnement de test avec données fictives)
5 clauses art. 18.3 Sans objet

Cloudflare Inc. (DNS + hébergement du site vitrine statique)

Service (1) Résolveur DNS pour le domaine corvee.ca (records A, AAAA, CNAME) ; (2) hébergement du site vitrine statique www.corvee.ca via Cloudflare Workers (assets-only, aucun script serveur) — les pages publiques marketing, la FAQ, les guides et les politiques. Le trafic applicatif des tenants ({slug}.corvee.ca) et de la console admin ne transite PAS par Cloudflare : il est servi directement par Fly.io.
Localisation Réseau Anycast global, siège San Francisco, États-Unis
Type de RP traitées Aucune RP. Le site vitrine est 100 % statique : aucun formulaire, aucune collecte, aucune base de données, aucun backend en exécution. Cloudflare ne voit que des fichiers publics (HTML/CSS/fontes) et les requêtes DNS publiques. Les RP des personnes desservies et des bénévoles vivent uniquement dans l'application tenant (Fly.io, YUL).
5 clauses art. 18.3 Sans objet pour le volet DNS (infrastructure publique). Pour le volet hébergement vitrine : aucune RP traitée, donc pas de communication de RP au sens de l'art. 18.3 ; le DPA Cloudflare (https://www.cloudflare.com/cloudflare-customer-dpa/) couvre néanmoins la relation.

Stripe (facturation des abonnements — organisme uniquement)

Service Facturation des abonnements SaaS de La Corvée : émission des factures aux organismes clients et suivi des paiements (mode « Invoicing » — factures ponctuelles envoyées par courriel).
Localisation juridique de l'entité À confirmer au contrat — Stripe opère via plusieurs entités (Stripe, Inc., États-Unis ; Stripe Payments Canada Ltd. pour les commerçants canadiens). L'entité exacte liant La Corvée sera précisée à l'ouverture du compte et inscrite ici avant la première facture réelle (checklist humaine).
Type de RP traitées AUCUN renseignement personnel d'une personne desservie ni d'un bénévole. Seules transitent les données de l'organisme client : raison sociale (nom légal), adresse de l'organisme, courriel de facturation de rôle (jamais nominatif — ex. facturation@obnl.org) et un identifiant technique interne (tenant_slug) en métadonnée. Aucun numéro de carte n'est saisi par La Corvée (paiement hors bande ou page hébergée Stripe).
Garantie de minimisation Le périmètre est verrouillé côté code (points de passage uniques StripeCustomerInput / StripeInvoiceInput) : rien d'autre que ces quatre champs ne peut atteindre Stripe. La description de facture ne contient que l'abonnement de l'organisme (plan, palier, période), jamais un nom de bénéficiaire.
5 clauses art. 18.3 À confirmer à la signature. Stripe publie son DPA (https://stripe.com/legal/dpa) et son registre de sous-traitants (https://stripe.com/legal/service-providers). Nature/finalité (facturation d'abonnement) définie ; confidentialité contractuelle (DPA) ; notification d'incident (DPA) ; sort des données à la fin (fermeture du compte) ; interdiction d'usage à d'autres fins.
Taxes La décision d'inscription aux fichiers TPS/TVQ (petit fournisseur vs inscription volontaire) est une décision comptable humaine à prendre avant la première facture réelle ; jusque-là les colonnes de taxe sont à zéro et « plus taxes applicables » est affiché. Stripe Tax n'est pas activé.
En vigueur depuis (à compléter à l'ouverture du compte — mode test d'abord)

Sous-traitants explicitement exclus

La Corvée n'utilise pas et n'utilisera pas :

  • AWS, Microsoft Azure, Google Cloud Platform côté hébergement — régions canadiennes opérées par des entités US plus grandes avec des engagements de localisation moins clairs que ceux obtenus avec Fly.io Inc. (qui s'engage explicitement sur le datacenter YUL), et un coût significativement supérieur (3-5×) pour des garanties similaires sous CLOUD Act.
  • Cloudflare en mode proxy (orange cloud) — pas d'interception du trafic applicatif chez un tiers (utilisé uniquement comme résolveur DNS — voir entrée ci-dessus).
  • Google Analytics, Plausible.io Cloud, Matomo Cloud — pas de pistage de comportement utilisateur (cf. politique §3.1).
  • Sentry SaaS, Bugsnag, DataDog SaaS — pas d'envoi des stack traces (qui peuvent référencer des champs JSONB clients donc des RP) à des fournisseurs SaaS US. Auto-hébergement éventuel d'une instance Sentry/GlitchTip dans la même région Fly YUL.
  • Supabase, Crunchy Bridge, Neon comme Postgres managé — toutes US, sans bénéfice net vs Fly Postgres direct.
  • Tigris, Backblaze B2, MinIO (stockage objet externe) — plus aucun stockage objet tiers : les documents sont stockés en bytea chiffré dans la base Postgres du tenant (YUL), pas chez un fournisseur externe.

Si une exception devient nécessaire pour un service critique :

  1. évaluée par le PRP via une EFVP simplifiée intégrée au présent registre (cf. l'évaluation des facteurs relatifs à la vie privée tenue par le PRP — document interne, non public) ;
  2. consentie ou refusée par le PRP avec justification écrite ;
  3. publiée ici avant son entrée en vigueur ;
  4. notifiée aux OBNL clientes par courriel avec préavis de 30 jours.

Bibliothèques logicielles

Les bibliothèques tierces (Composer, npm) installées dans le code de La Corvée ne sont pas considérées comme des sous-traitants au sens de l'art. 18.3 :

  • elles s'exécutent sur nos serveurs ;
  • elles n'envoient aucune donnée à un tiers (à l'inspection régulière par le mainteneur principal) ;
  • elles sont soumises aux mêmes contrôles d'accès que le reste du code applicatif.

La liste complète des dépendances est tenue dans les fichiers composer.json et composer.lock du dépôt de code (dépôt privé — logiciel propriétaire) ; elle est fournie sur demande au PRP (privacy@corvee.ca).

Comment signaler un manquement

Si vous suspectez qu'un sous-traitant non listé ici reçoit involontairement des RP :

  • Écrivez à privacy@corvee.ca avec les détails
  • Le PRP enquêtera et publiera un rectificatif sur ce registre sous 15 jours

Version 1.2 · Effective : 2026-07-03 · Statut : draft.