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

# Suivre l’activité des utilisateurs avec les journaux d’audit

> Accéder aux journaux d’audit W&B, les récupérer et les analyser selon le type de déploiement, y compris le schéma des journaux et les actions suivies.

Utilisez les journaux d’audit W\&B pour suivre l’activité des utilisateurs au sein de votre organisation et respecter les exigences de gouvernance de votre entreprise. Cette page s’adresse aux administrateurs de l’organisation qui doivent accéder aux données des journaux d’audit, les récupérer et les analyser, quel que soit le type de déploiement W\&B. Les journaux d’audit sont disponibles au format JSON. Reportez-vous à la section [Schéma du journal d’audit](#audit-log-schema).

Le mode d’accès aux journaux d’audit dépend du type de déploiement de votre plateforme W\&B :

| Type de déploiement de W\&B Platform | Mode d’accès aux journaux d’audit |
| - | - |
| [Cloud dédié](/fr/products/wandb/platform/hosting/hosting-options/dedicated-cloud) | <ul><li>[BYOB au niveau de l’instance](/fr/products/wandb/platform/hosting/data-security/secure-storage-connector) : synchronisés vers le bucket de l’instance (BYOB) toutes les 10 minutes. Également accessibles via [l’API](#fetch-audit-logs).</li><li>Stockage par défaut au niveau de l’instance : accessibles uniquement via [l’API](#fetch-audit-logs).</li></ul> |
| [Cloud mutualisé](/fr/products/wandb/platform/hosting/hosting-options/multi_tenant_cloud) | Disponibles uniquement avec les offres Enterprise, et accessibles uniquement via [l’API](#fetch-audit-logs). |
| [Autogéré](/fr/products/wandb/platform/hosting/hosting-options/self-managed) | Synchronisés vers le bucket de l’instance toutes les 10 minutes. Également accessibles via [l’API](#fetch-audit-logs). |

Une fois les journaux d’audit récupérés, vous pouvez les analyser avec des outils tels que [Pandas](https://pandas.pydata.org/docs/index.html), [Amazon Redshift](https://aws.amazon.com/redshift/), [Google BigQuery](https://cloud.google.com/bigquery) ou [Microsoft Fabric](https://www.microsoft.com/microsoft-fabric). Certains outils d’analyse ne prennent pas en charge le format JSON. Consultez la documentation de votre outil d’analyse pour connaître les recommandations et les exigences relatives à la conversion des journaux d’audit au format JSON avant l’analyse.

Pour en savoir plus sur le format des journaux, consultez les sections [Schéma du journal d’audit](#audit-log-schema) et [Actions](#actions).

<h2 id="audit-log-retention">
  Conservation des journaux d’audit
</h2>

Les recommandations suivantes vous aident à conserver les journaux d’audit afin de respecter les obligations de gouvernance et de conformité de votre organisation :

* Si vous devez conserver les journaux d’audit pendant une durée déterminée, W\&B recommande de transférer régulièrement les journaux vers un stockage à long terme, soit à l’aide de buckets de stockage, soit via l’API Audit Logging.
* Si vous êtes soumis à la [Health Insurance Portability and Accountability Act of 1996 (HIPAA)](https://hhs.gov/hipaa/for-professionals/index.html), vous devez conserver les journaux d’audit pendant au moins 6 ans dans un environnement où aucun acteur, interne ou externe, ne peut les supprimer ni les modifier avant la fin de la période de conservation obligatoire. Pour les instances [Cloud dédié](/fr/products/wandb/platform/hosting/hosting-options/dedicated-cloud) conformes à la HIPAA qui utilisent [BYOB](/fr/products/wandb/platform/hosting/data-security/secure-storage-connector), vous devez configurer des garde-fous pour le stockage que vous gérez, y compris tout stockage destiné à la conservation à long terme.

<h2 id="audit-log-schema">
  Schéma du journal d’audit
</h2>

Utilisez ce schéma pour interpréter les champs renvoyés dans chaque entrée du journal d’audit. Le tableau suivant répertorie, par ordre alphabétique, toutes les clés susceptibles de figurer dans une entrée du journal d’audit. Selon l’action et le contexte, une entrée donnée peut ne contenir qu’une partie de ces champs.

| Clé | Définition |
| - | - |
| `action` | L’[action](#actions) de l’événement. |
| `actor_email` | L’adresse e-mail de l’utilisateur à l’origine de l’action, le cas échéant. |
| `actor_ip` | L’adresse IP de l’utilisateur à l’origine de l’action. |
| `actor_user_id` | L’ID de l’utilisateur connecté qui a effectué l’action, le cas échéant. |
| `artifact_asset` | L’ID de l’artifact associé à l’action, le cas échéant. |
| `artifact_digest` | Le condensé (digest) de l’artifact associé à l’action, le cas échéant. |
| `artifact_qualified_name` | Le nom complet de l’artifact associé à l’action, le cas échéant. |
| `artifact_sequence_asset` | L’ID de la séquence d’artifacts associée à l’action, le cas échéant. |
| `cli_version` | La version du SDK Python à l’origine de l’action, le cas échéant. |
| `entity_asset` | L’ID de l’entity ou de l’équipe associée à l’action, le cas échéant. |
| `entity_name` | Le nom de l’entity ou de l’équipe associée à l’action, le cas échéant. |
| `project_asset` | Le projet associé à l’action, le cas échéant. |
| `project_name` | Le nom du projet associé à l’action, le cas échéant. |
| `report_asset` | L’ID du rapport associé à l’action, le cas échéant. |
| `report_name` | Le nom du rapport associé à l’action, le cas échéant. |
| `response_code` | Le code de réponse HTTP de l’action, le cas échéant. |
| `timestamp` | L’horodatage de l’événement au [format RFC3339](https://www.rfc-editor.org/rfc/rfc3339). Par exemple, `2023-01-23T12:34:56Z` correspond au 23 janvier 2023 à 12:34:56 UTC. |
| `user_asset` | La ressource utilisateur concernée par l’action (et non l’utilisateur qui l’effectue), le cas échéant. |
| `user_email` | L’adresse e-mail de l’utilisateur concerné par l’action (et non celle de l’utilisateur qui l’effectue), le cas échéant. |

<h3 id="personally-identifiable-information-pii">
  Informations personnelles identifiables (PII)
</h3>

Les informations personnelles identifiables (PII), telles que les adresses e-mail et les noms des projets, des équipes et des rapports, ne sont disponibles qu’avec l’option de point de terminaison de l’API :

* Pour les déploiements [autogérés](/fr/products/wandb/platform/hosting/hosting-options/self-managed) et [Cloud dédié](/fr/products/wandb/platform/hosting/hosting-options/dedicated-cloud), un administrateur de l’organisation peut [exclure les PII](#exclude-pii) lors de la récupération des journaux d’audit.
* Pour le [Cloud mutualisé](/fr/products/wandb/platform/hosting/hosting-options/multi_tenant_cloud), le point de terminaison de l’API renvoie toujours les champs pertinents des journaux d’audit, y compris les PII. Ce comportement n’est pas configurable.

<h2 id="before-you-begin">
  Avant de commencer
</h2>

Avant de récupérer les journaux d’audit, vérifiez que vous remplissez les prérequis suivants pour votre type de déploiement :

* Les administrateurs au niveau de l’organisation peuvent récupérer les journaux d’audit. Si vous recevez une erreur `403`, assurez-vous que vous-même ou votre compte de service disposez des autorisations nécessaires.
* **Cloud mutualisé** : si vous êtes membre de plusieurs organisations Cloud mutualisé, vous devez configurer le paramètre **Default API organization**, qui détermine l’organisation vers laquelle sont acheminés les appels à l’API Audit Logging. Sinon, vous obtenez l’erreur suivante :

  ```text theme={"system"}
  user is associated with multiple organizations but no valid org ID found in user info
  ```

  Pour définir votre organisation d’API par défaut :

  1. Cliquez sur votre image de profil, puis sur **Paramètres utilisateur**.
  2. Pour **Default API organization**, sélectionnez une organisation.

  Cela ne s’applique pas aux comptes de service, qui ne peuvent être membres que d’une seule organisation Cloud mutualisé.

<h2 id="fetch-audit-logs">
  Récupérer les journaux d’audit
</h2>

Utilisez l’API Audit Logging de W\&B pour récupérer les journaux d’audit. Le point de terminaison, les paramètres de requête et le format de la réponse dépendent de votre type de déploiement.

<Tabs>
  <Tab title="Cloud mutualisé">
    Utilisez cet onglet pour le [Cloud mutualisé](/fr/products/wandb/platform/hosting/hosting-options/multi_tenant_cloud). Les journaux d’audit du Cloud mutualisé ne sont disponibles qu’avec les forfaits Enterprise. Le point de terminaison de l’API Audit Logging est :

    ```text theme={"system"}
    https://api.wandb.ai/audit_logs
    ```

    Les paramètres de requête suivants sont pris en charge :

    * `startDate` : le premier jour calendaire UTC de la plage de dates. Utilisez le format `YYYY-MM-DD`. Si vous omettez `startDate`, la plage commence aujourd’hui à minuit UTC, ou `numDays` jours avant aujourd’hui si vous définissez `numDays`.
    * `numDays` : un entier compris entre `0` et `7`. W\&B récupère les journaux à partir de `startDate` et sur les `numDays` jours suivants. Si vous omettez `numDays` ou le définissez sur `0`, W\&B récupère les journaux d’une seule journée.
    * `limit` : le nombre maximum d’entrées de journal d’audit à renvoyer. Utilisez un entier positif inférieur ou égal à `1,000,000`. La valeur par défaut est `1,000,000`.
    * `cursor` : un curseur opaque issu du champ `next_cursor` de la réponse précédente. Réutilisez le curseur avec la même plage de dates résolue.

    Le point de terminaison du Cloud mutualisé renvoie toujours les champs pertinents des journaux d’audit, y compris les données personnelles (PII). Ce comportement n'est pas configurable.

    La réponse est un objet JSON contenant les champs suivants :

    * `audit_logs` : un tableau d’entrées de journal d’audit. Chaque entrée inclut les champs décrits dans [Schéma du journal d’audit](#audit-log-schema).
    * `range_start_time` : le début de la plage de dates résolue, en UTC.
    * `range_end_time` : la fin (exclue) de la plage de dates résolue, en UTC.
    * `count` : le nombre d’entrées de journal d’audit renvoyées dans cette réponse.
    * `next_cursor` : un curseur opaque pour la page de résultats suivante. Si ce champ vaut `null`, il n’y a plus de résultats pour la plage de dates sélectionnée.

    Dans les exemples suivants, remplacez :

    * `[BASE64-USERNAME-API-KEY]` : la chaîne encodée en base64 au format `[USERNAME]:[API-KEY]`.
    * `[NEXT-CURSOR]` : la valeur `next_cursor` de la réponse précédente.

    Pour récupérer les journaux d’audit sur une plage donnée, exécutez :

    ```bash theme={"system"}
    curl -H "Authorization: Basic [BASE64-USERNAME-API-KEY]" \
      "https://api.wandb.ai/audit_logs?startDate=2026-08-01&numDays=2&limit=1000"
    ```

    La réponse ressemble à l’exemple suivant :

    ```json theme={"system"}
    {
      "audit_logs": [
        {
          "action": "project:read",
          "actor_email": "admin@example.com",
          ...
          "timestamp": "2026-08-01T13:12:14Z"
        }
      ],
      "range_start_time": "2026-08-01T00:00:00Z",
      "range_end_time": "2026-08-04T00:00:00Z",
      "count": 1,
      "next_cursor": "eyJyb3dfa2V5Ijoi..."
    }
    ```

    Pour récupérer la page suivante, renvoyez la requête avec la même plage de dates résolue, en définissant `cursor` sur la valeur `next_cursor` de la réponse précédente. Répétez l’opération jusqu’à ce que `next_cursor` soit `null`.

    ```bash theme={"system"}
    curl -H "Authorization: Basic [BASE64-USERNAME-API-KEY]" \
      "https://api.wandb.ai/audit_logs?startDate=2026-08-01&numDays=2&limit=1000&cursor=[NEXT-CURSOR]"
    ```

    <a id="1">1</a>: Sur le [Cloud mutualisé](/fr/products/wandb/platform/hosting/hosting-options/multi_tenant_cloud), les journaux d’audit ne sont pas collectés pour :

    * Les projets Open ou Public.
    * L’action `report:read`.
    * Les actions `User` qui ne sont pas liées à une organisation précise.
  </Tab>

  <Tab title="Cloud dédié et autogéré">
    Utilisez cet onglet pour les instances [Cloud dédié](/fr/products/wandb/platform/hosting/hosting-options/dedicated-cloud) ou [autogérées](/fr/products/wandb/platform/hosting/hosting-options/self-managed). Le point de terminaison de l’API Audit Logging utilise l’URL de votre instance :

    * Cloud dédié : `https://[INSTANCE-NAME].wandb.io/admin/audit_logs`.
    * Autogéré : `https://[WANDB-PLATFORM-URL]/admin/audit_logs`.

    Dans les exemples suivants, remplacez :

    * `[INSTANCE-NAME]` : le nom de votre instance de Cloud dédié.
    * `[WANDB-PLATFORM-URL]` : l’URL de votre instance autogérée.
    * `[API-ENDPOINT]` : le point de terminaison de votre instance.
    * `[BASE64-USERNAME-API-KEY]` : la chaîne encodée en base64 au format `[USERNAME]:[API-KEY]`.
    * `[NEXT-CURSOR]` : la valeur `next_cursor` issue de la réponse précédente.

    Les paramètres de requête suivants sont pris en charge :

    * `anonymize` : si l’URL inclut `anonymize=true`, W\&B n’ajoute pas de champs contenant des données personnelles (PII) aux journaux d’audit. Dans le cas contraire, les PII sont incluses. Pour plus d'informations, voir [Exclure les PII lors de la récupération des journaux d’audit](#exclude-pii).
    * `startDate` : début (inclus) de la plage de dates, en UTC. Les formats pris en charge sont `YYYY-MM-DD`, `YYYY-MM-DDTHH`, `YYYY-MM-DDTHH:mm` et `YYYY-MM-DDTHH:mm:ss`. Les composantes horaires omises valent zéro par défaut. Par exemple, `2026-08-03T01` correspond à `2026-08-03T01:00:00Z`. Si vous omettez `startDate`, la plage commence aujourd’hui à minuit UTC, ou `numDays` jours avant aujourd’hui si vous définissez `numDays`.
    * `numDays` : entier positif ou nul. W\&B récupère les journaux à partir de `startDate` et sur les `numDays` jours suivants. Si vous omettez `numDays` ou le définissez sur `0`, W\&B récupère uniquement les journaux du jour `startDate`. Vous ne pouvez pas utiliser `numDays` avec `endDate`.
    * `endDate` : fin (exclue) de la plage de dates, en UTC. Les formats pris en charge sont les mêmes que pour `startDate`. Si vous définissez `endDate`, la réponse JSON est paginée, même si vous ne définissez pas `limit`. Vous ne pouvez pas utiliser `endDate` avec `numDays`.
    * `limit` : nombre maximum d’entrées de journal d’audit à renvoyer dans une réponse paginée. Utilisez un entier positif inférieur ou égal à `20,000`. Si vous définissez `limit`, W\&B renvoie une réponse JSON paginée. Dans les requêtes paginées, la valeur par défaut est `20,000`.
    * `cursor` : curseur opaque issu du champ `next_cursor` de la réponse précédente. Réutilisez le curseur avec la même plage de dates résolue et la même valeur de `anonymize`. Si vous définissez `cursor`, vous devez également définir `limit` ou `endDate`.

    Si vous ne définissez ni `limit` ni `endDate`, l'API conserve le format de réponse en streaming d'origine. La réponse contient des objets JSON séparés par des sauts de ligne. Chaque objet comprend les champs décrits dans [Schéma du journal d'audit](#audit-log-schema), à l'instar des journaux synchronisés vers un bucket au niveau de l'instance.

    Pour récupérer, en streaming, une réponse JSON délimitée par des sauts de ligne couvrant une période de trois jours, en excluant les données personnelles (PII), exécutez :

    ```bash theme={"system"}
    curl -H "Authorization: Basic [BASE64-USERNAME-API-KEY]" \
      "[API-ENDPOINT]?startDate=2026-08-01&numDays=2&anonymize=true"
    ```

    Si vous définissez `limit` ou `endDate`, l’API renvoie un objet JSON contenant les champs suivants :

    * `audit_logs` : un tableau d’entrées du journal d’audit. Chaque entrée comprend les champs décrits dans [Schéma du journal d’audit](#audit-log-schema).
    * `range_start_time` : le début de la plage de dates résolue, en UTC.
    * `range_end_time` : la fin (exclue) de la plage de dates résolue, en UTC.
    * `count` : le nombre d’entrées du journal d’audit renvoyées dans cette réponse.
    * `next_cursor` : un curseur opaque permettant d’accéder à la page de résultats suivante. Si ce champ vaut `null`, il n’y a plus de résultats pour la plage de dates sélectionnée.

    Pour récupérer une réponse paginée couvrant une plage de deux heures, exécutez :

    ```bash theme={"system"}
    curl -H "Authorization: Basic [BASE64-USERNAME-API-KEY]" \
      "[API-ENDPOINT]?startDate=2026-08-01T13:00&endDate=2026-08-01T15:00&limit=1000"
    ```

    La réponse ressemble à l’exemple suivant :

    ```json theme={"system"}
    {
      "audit_logs": [
        {
          "action": "project:read",
          "actor_email": "admin@example.com",
          ...
          "timestamp": "2026-08-01T14:00:00Z",
        }
      ],
      "range_start_time": "2026-08-01T13:00:00Z",
      "range_end_time": "2026-08-01T15:00:00Z",
      "count": 1,
      "next_cursor": "eyJ2ZXJzaW9uIjox..."
    }
    ```

    Pour récupérer la page suivante, renvoyez la requête avec la même plage de dates résolue et la même valeur `anonymize`. Définissez `cursor` sur la valeur `next_cursor` renvoyée dans la réponse précédente. Répétez l’opération jusqu’à ce que `next_cursor` soit `null`.

    ```bash theme={"system"}
    curl -H "Authorization: Basic [BASE64-USERNAME-API-KEY]" \
      "[API-ENDPOINT]?startDate=2026-08-01T13:00&endDate=2026-08-01T15:00&limit=1000&cursor=[NEXT-CURSOR]"
    ```

    <h3 id="exclude-pii-when-fetching-audit-logs">
      Exclure les données personnelles lors de la récupération des journaux d’audit <a id="exclude-pii" />
    </h3>

    Pour les déploiements [autogérés](/fr/products/wandb/platform/hosting/hosting-options/self-managed) et [Cloud dédié](/fr/products/wandb/platform/hosting/hosting-options/dedicated-cloud), un administrateur d’organisation ou d’instance W\&B peut exclure les informations personnelles identifiables (PII) lors de la récupération des journaux d’audit. Avec le [Cloud mutualisé](/fr/products/wandb/platform/hosting/hosting-options/multi_tenant_cloud), l’API endpoint renvoie systématiquement les champs pertinents des journaux d’audit, PII comprises. Ce comportement n’est pas configurable.

    Pour exclure les informations personnelles identifiables (PII), transmettez le paramètre d’URL `anonymize=true`. Par exemple, si l’URL de votre instance W\&B est `https://mycompany.wandb.io`, pour obtenir les journaux d’audit de l’activité des utilisateurs au cours des sept derniers jours sans les PII, utilisez un API endpoint tel que celui-ci :

    ```text theme={"system"}
    https://mycompany.wandb.io/admin/audit_logs?anonymize=true&[ADDITIONAL-PARAMETERS].
    ```
  </Tab>
</Tabs>

<h3 id="use-basic-authentication">
  Utiliser l’authentification de base
</h3>

Vous devez authentifier chaque requête envoyée à l’API des journaux d’audit. Pour accéder à l’API des journaux d’audit avec votre clé API via l’authentification de base, définissez l’en-tête `Authorization` de la requête HTTP sur la chaîne `Basic`, suivie d’un espace, puis de la chaîne encodée en base64 au format `[USERNAME]:[API-KEY]`. Autrement dit, remplacez le nom d’utilisateur et la clé API par vos propres valeurs, séparées par le caractère `:`, puis encodez le résultat en base64. Par exemple, pour vous authentifier en tant que `demo:p@55w0rd`, définissez l’en-tête sur `Authorization: Basic ZGVtbzpwQDU1dzByZA==`.

<h2 id="actions">
  Actions
</h2>

Chaque entrée du journal d’audit enregistre l’une des actions suivantes. Consultez cette référence pour interpréter le champ `action` d’une entrée de journal. Le tableau suivant décrit, par ordre alphabétique, les actions que W\&B peut enregistrer.

| Action | Définition |
| - | - |
| `artifact:create` | Un artifact est créé. |
| `artifact:delete` | Un artifact est supprimé. |
| `artifact:read` | Un artifact est lu. |
| `project:delete` | Un projet est supprimé. |
| `organization:update_member` | Le rôle ou la licence d’un membre au sein de l’organisation est mis à jour. |
| `project:read` | Un projet est lu. |
| `report:read` | Un rapport est lu. <sup><a href="#1">1</a></sup> |
| `run:delete_many` | Un lot de runs est supprimé. |
| `run:delete` | Un run est supprimé. |
| `run:stop` | Un run est arrêté. |
| `run:undelete_many` | Un lot de runs est restauré depuis la corbeille. |
| `run:update_many` | Un lot de runs est mis à jour. |
| `run:update` | Un run est mis à jour. |
| `sweep:create_agent` | Un agent de sweep est créé. |
| `team:create_service_account` | Un compte de service est créé pour l’équipe. |
| `team:create` | Une équipe est créée. |
| `team:delete` | Une équipe est supprimée. |
| `team:invite_user` | Un utilisateur est invité à rejoindre l’équipe. |
| `team:uninvite` | L’invitation d’un utilisateur ou d’un compte de service à rejoindre l’équipe est révoquée. |
| `user:create_api_key` | Une clé API est créée pour l’utilisateur ou le compte de service. <sup><a href="#1">1</a></sup> |
| `user:create` | Un utilisateur est créé. <sup><a href="#1">1</a></sup> |
| `user:deactivate` | Un utilisateur est désactivé. <sup><a href="#1">1</a></sup> |
| `user:delete_api_key` | Une clé API de l’utilisateur ou du compte de service est supprimée. <sup><a href="#1">1</a></sup> |
| `user:initiate_login` | Un utilisateur initie une connexion. <sup><a href="#1">1</a></sup> |
| `user:login` | Un utilisateur se connecte. <sup><a href="#1">1</a></sup> |
| `user:logout` | Un utilisateur se déconnecte. <sup><a href="#1">1</a></sup> |
| `user:permanently_delete` | Un utilisateur est définitivement supprimé. <sup><a href="#1">1</a></sup> |
| `user:reactivate` | Un utilisateur est réactivé. <sup><a href="#1">1</a></sup> |
| `user:read` | Un profil utilisateur est lu. <sup><a href="#1">1</a></sup> |
| `user:update` | Un utilisateur est mis à jour. <sup><a href="#1">1</a></sup> |
