⚠️ 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 github.com/ma-lemire/popote.
Engagement
Popote, 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 Popote (compute, réseau, stockage Postgres et Redis) |
| 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 LUKS automatique des Volumes Fly. En complément : chiffrement applicatif Secretbox (libsodium) pour les champs particulièrement sensibles (secrets TOTP, sessions Redis, contenu uploads S3) 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'EFVP (efvp_fly.md) — 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 https://fly.io/legal/dpa/) · ✓ Notification d'incident sans délai indu (DPA §8) · ✓ Sort des données à la fin (DPA §11 — flyctl pg destroy + volume destroy) · ✓ Interdiction d'utilisation à d'autres fins (DPA §4) |
| DPA signé | https://fly.io/legal/dpa/ — accepté à l'ouverture du compte Fly (acceptation électronique tracée côté Fly) |
| Registre sous-traitants ultérieurs de Fly | https://fly.io/legal/subprocessors/ — révision annuelle par le PRP Popote |
| En vigueur depuis | (à compléter à la mise en production F8.f2+) |
Backblaze Inc. (Backblaze B2 — région us-east-005)
| Service | Stockage objet S3-compatible pour les exports PDF/CSV générés par l'application + sauvegardes Postgres offsite |
| Localisation physique | Datacenter Sacramento, Californie, États-Unis |
| Localisation juridique | Backblaze Inc., États-Unis |
| Type de RP traitées | Aucune en clair. Tous les uploads sont chiffrés client-side par Popote avant transmission, avec une clé propre à chaque OBNL cliente (XChaCha20-Poly1305-IETF AEAD, format de blob versionné PNCv1 — voir crypto_uploads_design.md pour le détail technique). Backblaze ne voit que du ciphertext opaque + un Content-Type: application/octet-stream identique pour tous les objets (pas même la nature des fichiers — PDF, CSV, image — n'est leakée). Pour les backups Postgres : chiffrement GPG additionnel avant upload. Garantie cryptographique : la suppression de la clé d'une OBNL (par tenant:delete ou cycle de vie) rend ses uploads définitivement indéchiffrables, équivalent à un effacement crypto compatible Loi 25 art. 23. |
| 5 clauses art. 18.3 | DPA Backblaze acquis (https://www.backblaze.com/company/dpa.html) — couvre nature/finalité/confidentialité/destruction/exclusivité. Notification d'incident garantie sans délai indu. |
| Choix de la région | us-east-005 (Sacramento) plutôt qu'AWS S3 ca-central-1 Montréal — coût 5× inférieur pour un risque équivalent (entité US dans les deux cas), et le chiffrement client-side rend la localisation effective sans impact pour la confidentialité. |
| En vigueur depuis | (à compléter à la mise en production) |
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 uniquement, pas proxy)
| Service | Résolveur DNS pour le domaine popoteapp.ca (records A, AAAA, CNAME). Pas de proxy de trafic applicatif — proxy status "DNS only" (grey cloud) sur tous les records. |
| Localisation | Réseau Anycast global, siège San Francisco, États-Unis |
| Type de RP traitées | Aucune RP applicative ne transite par Cloudflare. Seules les requêtes DNS publiques (qui résolvent quel domaine vers quelle IP) sont visibles. |
| 5 clauses art. 18.3 | Sans objet (Cloudflare n'est pas sous-traitant au sens art. 18.3 — service DNS infrastructure publique, comparable à un serveur DNS d'un FAI) |
Sous-traitants explicitement exclus
Popote 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 (object storage Fly natif) — régions IAD/SJC/NRT/AMS, aucune option YUL. Backblaze B2 est préféré pour ce service avec chiffrement client-side robuste.
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. modèle
efvp_fly.md) ; - 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 Popote 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 visible dans
composer.json
et composer.lock du dépôt public.
Comment signaler un manquement
Si vous suspectez qu'un sous-traitant non listé ici reçoit involontairement des RP :
- Écrivez à privacy@malemire.ca avec les détails
- Le PRP enquêtera et publiera un rectificatif sur ce registre sous 15 jours
Version 1.0 · Effective : 2026-05-21 · Statut : draft.