
# Lister les journaux de provisionnement du répertoire

`GET /v1/directories/{directory_id}/provisioning-logs` · autorisation `directories:read`

Liste le journal de provisionnement d'un répertoire SCIM, du plus récent au plus ancien. Chaque requête SCIM authentifiée envoyée par le fournisseur d'identité constitue un enregistrement : méthode, modèle de chemin (l'ID réel ne figure jamais dans le chemin), type et ID de la ressource, résumé des opérations sans valeurs, noms des attributs ignorés, code HTTP, `scim_type`, durée, préfixe de l'adresse du client (IPv4 /24, IPv6 /48), classe du client et indication de savoir si le blocage de désactivation en masse a arrêté la requête. Les corps de requête et de réponse, les valeurs des attributs, l'adresse IP complète, le User-Agent et la valeur du jeton ne sont jamais stockés ni renvoyés.

Les enregistrements sont conservés pendant la durée de rétention des journaux de votre forfait (Free 7 jours, Startup 14, Business 30, Enterprise 90). L'ordre est toujours du plus récent au plus ancien ; il n'existe pas de paramètre `order`. Les enregistrements d'un répertoire supprimé restent consultables avec `GET /v1/logs?type=scim.request`.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `directory_id` | path | oui | ID du répertoire SCIM (`dir_…`). |
| `limit` | query | non | 1–100, valeur par défaut 20. |
| `after` | query | non | Le curseur issu de `list_metadata.after` (enregistrements plus anciens). |
| `before` | query | non | Le curseur issu de `list_metadata.before` (enregistrements plus récents). |
| `from` | query | non | Borne inférieure incluse (RFC 3339). |
| `to` | query | non | Borne supérieure exclue (RFC 3339). |

Il n'y a pas de corps de requête.

## Réponse

`200 OK` avec une page d'enregistrements.

```json
{
  "data": [
    {
      "id": "evt_01j9xp4q6r8s0t2v4w6x8y0z2b",
      "occurred_at": "2026-10-20T12:00:00Z",
      "outcome": "success",
      "organization_id": "org_01j9xk1m3n5p7q9r1s3t5v7w9x",
      "token_id": "dst_01j9xn2p4q6r8s0t2v4w6x8y0z",
      "method": "PATCH",
      "path_template": "PATCH /Users/{id}",
      "resource_type": "User",
      "resource_id": "dsu_01j9xq5r7s9t1v3w5x7y9z1a3c",
      "operation_summary": ["replace:active"],
      "ignored_attributes": [],
      "status": 200,
      "scim_type": null,
      "duration_ms": 12,
      "client_ip_prefix": "203.0.113.0/24",
      "client_class": "okta",
      "held": false,
      "request_id": "0192f5e0-0000-7000-8000-000000000001",
      "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `invalid_cursor` | Le curseur est mal formé ou appartient à une autre requête. |
| 400 | `range_outside_retention` | `from` est antérieur à la durée de rétention de votre forfait. |
| 404 | `not_found` | Le répertoire n'existe pas dans cet environnement. |
| 422 | `validation_failed` | `limit` est hors plage, `from` ou `to` n'est pas au format RFC 3339, `to` n'est pas postérieur à `from`, ou `order` a été fourni (`unsupported`). |
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant ne dispose pas de l'autorisation requise. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; réessayez après la période indiquée par `Retry-After`. |
| 503 | `service_unavailable` | La synchronisation des répertoires ou la recherche dans les journaux est temporairement indisponible ou non configurée dans ce déploiement ; réessayez après la période indiquée par `Retry-After`. |

## Exemple

```bash
curl -i "https://api.eu.keenauth.com/v1/directories/dir_01j9xm2n4p6q8r0s2t4v6w8y0z/provisioning-logs?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth directories provisioning-logs list dir_01j9xm2n4p6q8r0s2t4v6w8y0z --from 2026-10-01T00:00:00Z
```

## Données personnelles

Ce point de terminaison traite des données personnelles : des utilisateurs de répertoire (SCIM). [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, combien de temps ces données sont conservées et comment elles sont supprimées. N'envoyez de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
