Cet article concerne le(s) administrateur(s) de Talkspirit.

L' API de supervision permet, quand il est activé, de récupérer l’activité de tous les utilisateurs de votre plateforme : date et heure des connexions et des échecs de connexion, de publication et de commentaires, d’accès et de sortie des groupes.

L’administrateur pourra activer ce service en accédant à la page administration > Général > Logs d’activité et activer le service.

Authentification

L’activation du service génère une clé qu’il est nécessaire de fournir dans l’entête HTTP Authorization sous le format suivant :

Authorization: Bearer laclegeneree

Note : la désactivation puis la réactivation de la fonctionnalité révoque automatiquement la clé déjà générée et en génère une nouvelle.

Journal d’évènements

Le journal d’évènements peut être récupéré en faisant une requête GET sur /audit/v1/logs. Seul les évènements des 3 derniers jours sont récupérables par ce biais.

Exemple :

curl -H 'Authorization: Bearer cle' “https://url/audit/v1/logs

Les éléments cle et url de la requête seront à modifier avec le token d’authentification et l’url de votre plateforme.

Pagination

Par défaut, les 100 derniers évènements sont récupérés. Le journal est paginé, les paramètres from et limit peuvent être utilisés pour récupérer plus d’évènements et passer d’une page à une autre.

Exemple :

Requête permettant de récupérer la 3e page d’évènements :

curl -H 'Authorization: Bearer cle' \ “https://url/audit/v1/logs?from=200”

Filtrage

Il est également possible de ne récupérer que les évènements s’étant produits après une date donnée en utilisant la paramètre d’URL after. Ce paramètre doit utiliser le format de date DATE_ATOM.

Exemple :

curl -H 'Authorization: Bearer cle' \ 'https://url/audit/v1/logs?after=2020-08-20T10:10:10+02:00'

Ordre de tri

Il est possible de trier l’ordre d’affichage par date croissante ou décroissante en utilisant le paramètre d’URL sort. Ce paramètre peut avoir comme valeurs:

  • date (tri par date croissante)

  • date (tri par date décroissante - tri par défaut)

Exemple :

curl -H 'Authorization: Bearer cle' \ 'https://url/audit/v1/logs?sort=date'

Format

Tous les évènements sont remontés sous le même format. Seul, le champ target diffère en fonction du type d’évènement.

Exemples d’authentification réussie :

{

Gecko/20100101 Firefox/79.0" },

"status": "success",

"target": [] }

Exemples de création d’un commentaire :

{

"request_uri": "/api/v1/addons/microblog/entries/5f479d5e2d261658920908e4/comments/de fault",

"user_agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0"

},

"status": "success", "target": {

"type": "microblog", "microblog": {

"id": "5f479d5e2d261658920908e4" }}}

Inventaires

Utilisateurs

L’inventaire des utilisateurs peut être récupéré en faisant une requête GET sur /audit/v1/inventory/user.

L’inventaire des utilisateurs est paginé de la même manière que le journal des évènements.

"id": "5f47a1a06f78750f521e1f92", "date": "2020-08-27T14:05:52+02:00", "activity": "UserAuthentified", "actor": "damien-pobel",

"context": {

"client_ip": "1.1.1.1",

"request_uri": "/oauth/v2/auth",

"user_agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0)

"id": "5f47a1a06f78750f521e1f92", "date": "2020-08-27T14:05:52+02:00", "activity": "AddonEntryCommentCreated", "actor": "damien-pobel",

"context": {

"client_ip": "1.1.1.1",

Exemple :

curl -H 'Authorization: Bearer cle' \ “https://url/audit/v1/inventory/user”

Groupes

L’inventaire des groupes peut être récupéré en faisant une requête GET sur /audit/v1/inventory/group.

L’inventaire des groupes est paginé de la même manière que le journal des évènements.

Exemple :

curl -H 'Authorization: Bearer cle' \ “https://url/audit/v1/inventory/group”

Activité des Groupes

L’ensemble de l’activité des groupes est visible dans le journal d’évènements.

Trois événements sont référencés:

  • GroupCreated (création de groupe)

  • GroupDeleted (suppression de groupe)

  • GroupUpdated (édition de groupe)

Pour les deux évènements GroupCreated et GroupUpdated, un paramètre “change_set” répertorie l’ensemble des changements effectuées, ayant pour format:

change_set: {

paramètre: {

previous: “ancienne valeur”,

actual: “nouvelle valeur”

}

}

Avez-vous trouvé votre réponse?