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.

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 |
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] |
[
{
"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 |
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] |
{
"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] |
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] |
{
"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.