⚠️ 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
byteachiffré dans la base Postgres du tenant (YUL), pas chez un fournisseur externe.
Si une exception devient nécessaire pour un service critique :
- é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) ;
- consentie ou refusée par le PRP avec justification écrite ;
- publiée ici avant son entrée en vigueur ;
- 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.