⚠️ Projet — Version 1.0. Cette politique est rédigée pour la mise en service du logiciel Popote. Elle doit faire l'objet d'une revue juridique avant publication officielle auprès d'organismes opérationnels. La version courante en production sera datée et approuvée par le responsable de la protection des renseignements personnels (PRP) de Popote.

1. Identité de l'organisme

Popote est un logiciel propriétaire de gestion pour les organismes sans but lucratif (OBNL) qui opèrent des services de popotes roulantes au Québec, diffusé en service hébergé (SaaS) par abonnement mensuel à prix communautaire.

Responsable Marc-Antoine Lemire (mainteneur initial)
Adresse Québec, Canada
Courriel privacy@malemire.ca
PRP (responsable de la protection des renseignements personnels) Marc-Antoine Lemire, pour la plateforme
Type d'organisation Logiciel propriétaire (tous droits réservés), sans personnalité juridique distincte au moment de la version 1.0

Note importante : pour chaque organisme client (popote roulante) qui utilise le logiciel, c'est l'OBNL elle-même qui est responsable des renseignements personnels (RP) de ses bénéficiaires et bénévoles au sens de Loi 25 (art. 1). Popote agit comme fournisseur technique (sous-traitant) au sens de l'art. 18.3. Voir §10 ci-dessous.

2. Périmètre de cette politique

Cette politique couvre uniquement :

  • Les RP collectés par le site www.popoteapp.ca (formulaire de contact, statistiques d'utilisation, etc.) ;
  • Les RP collectés via la console super-administrateur (admin.popoteapp.ca) — comptes des super-admins de la plateforme ;
  • Les RP que Popote héberge pour le compte des OBNL clientes dans son rôle de fournisseur technique (cf. §10).

Elle ne couvre pas :

  • Les politiques de confidentialité propres à chaque OBNL cliente vis-à-vis de ses bénéficiaires et bénévoles. Chaque OBNL doit publier sa propre politique conforme Loi 25 art. 8.2 et la communiquer à ses publics.

3. Renseignements personnels collectés

3.1 Visiteurs du site web www.popoteapp.ca

  • Aucune RP n'est collectée passivement par défaut. Pas de cookie de pistage, pas d'analytics tiers (Google Analytics, etc.), pas d'iframe de réseau social.
  • Si vous nous écrivez (formulaire de contact ou courriel direct), nous collectons votre nom, courriel et le contenu de votre message.

3.2 Super-administrateurs de la plateforme

  • Courriel professionnel (identifiant de connexion)
  • Mot de passe (haché Argon2id, jamais stocké en clair)
  • Secret TOTP (chiffré, jamais affiché sauf au moment de l'enrôlement)
  • Adresse IP et user-agent lors de chaque connexion et action sensible (journalisation d'audit)
  • Journal d'audit des actions sur la console (qui, quand, quoi)

3.3 RP des OBNL clientes (rôle sous-traitant)

Pour chaque organisme abonné, Popote héberge — au nom de l'OBNL — les RP que l'OBNL choisit de saisir dans son espace cloisonné :

  • Bénéficiaires : nom, adresse, contact d'urgence, allergies, régime alimentaire, langue, notes d'accès au domicile, tarification adaptée. (Voir §3.4 sur les renseignements sensibles.)
  • Bénévoles : nom, adresse, disponibilités, secteurs, permis, véhicule, courriel.
  • Commandes, routes, factures : générées par les opérations quotidiennes.
  • Consentement : signature numérique au moment de l'inscription, preuve cryptographique conservée par tenant.

3.4 Renseignements sensibles (Loi 25 art. 12-13)

Les renseignements sensibles suivants peuvent être saisis dans les espaces des OBNL clientes :

  • Données de santé : allergies, régimes médicaux, conditions pertinentes pour la livraison (mobilité réduite, etc.)
  • Données financières : tarification adaptée, contributions

Ces renseignements sont chiffrés au repos (PostgreSQL pgcrypto) et leur accès est restreint par RBAC (admin, coordo, livreur ne voient que ce qui leur est nécessaire — Loi 25 principe de minimisation, art. 11). Marqués sensitive=true dans le schéma — un journal d'audit séparé enregistre chaque consultation.

4. Finalités de la collecte (Loi 25 art. 8.1)

Les RP que Popote (la plateforme) collecte servent à :

  1. Authentifier les super-administrateurs et faire fonctionner la console plateforme.
  2. Auditer les actions sensibles (impersonation, modification de tenant, suppression) pour la traçabilité Loi 25 §11.5 et la sécurité.
  3. Répondre aux demandes envoyées via le formulaire de contact.

Les RP que les OBNL clientes saisissent servent à :

  1. Opérer leurs popotes roulantes : planifier les routes, coordonner les bénévoles, gérer les bénéficiaires, facturer.
  2. Rendre des comptes aux bailleurs (PSOC, Centraide, ministères) — agrégés et anonymisés au besoin.

Aucune RP n'est utilisée à des fins de marketing, de revente, de profilage publicitaire ou de décision automatisée sans intervention humaine (Loi 25 art. 12.1 — pas de décisions exclusivement automatisées dans la V1.0).

5. Bases légales et consentement (Loi 25 art. 14)

  • Les super-administrateurs consentent explicitement lors de la création de leur compte.
  • Les OBNL clientes consentent via une entente écrite distincte (cf. §10 — entente sous-traitant).
  • Les bénéficiaires des OBNL consentent au moment de l'inscription par chaque OBNL ; Popote conserve la preuve cryptographique du consentement (HMAC-SHA256 par tenant) mais n'est pas le responsable.

6. Conservation et destruction (Loi 25 art. 11, 23)

Type de donnée Conservation Fondement
Journaux d'audit plateforme 7 ans Obligation d'audit Loi 25 art. 11, recommandation §10.4 du document de conception
Comptes super-admin désactivés Conservés inactifs (cycle de vie sans destruction) Préserve l'intégrité de l'historique d'audit + FK vers impersonation_log
BD tenant archivé 2 ans en lecture seule, puis suppression définitive (tenant:delete) §10.4 doc de conception ; déclenche DROP DATABASE + DROP ROLE
Formulaire de contact 12 mois après réponse Pas de finalité résiduelle
Backups chiffrés 90 jours rolling Sécurité opérationnelle ; chiffrement AES-256-GCM
Bénéficiaires individuels (côté OBNL) Selon la politique de l'OBNL — Popote fournit la CLI client:forget pour le droit à l'oubli (Loi 25 art. 23) Sous la responsabilité de l'OBNL

7. Sécurité (Loi 25 art. 10)

  • Authentification : Argon2id (NIST SP 800-63B Memory-Hard) + 2FA TOTP obligatoire pour tous les super-administrateurs (ENF-SEC-02). Lockout après 5 échecs / 15 min.
  • Sessions : cookies HttpOnly + Secure + SameSite=Lax, identifiants 256 bits, store Redis cloisonné par MODE (admin / tenant / API).
  • Isolation multi-tenant : chaque OBNL cliente a une base de données PostgreSQL distincte + rôle SQL distinct (pattern Silo). Pas d'accès cross-tenant possible techniquement.
  • Chiffrement au repos : Volumes de l'hébergeur chiffrés (LUKS dm-crypt). En complément, chiffrement applicatif zero-knowledge côté hébergeur sur les RP particulièrement sensibles :
    • Secrets TOTP et sessions : Secretbox libsodium (XSalsa20-Poly1305) avec la clé globale ENCRYPTION_KEY.
    • Uploads objet (PDF reçus fiscaux, rapports PSOC, exports CSV, signatures PWA, etc.) : XChaCha20-Poly1305-IETF (AEAD avec Additional Authenticated Data) avec une clé propre à chaque OBNL cliente (per-tenant DEK). Chaque OBNL a une clé de chiffrement distincte, stockée chiffrée elle-même par ENCRYPTION_KEY dans la BD master. Conséquence : (a) compromission d'une clé OBNL n'affecte pas les autres OBNL, (b) droit à l'oubli cryptographique Loi 25 art. 23 — la suppression de la clé de l'OBNL rend tous ses uploads mathématiquement indéchiffrables, même si l'hébergeur conservait les fichiers. La clé maîtresse ENCRYPTION_KEY est gérée hors-volume Postgres via le coffre Fly Secrets et n'apparaît jamais en clair sur disque.
  • Chiffrement en transit : TLS 1.3 minimum sur tous les sous-domaines (HSTS avec includeSubdomains).
  • Sauvegardes : chiffrées AES-256-GCM, conservées 90 jours, testées trimestriellement.
  • Audit complet : chaque action sensible journalisée (audit_log tenant + platform_audit master), incluant impersonated_by quand un super-admin agit pour le compte d'un user (transparence Loi 25 §11.5).
  • Détection d'anomalies : règles V1 (>100 lectures clients en 10 min, exports nocturnes ou en weekend) — alerte le PRP par courriel.

8. Hébergement et transferts (Loi 25 art. 17)

8.1 Localisation physique des serveurs

L'infrastructure de production de Popote est hébergée au datacenter de Beauharnois (Québec, Canada) — région yul de notre hébergeur Fly.io Inc. Les serveurs sont physiquement situés au Québec et les sauvegardes Postgres restent dans la même région.

8.2 Sous-traitance hors-Québec déclarée

L'entité opératrice Fly.io Inc. est incorporée au Delaware (États-Unis). À ce titre, bien que les serveurs et les disques de stockage soient physiquement au Québec, Fly.io Inc. demeure une société américaine et peut, en théorie, être soumise à des demandes des autorités américaines (notamment le CLOUD Act — 50 USC §1881a).

Conformément à Loi 25 art. 17, Popote a procédé à une évaluation des facteurs relatifs à la vie privée (EFVP) pour ce transfert. Les mesures techniques et contractuelles retenues sont les suivantes :

  1. Chiffrement applicatif Secretbox (libsodium XSalsa20+Poly1305) des renseignements particulièrement sensibles (secrets TOTP, sessions, contenu des uploads S3) avec une clé ENCRYPTION_KEY gérée logiquement séparée du volume de stockage Postgres. Fly.io Inc. ne pourrait donc pas lire ces champs même si elle était contrainte de divulguer un volume.
  2. Argon2id sur les mots de passe — irréversibles.
  3. Hash SHA-256 sur les jetons de session PWA — irréversibles.
  4. DPA (Data Processing Agreement) signé avec Fly.io Inc., conforme aux 5 clauses art. 18.3, incluant l'obligation de notification d'incident sans délai indu et le retour ou la destruction certifiée des données à la fin de la relation.
  5. Image Docker portable (GHCR) et migration de retour vers un hébergeur strictement québécois (ex. OVHcloud Canada Inc.) documentée comme plan B activable en cas d'évolution du risque ou de demande d'une OBNL cliente.

L'EFVP complète est conservée par Popote et peut être communiquée sur demande à une OBNL cliente ou à la Commission d'accès à l'information du Québec.

8.3 Sous-traitants ultérieurs hors-Québec déclarés

Sous-traitant Pays Service Type de RP exposées
Fly.io Inc. États-Unis (Delaware) Hébergement YUL Beauharnois Toutes RP, mitigation par chiffrement applicatif Secretbox + Argon2id pour les champs les plus sensibles
Backblaze Inc. (Backblaze B2) États-Unis (Californie) Stockage objet S3 pour exports et sauvegardes offsite Uniquement du contenu chiffré client-side avant upload (Secretbox + GPG pour backups) — Backblaze ne voit que du chiffre opaque
Postmark / Mailgun (à déterminer) États-Unis Envoi de courriels transactionnels (notifications, reset password) Adresses courriel + contenu des messages — transit uniquement, pas de stockage durable

Le registre complet et à jour est publié à /politique/sous-traitants/.

8.4 Sous-traitants explicitement exclus

Popote n'utilise pas et n'utilisera pas :

  • AWS, Microsoft Azure, Google Cloud Platform — leurs régions canadiennes sont opérées par des entités américaines de plus grande taille avec des engagements de localisation moins clairs que ceux obtenus avec Fly.io Inc., et un coût significativement supérieur.
  • Cloudflare proxy (orange cloud) côté origin — pas d'interception du trafic applicatif chez un tiers américain. Cloudflare est utilisé uniquement comme résolveur DNS (A/AAAA/CNAME records) pour le domaine popoteapp.ca.
  • Google Analytics, Plausible.io, Matomo Cloud — pas de pistage de comportement utilisateur.
  • Sentry SaaS, Bugsnag, DataDog — pas d'envoi des stack traces contenant potentiellement des RP à des fournisseurs SaaS US.

9. Vos droits (Loi 25 art. 27, 28, 35)

Vous avez le droit de :

  • Accéder à vos RP que nous détenons. Demande à privacy@malemire.ca, réponse dans les 30 jours (Loi 25 art. 32).
  • Rectifier des RP inexactes, incomplètes ou équivoques.
  • Retirer votre consentement à tout moment (art. 14).
  • Demander la suppression ou l'anonymisation de vos RP, sous réserve des obligations légales de conservation (cf. §6).
  • Porter plainte à la Commission d'accès à l'information du Québec (CAI) si vous estimez que vos droits ne sont pas respectés : https://www.cai.gouv.qc.ca.

Pour exercer ces droits, écrivez à privacy@malemire.ca. Nous accuserons réception sous 48 h et fournirons une réponse substantielle sous 30 j.

10. Sous-traitants et entente OBNL (Loi 25 art. 18.3)

Quand une OBNL utilise Popote, elle reste le responsable des RP de ses bénéficiaires et bénévoles. Popote agit comme sous-traitant technique au sens de l'art. 18.3.

Une entente écrite Popote ↔ OBNL formalise :

  1. La nature, finalité, durée du traitement
  2. Le caractère confidentiel et l'obligation de sécurité
  3. L'obligation de notification d'incident dans les meilleurs délais
  4. Le sort des données à la fin de la relation (export + destruction)
  5. L'interdiction d'utiliser les RP à d'autres fins

Sous-traitants techniques de Popote (registre complet et à jour : /politique/sous-traitants/) :

Fournisseur Service Localisation physique Localisation juridique Type de RP traitées
Fly.io Inc. Hébergement serveurs + stockage Beauharnois, QC États-Unis (Delaware) Toutes RP — chiffrement at-rest LUKS + chiffrement applicatif Secretbox pour champs sensibles (voir §8.2)
Backblaze Inc. Stockage objet S3 (B2) pour exports et backups États-Unis (Californie) États-Unis Contenu chiffré client-side uniquement (Secretbox + GPG) — Backblaze ne voit aucune RP en clair
Postmark / Mailgun (prod) Envoi de courriels transactionnels États-Unis États-Unis Adresses courriel + contenu des messages — transit, pas de stockage durable
MailHog (dev seulement) Catch-all dev local Conteneur local Docker Sans objet Sans objet
chillerlan/php-qrcode Génération QR codes TOTP Aucun (librairie locale embarquée) Sans objet Aucun

Voir §8.2 pour le détail des mesures de protection appliquées au transfert vers Fly.io Inc. (US) et la référence à l'EFVP correspondante.

11. Décisions automatisées (Loi 25 art. 12.1)

Popote n'utilise aucune décision exclusivement automatisée ayant des effets juridiques ou significatifs sur une personne dans la version 1.0. Les optimisations de routes (OSRM/VROOM) sont des aides à la décision consultatives — un humain (coordo) valide toujours la route finale.

Si une fonctionnalité de décision automatisée est ajoutée dans une version future, cette politique sera mise à jour et un avis sera publié.

12. Modifications de cette politique

Cette politique peut être modifiée. Nous publierons un avis de modification au moins 30 jours avant que les changements prennent effet, sauf si la modification corrige une faille de sécurité ou est imposée par la loi.

  • Les versions précédentes restent accessibles publiquement à /politique/v1/, /politique/v2/, etc.
  • Chaque version est horodatée, versionnée et possède un sha256 du contenu pour preuve d'intégrité (voir front matter Markdown).
  • Les utilisateurs actifs sont notifiés par courriel et/ou par une bannière dans leur console.

13. Contact

Pour exercer vos droits privacy@malemire.ca
PRP (responsable Loi 25 art. 7) Marc-Antoine Lemire, privacy@malemire.ca
Plainte CAI https://www.cai.gouv.qc.ca/citoyens/comment-formuler-plainte
Éditeur du logiciel Marc-Antoine Lemire — privacy@malemire.ca

Version 1.0 · Effective : 2026-05-21 · Statut : draft — publication officielle après revue juridique. Ce document est identifié de manière immuable par le sha256 indiqué dans le front matter de ce fichier Markdown.