Gestion des Familles de données et des Usages
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.
Gestion des Usages
Pour rappel, l'Usage explicite la finalité des traitements appliqués sur les Familles de données collectées et répond à la question : « A quoi vont servir les données concernées par cette demande de consentement ? ». L'usage est spécifique pour chaque demande de consentement.
Quelques exemples de finalités de traitement :
- Gestion de la clientèle
- Enquête de satisfaction
- Recherche et développement
- Réalisation d'indicateurs de suivi pour conseil
- Prospection commerciale
- etc.
Comme précisé par la CNIL (source] : une fois l'usage précisé, celui ci doit être respecté. En cas de changement de finalité sur l'usage prévu des données, une nouvelle demande de consentement doit être établie. Il en va de votre responsabilité de vous assurer que les données que vous collectez soient utilisées selon le cadre spécifié dans les consentements recueillis.
Dans AGATA CONSENT, la structure des Usages est la suivante :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
| name * | string | Oui | Dénomination de l'Usage |
| description * | string | Oui | Description de la finalité de traitement |
| business_identifier * | string | Oui | Identifiant métier de l'Usage |
| domain_id * | string | Oui | Identifiant unique du domaine (UUID) auquel est rattaché l'Usage |
| id * | string | Oui | Identifiant unique de l'usage (UUID) |
Tout comme les Familles, la récupération préalable des Usages est un pré requis à l'enregistrement d'une demande de consentement : l'Usage permet de définir la finalité des traitements appliqués sur les Familles de données collectées.

Lister les Usages
Lister les Usages de données d'un Domaine spécifique.
Requête
GET /domains/{domain_id}/usages
| 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/usages' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Retourne un tableau des Usages du Domaine |
| 404 | Not Found | Aucun Usage présent sur le Domaine |
| Body | Type | Description | Exemple |
|---|---|---|---|
| name | string | Dénomination de l'Usage | Tableau de bord pour technicien |
| description | string | Description de l'usage qui est fait des données | Fabrication des indicateurs de suivi du tableau de bord Technicien conseil en élevage |
| business_identifier | string | Identifiant métier de l'Usage | TDB_Technicien |
| domain_id | string | Identifiant unique (UUID) du Domaine référençant l'Usage | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| id | string | Identifiant unique (UUID) de l'Usage | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
[
{
"name": "Tableau de bord pour technicien",
"description": "Fabrication des indicateurs de suivi du tableau de bord Technicien conseil en élevage",
"business_identifier": "TDB_Technicien",
"domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
"id": "1d5d4ec4-0a83-49a7-9209-f78a7af9360d"
}
{
"name": "Facturation Élevage",
"description": "Calcul de la facturation selon les paramètres d'élevage",
"business_identifier": "Facturation_Elevage",
"domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
"id": "c9aec0b1-0a04-4c71-aff7-7dffb9592150"
}
]
Récupérer un Usage
Récupérer un Usage de données par son identifiant unique.
Requête
GET /domains/{domain_id}/usages/{usage_id}
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| domain_id * | string | Oui | Identifiant unique (UUID) du Domaine visé | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| usage_id * | string | Oui | Identifiant unique (UUID) de l'Usage recherché | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
curl -X 'GET' \
'https://www.agata-consent.com/domains/f3c281e1-85bf-463f-809f-9648bf297cf7/usages/1d5d4ec4-0a83-49a7-9209-f78a7af9360d' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Retourne l'Usage du Domaine visé |
| 404 | Not Found | Aucun Usage présent sur le Domaine |
| Body | Type | Description | Exemple |
|---|---|---|---|
| name | string | Dénomination de l'Usage | Tableau de bord pour technicien |
| description | string | Description de l'usage qui est fait des données | Fabrication des indicateurs de suivi du tableau de bord Technicien conseil en élevage |
| business_identifier | string | Identifiant métier de l'Usage | TDB_Technicien |
| domain_id | string | Identifiant unique (UUID) du Domaine référençant l'Usage | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| id | string | Identifiant unique (UUID) de l'Usage | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
{
"name": "Tableau de bord pour technicien",
"description": "Fabrication des indicateurs de suivi du tableau de bord Technicien conseil en élevage",
"business_identifier": "TDB_Technicien",
"domain_id": "f3c281e1-85bf-463f-809f-9648bf297cf7",
"id": "1d5d4ec4-0a83-49a7-9209-f78a7af9360d"
}
Ajouter un Usage
Ajoute un Usage de données à un Domaine.
Requête
POST /domains/{domain_id}/usages
| 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 | Dénomination de l'Usage | Établissement de devis |
| description | string | Oui | Description de l'usage qui est fait des données | Établissement d`un devis suite rédaction dossier technique |
| business_identifier | string | Oui | Identifiant métier de l'Usage | Fabrication_Devis |
curl -X 'POST' \
'https://www.agata-consent.com/domains/{440d98ed-466a-4114-a3f2-6d4d2d946e3c}/usages' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"name": "Établissement de devis",
"description": "Établissement d`un devis suite rédaction dossier technique",
"business_identifier": "Fabrication_Devis"
}
Réponse
| Code | Titre | Description |
|---|---|---|
| 201 | Created | Usage créée avec succès |
| 400 | Bad request | Syntaxe de la requête invalide |
| 409 | Conflict | Un Usage avec le même business_identifier existe déjà |
| Body | Type | Description | Exemple |
|---|---|---|---|
| name | string | Dénomination de l'Usage | Établissement de devis |
| description | string | Description de l'usage qui est fait des données | Établissement d`un devis suite rédaction dossier technique |
| business_identifier | string | Identifiant métier de l'Usage | Fabrication_Devis |
| domain_id | string | Identifiant unique (UUID) du Domaine référençant l'Usage | 440d98ed-466a-4114-a3f2-6d4d2d946e3c |
| id | string | Identifiant unique (UUID) de l'Usage | 0019e6a4-4192-4f66-87ca-f33a8bfaf22d |
{
"name": "Établissement de devis",
"description": "Établissement d`un devis suite rédaction dossier technique",
"business_identifier": "Fabrication_Devis",
"domain_id": "440d98ed-466a-4114-a3f2-6d4d2d946e3c",
"id": "0019e6a4-4192-4f66-87ca-f33a8bfaf22d"
}
Modifier un Usage
La modification des Usages n'est pas possible. En effet, l'Usage étant enregistré au moment de la création d'une demande de consentement, toute édition invaliderait l'ensemble des consentements utilisant cet Usage.
De fait, soyez particulièrement attentif au moment de créer vos Usages pour éviter toute erreur, notamment dans le nom et la description de ceux-ci.
Supprimer un Usage
La suppression des Usages n'est pas possible. En effet, l'Usage étant enregistré au moment de la création d'une demande de consentement, toute suppression invaliderait l'ensemble des consentements utilisant cet Usage.
De fait, soyez particulièrement attentif au moment de créer vos Usages pour éviter toute erreur, notamment dans le nom et la description de ceux-ci.