Aller au contenu

Gestion des Familles de données

Dans le cadre d'un traitement ou d'une valorisation, de nombreuses données sont nécessaires en amont. Afin de rester intelligible et pour éviter une sursollicitation des Détenteurs, les consentements AGATA CONSENT s'appliquent sur un périmètre plus large : la Famille de données (Family). Cette dénomination correspond aux catégories de données collectées évoquées par la CNIL dans le cadre du RGPD (source). Les données collectées sont ainsi regroupées par catégories cohérentes afin de garantir la validité du consentement.

  flowchart TD;
    B[Donnée 1]-->A[Famille de données];
    C[Donnée 2]-->A[Famille de données];
    D[Donnée 3]-->A[Famille de données];
    E[Donnée 4]-->A[Famille de données];
    F[Donnée 5]-->A[Famille de données];
    G[Donnée 6]-->A[Famille de données];

Dans AGATA CONSENT, une Famille de données a les caractéristiques suivantes :

Attribut Type Obligatoire Description
name * string Oui Intitulé de la Famille de données
business_identifier * string Oui Identifiant métier de la Famille de données
id * string Oui Identifiant unique (UUID) de la Famille de données
domain_id * string Oui Identifiant unique (UUID) du Domaine auquel est rattachée la Famille de données
datas_collected * string Oui Descriptions usuelles des catégories de données couvertes par le consentement

Prenons l'exemple des informations de naissance d'un bovin. Sans être exhaustif, voici les données la constituant :

  flowchart TD;
    B["N° animal"]-->A[Information de naissance d'un animal];
    C[Mère]-->A;
    D[Père]-->A;
    E[Code race]-->A;
    F[Poids]-->A;
    G[Date de naissance]-->A;
    H[Condition de vêlage]-->A;

Néanmoins, la liste des données précises peut être amenée à évoluer selon les process des organismes, les évolutions réglementaires, les besoins de suivi sanitaires, de recherche, etc. Dans le cas où chaque donnée est listée dans la Famille, toute évolution de cette liste invaliderait les précédents consentements et/ou imposerait la mise en place de versionning de consentements et sa bonne prise en compte par chaque éditeur de logiciel.

Comme indiqué précédemment et conformément à la CNIL, choix est fait de porter le périmètre de la Famille sur les catégories de données collectées. Dans l'exemple précédemment cité, un consentement souhaitant recueillir les informations de naissance d'un animal mentionnera la Famille « Informations de naissance d'un animal » et non pas l'inventaire complet des données collectées.

La récupération des Familles est un préalable indispensable avant la création des demandes de consentement. La Famille permet de définir les catégories de données collectées et donc concernées par la demande de consentement.

Écran de création de demande de consentement du portail AGATA CONSENT

Lister les Familles

Lister les Familles de données d'un Domaine spécifique.

Requête

GET /domains/{domain_id}/families

Paramètre Type Obligatoire Description Exemple
domain_id * string Oui Identifiant unique (UUID) du Domaine visé f3c281e1-85bf-463f-809f-9648bf297cf7
Exemple de requête
curl -X 'GET' \
  'https://www.agata-consent.com/domains/f3c281e1-85bf-463f-809f-9648bf297cf7/families' \
  -H 'accept: application/json'

Réponse

Code Titre Description
200 OK Retourne un tableau de Familles
404 Not Found Aucune Famille présente sur le Domaine
Body Type Description Exemple
name string Nom de la Famille Carnet sanitaire d'un bovin
business_identifier string Valeur de l'identifiant de la Famille BOVIN_carnet_sanitaire
id string Identifiant unique de la Famille 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50
domain_id string Identifiant unique du Domaine de la Famille f3c281e1-85bf-463f-809f-9648bf297cf7
datas_collected string Description du ou des type(s) de données collectées [Identification animale,informations sanitaires animal]
Exemple de réponse
[
  {
    "name": "Carnet sanitaire d'un bovin",
    "business_identifier": "BOVIN_carnet_sanitaire",
    "id": "0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50",
    "domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
    "datas_collected": [
      "Identification animale",
      "informations sanitaires animal"
    ]
  }
  {
    "name": "Informations génétique d'un bovin",
    "business_identifier": "BOVIN_genetique",
    "id": "1cc477dc-6aeb-4259-a541-9ea12f8fb553",
    "domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
    "datas": [
      "génotype bovin"
    ]
  }
]

Récupérer une Famille

Récupérer les éléments d'une Famille de donnée liée à une Domaine grâce à son identifiant unique {family_id}.

Requête

GET /domains/{domain_id}/families/{family_id}

Paramètre Type Obligatoire Description Exemple
domain_id * string Oui Identifiant unique (UUID) du Domaine visé f3c281e1-85bf-463f-809f-9648bf297cf7
family_id * string Oui Identifiant unique (UUID) de la Famille de données recherchée 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50
Exemple de requête
curl -X 'GET' \
  'https://www.agata-consent.com/domains/f3c281e1-85bf-463f-809f-9648bf297cf7/families/0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50' \
  -H 'accept: application/json'

Réponse

Code Titre Description
200 OK Retourne une Famille
404 Not Found Aucune Famille connue avec cet id sur le Domaine
Body Type Description Exemple
name string Nom de la Famille Informations génétique d'un bovin
business_identifier string Valeur de l'identifiant de la Famille BOVIN_genetique
id string Identifiant unique de la Famille 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50
domain_id string Identifiant unique du Domaine de la Famille f3c281e1-85bf-463f-809f-9648bf297cf7
datas_collected string[ ] Description du ou des type(s) de données collectées [génotype bovin]
Exemple de réponse
{
  "name": "Informations génétique d'un bovin",
  "business_identifier": "BOVIN_genetique",
  "id": "0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50",
  "domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
  "datas_collected": ["génotype bovin"]
}

Ajouter une Famille

Ajoute une Famille de données à un Domaine.

Requête

POST /domains/{domain_id}/families

Paramètre Type Obligatoire Description Exemple
domain_id * string Oui Identifiant unique (UUID) du Domaine visé f3c281e1-85bf-463f-809f-9648bf297cf7
Body Type Obligatoire Description Exemple
name string Oui Nom de la Famille à créer Carnet de pâturage
business_identifier string Oui Type d'identifiant de la Famille carnet_paturage
datas_collected string[ ] Oui Description du ou des type(s) de données collectées [carnet de pâturage]
Exemple de requête
curl -X 'POST' \
  'https://www.agata-consent.com/domains/{5c7d01d4-45f1-40d1-94c9-9cc667a7f304}/families' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Carnet de pâturage",
    "business_identifier": "carnet_paturage",
    "datas_collected": [carnet de pâturage]
  }

Réponse

Code Titre Description
201 Created Famille créée avec succès
400 Bad request Syntaxe de la requête invalide
409 Conflict Une Famille avec le même business_identifier existe déjà
Body Type Description Exemple
name string Nom de la Famille Carnet de pâturage
business_identifier string Valeur de l'identifiant de la Famille carnet_paturage
id string Identifiant unique de la Famille fe264dcb-ef97-44db-bb2d-c87c56dae06e
domain_id string Identifiant unique du Domaine de la Famille 5c7d01d4-45f1-40d1-94c9-9cc667a7f304
datas_collected string[ ] Description du ou des type(s) de données collectées [Carnet de pâturage]
Exemple de réponse
{
  "name": "Carnet de pâturage",
  "business_identifier": "carnet_paturage",
  "id": "fe264dcb-ef97-44db-bb2d-c87c56dae06e",
  "domain_id": "5c7d01d4-45f1-40d1-94c9-9cc667a7f304",
    "datas_collected": ["Carnet de pâturage"]
}

Modifier une Famille

La modification de Famille de données n'est pas possible. En effet, la Famille étant enregistrée au moment de la création d'une demande de consentement, toute modification ultérieure de celle-ci invaliderait l'ensemble des consentements utilisant cette Famille. Il serait alors indispensable de procéder à une nouvelle signature de tous ces consentements.

De fait, soyez particulièrement attentif au moment de créer vos Familles pour éviter toute erreur, notamment dans la description de celle ci.

Supprimer une Famille

La suppression de Famille de données n'est pas possible. En effet, la Famille étant enregistrée au moment de la création d'une demande de consentement, toute suppression invaliderait l'ensemble des consentements utilisant cette Famille.

De fait, soyez particulièrement attentif au moment de créer vos Familles pour éviter toute erreur, notamment dans la description de celle ci.