> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conformité par personne

> Recréez l'exportation de conformité de formation par personne d'un fournisseur précédent à partir des affectations, des inscriptions et des cours de l'API /v1.

Ce rapport constitue le volet formation de l'exportation de conformité par personne d'un fournisseur précédent : l'identité du répertoire, plus une ligne par personne et par inscription à une formation (statut et dates du module).

La granularité est en format long — personne × affectation — car c'est ce que
`GET /v1/assignments/{id}/enrollments` retourne déjà. La requête ne
pivote pas les modules en colonnes.

<Note>
  Les accusés de réception des politiques ne font pas partie de ce rapport. Living Security n'offre
  aucune API d'acceptation des politiques; ces colonnes héritées sont donc hors du champ d'application et ne constituent pas une correspondance en attente. Consultez [Différences par rapport à l'exportation héritée](#diff%C3%A9rences-par-rapport-%C3%A0-l-exportation-h%C3%A9rit%C3%A9e).
</Note>

La configuration, les identifiants, la pagination et la reprise après limitation de débit sont les mêmes que dans le
[guide de connectivité Power BI / Excel](/fr-CA/developers/v1/powerbi). Ajoutez d'abord la requête partagée
`Fn_FetchAll`; ce rapport l'appelle par son nom.

## Portées de clé requises

| Portée | Utilisation |
| - | - |
| `training:read` | `GET /v1/assignments` et `GET /v1/assignments/{id}/enrollments` |
| `course:read` | `GET /v1/courses` (titres du catalogue) |

## Points de terminaison sources

| Point de terminaison | Rôle |
| - | - |
| `GET /v1/assignments` | Liste des affectations : `assignment_id`, titre, `course_id`, statut du cycle de vie, `created_at`. La requête ne filtre pas selon le statut; les affectations actives, suspendues et terminées apparaissent donc toutes (conformité historique). |
| `GET /v1/assignments/{id}/enrollments` | Progression par apprenant. Un parcours paginé par affectation. Il s'agit de la granularité des faits et de la seule ressource `/v1` de ce rapport qui comporte le courriel comme clé de jointure pour la production de rapports. |
| `GET /v1/courses` | Résout `course_id` → titre du cours (le nom du module de formation). `Assignment.title` est une étiquette de campagne, et non le nom du module. |

Cette requête n'appelle **pas** `GET /v1/entities`. La ligne d'inscription
comporte déjà `email` et `display_name`, et la liste des entités ne contient ni
service ni titre de poste; la parcourir ne permettrait donc pas de renseigner des
colonnes de répertoire que la ligne d'inscription ne fournit pas déjà.

### Granularité

Une ligne par inscription (personne × affectation). Une personne à qui le même
cours est affecté au moyen de deux affectations produit deux lignes. Une personne sans
inscription n'apparaît pas — `/v1` ne peut pas produire une ligne de répertoire utilisable
sans courriel, et créer des lignes composées uniquement de personnes mélangerait les granularités.

Budget de requêtes : un parcours paginé par affectation, de façon séquentielle, sous la
limite de débit partagée par clé. Définissez toujours `limit = "500"`.

## Correspondance des colonnes

Les noms de colonnes hérités proviennent de l'exportation de votre fournisseur précédent. Les champs `/v1`
sont les noms de l'API publique; la requête en renomme certains pour le rapport.

| Colonne héritée | Champ `/v1` ou dérivation | Colonne du rapport |
| - | - | - |
| Courriel | `Enrollment.email` | `email` |
| Nom complet | `Enrollment.display_name` | `full_name` |
| Service | Absent de `/v1` | Omis, non mis à null |
| Autres données du répertoire (titre, gestionnaire, emplacement, …) | Absentes de `/v1` — les entités ne comportent que le courriel et le nom d'affichage. | Omises |
| Module de formation / nom du cours | `Course.title`, avec repli sur `Assignment.title` | `course_name` |
| Statut de l'affectation / du module | `Enrollment.status` — `not_started` \| `in_progress` \| `completed` \| `overdue` \| `withdrawn` | `enrollment_status` |
| Date d'affectation | `Enrollment.assigned_at` | `assigned_at` |
| Date d'achèvement | `Enrollment.completed_at` | `completed_at` |
| Date d'échéance | `Enrollment.due_at` (l'exportation héritée ne la comportait peut-être pas; elle est incluse parce que l'API la fournit) | `due_at` |
| Acceptation / accusé de réception de politique | Aucun domaine de politiques | Omis |
| Nom de la politique, date d'acceptation | Aucun domaine de politiques | Omis |

Clés de jointure conservées pour un modèle en étoile : `entity_id`, `assignment_id`,
`course_id`, `user_assignment_id`.

La requête conserve également `course_slug`, `assignment_title`, `passed`,
`attempts`, `assignment_lifecycle_status` et `assignment_created_at`.
`enrollment_status` correspond à la progression de l'apprenant, et non au cycle de vie de l'affectation
(`active` / `paused` / `completed`).

## Différences par rapport à l'exportation héritée

* **Les acceptations de politiques ne sont pas disponibles.** Cette plateforme n'a aucun domaine
  de politiques — il n'existe ni `/policies`, ni `/policy_acceptances`, ni ressource
  `/v1` équivalente. Ne considérez pas ces colonnes comme une correspondance en attente. Elles
  sont hors du champ d'application.
* **Les données supplémentaires du répertoire sont omises, non mises à null.** Le service, le titre de poste,
  le gestionnaire et l'emplacement ne figurent pas dans `/v1`. La requête ne crée pas de colonnes
  vides pour ces données.
* **La date d'échéance est incluse** même si l'exportation héritée ne la comportait pas,
  car `Enrollment.due_at` est disponible dans l'API.
* **Le nom du cours privilégie le titre du catalogue.** `Course.title` est le nom du
  module. `Assignment.title` n'est utilisé que lorsque la ligne du catalogue est absente
  (supprimée ou non publiée).
* **Format long, sans pivot.** Une ligne par inscription, et non une ligne par
  personne avec une colonne par module.

## Prochaines étapes

<CardGroup cols={2}>
  <Card title="Configuration de Power BI et d'Excel" href="/fr-CA/developers/v1/powerbi">
    Identifiants, pagination et chargement de ces requêtes dans Power BI ou Excel.
  </Card>

  <Card title="Journal d'hameçonnage par courriel" href="/fr-CA/developers/v1/reports/email-phishing-log">
    Interactions d'hameçonnage au niveau des événements pour les 12 derniers mois.
  </Card>

  <Card title="Utilisateurs les plus vulnérables" href="/fr-CA/developers/v1/reports/most-susceptible-users">
    Cumul par personne sur 12 mois des clics, des identifiants saisis et des signalements.
  </Card>

  <Card title="Clés d'API" href="/fr-CA/developers/developer-hub/api-keys">
    Accordez `training:read` et `course:read` à la clé qui actualise ce rapport.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.