magot developers

Protection des données et conformité

Ce que magot garantit aujourd'hui sur les données des familles, et ce qui reste à faire. Cadre : nLPD (Suisse), données de mineurs, exigences d'audit bancaire.

Cloisonnement

NiveauMécanisme
Entre établissementsRow Level Security Postgres sur toutes les tables métier ; le rôle applicatif ne voit aucune ligne hors de l'établissement de la requête
Entre foyers d'un établissementcontrôlé par l'API : un parent n'agit que sur les enfants de son foyer et ne reçoit que ses événements ; un appareil enfant que sur son enfant. Toute ressource d'un autre foyer répond 404 (son existence n'est pas confirmée)

Consentements parentaux

Le traitement des données d'un enfant repose sur le consentement de son parent, daté, versionné et retirable :

Les types de consentement (child_data_processing, card_issuance, …) et ceux qui conditionnent une fonctionnalité seront fixés par établissement (configuration, à venir) : aujourd'hui ils sont enregistrés, pas encore exigés.

Appareils et sessions

Journal d'audit

Inscrit dans la même transaction que l'action (pas d'action sans trace), non modifiable ni effaçable par le rôle applicatif. Chaque entrée : auteur (appareil, clé technique ou fournisseur d'identité), action, sujet, valeurs.

Actions tracées
argent : recharges, demandes acceptées ou refusées, missions validées
sécurité : gel et dégel de carte, révocation d'appareil
règles : plafonds, catégories, arrondi
consentements : don, nouvelle version, retrait
identité : enrôlement et connexion passkey, échange de jeton bancaire, liaison d'identité, déconnexion, jeton d'appairage émis, appareil enfant appairé, montre approuvée

Durées de conservation

DonnéeConservation
Journal d'événements, décisions d'autorisation, virements, auditpermanente (traces financières et de conformité) — voir « Effacement »
Clés d'idempotence30 jours
Jetons d'appareil révoqués ou expirés (empreintes seules)90 jours
Jetons d'appairage, codes montre, défis WebAuthn expirés1 jour

La purge tourne chaque jour (PURGE_INTERVAL_HOURS). Le rôle applicatif ne peut supprimer que ces données techniques.

Idempotence stricte

Toute écriture porte une Idempotency-Key. Rejouer la même requête rend la réponse d'origine sans réexécuter ; réutiliser la clé pour une autre requête (autre route, autre montant) est refusé (422) au lieu d'être rejoué en silence.

Reste à faire