Utilisateurs

Comment gérer et contrôler les données des utilisateurs.

Utilisateurs

Recherchez des utilisateurs dans un projet. Filtrez par attributs (id utilisateur, email, pays, etc.), affinez éventuellement avec une query en texte libre et paginez les résultats.

POST

/public/:projectKey/users

NameTypeDescription
projectKeystringLa clé du projet (obligatoire)
qstringRequête en texte libre facultative (paramètre de requête de l’URL). Lorsque q et query (corps) sont tous deux fournis, q a la priorité.
NameTypeDescription
filtersarrayListe de filtres (facultatif)
querystringRequête en texte libre sur l’id utilisateur / email / nom (max 100)
startTimestampepoch (ms)Début de la fenêtre temporelle (facultatif, min 946684800000)
endTimestampepoch (ms)Fin de la fenêtre temporelle (facultatif, > startTimestamp)
limitintegerTaille de page, 1-200 (facultatif, par défaut : 50)
pageintegerNuméro de page, commence à 1 (facultatif, par défaut : 1)
sortBystringColonne utilisateur sur laquelle trier (facultatif)
sortOrderstringasc ou desc (facultatif)
columnsarrayColonnes utilisateur supplémentaires à inclure dans la réponse

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

curl -X POST \
  {BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users \
  -H 'content-type: application/json' \
  -H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}' \
  --data-raw '{
    "query": "mickael",
    "limit": 50,
    "page":  1,
    "sortOrder": "desc"
  }'
{
  "data": {
    "total": 1,
    "users": [
      {
        "$user_id": "mickael@openreplay.com",
        "$email": "mickael@openreplay.com",
        "$name": "Mickael",
        "$first_name": "Mickael",
        "$last_name": "",
        "$created_at": 1623440822825,
        "$last_seen": 1623689478617
      }
    ]
  }
}

Récupérez les attributs d’identité et les statistiques générales d’un utilisateur particulier.

GET

/public/:projectKey/users/:userId

NameTypeDescription
projectKeystringLa clé du projet (obligatoire)
userIdstringL’ID défini via tracker.setUserID (obligatoire, max 256)

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

200 : Réponse envoyée au format JSON dans le corps
400 : userId non valide (vide ou > 256 caractères)
404 : Utilisateur introuvable

curl -X GET \
  {BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@openreplay.com \
  -H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
{
  "data": {
    "$user_id": "mickael@openreplay.com",
    "$email": "mickael@openreplay.com",
    "$name": "Mickael",
    "$first_name": "Mickael",
    "$last_name": "",
    "$phone": "",
    "$avatar": "",
    "$created_at": 1623440822825,
    "distinct_ids": ["15bd70f6-aedf-4544-8ae6-57eb66398e94"],
    "$country": "FR",
    "$state": "",
    "$city": "",
    "$first_event_at": 1623440822825,
    "$last_seen": 1623689478617
  }
}

Supprimez un utilisateur et toutes les données associées. Cela planifie une tâche en arrière-plan ; la réponse contient le jobId que vous pouvez interroger via l’API Jobs.

DELETE

/public/:projectKey/users/:userId

NameTypeDescription
projectKeystringLa clé du projet (obligatoire)
userIdstringL’ID défini via tracker.setUserID (obligatoire, max 256)

Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}

200 : Tâche planifiée, renvoyée dans le corps
400 : userId non valide (vide ou > 256 caractères)
409 : Une tâche de suppression pour cet utilisateur est déjà planifiée ou en cours d’exécution

curl -X DELETE \
  {BASE_URL}/public/3sWXSsqHgSKnE87YkNJK/users/mickael@example.com \
  -H 'Authorization: Bearer {YOUR_ORGANIZATION_API_KEY}'
{
  "data": {
    "jobId": 22345,
    "description": "Delete user sessions of userId = mickael@example.com",
    "status": "scheduled",
    "projectId": 1,
    "action": "delete_user_data",
    "referenceId": "mickael@example.com",
    "createdAt": 1623912962910,
    "updatedAt": null,
    "startAt": 1623954600000,
    "errors": null
  }
}

Modifier le délai de suppression du fichier de replay ?

Section titled Modifier le délai de suppression du fichier de replay ?

La tâche de suppression est un processus en 2 étapes : d’abord, les sessions et leurs événements en cascade sont supprimés de la base de données pendant la nuit. Ensuite, les fichiers de replay sont planifiés pour expirer (sous 30 jours) dans le stockage d’objets.

Si vous utilisez minio (installation par défaut) et que vous souhaitez modifier la politique d’expiration/de cycle de vie par défaut, suivez les instructions ci-dessous :

  1. Sur votre serveur, exécutez openreplay -e
  2. Dans la section chalice, définissez une nouvelle variable d’environnement appelée SCH_DELETE_DAYS avec une valeur égale au nombre de jours pendant lesquels vous souhaitez conserver le fichier de replay avant suppression (supérieur ou égal à 0)
  3. Enregistrez et quittez à l’aide de :wq
  4. Exécutez k9s -n db
  5. Utilisez les flèches du clavier pour parcourir la liste et atteindre le conteneur minio-*
  6. Appuyez sur s pour accéder au shell du conteneur Minio (stockage d’objets)
  7. Exécutez mc alias set minio http://localhost:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY
  8. Pour supprimer les fichiers de replay 14 jours après l’exécution de la tâche de suppression
export EXPIRATION_DAYS=14
mc ilm add --expiry-days $EXPIRATION_DAYS --tags "to_delete_in_days=${EXPIRATION_DAYS}" minio/mobs
  1. Utilisez exit pour quitter le conteneur Minio
  2. Exécutez :quit pour quitter la CLI Kubernetes