Aller au contenu principal

Disparitions et modifications d'événements

Les actions réalisées sur les événements de calendriers (création, modification, suppression) sont loguées sur le serveur dans le répertoire /var/log/bm/audit dans des fichiers correspondant chacun à un calendrier.

Les noms des fichiers sont de la forme audit-<uid du calendrier>@domaine.log

Par exemple, le fichier correspondant au calendrier par défaut de l'utilisateur John Doe sur notre serveur de démonstration se nomme : audit-calendar:Default:9E3C96CA-2E46-41A9-9E88-D774F9DFBBA5@bluemind.loc.log

uid et identifiant

Lorsque l'on connaît l'identifiant d'un utilisateur, il est possible d'obtenir son uid grâce à l'outil bm-cli directement sur le serveur :

# bm-cli user get --display=uid jdoe@bluemind.loc
{"uid":"0346FECF-47EA-441C-A419-EFB34F98B955"}

Lorsque l'on a un uid et que l'on souhaite savoir à quel utilisateur il correspond, il suffit de rechercher cet uid dans l'administration des utilisateurs :

Les noms de fichiers listés dans le répertoire peuvent sembler de forme différente. Par exemple, le listing ci-dessous :

ls -l
total 12980
drwxr-xr-x 2 root root 12288 janv. 11 14:46 ./
drwxr-xr-x 3 root root 4096 janv. 4 17:36 ../
-rw-r--r-- 1 root root 640 nov. 9 14:35 audit-2C0728BF-770D-4C2B-8365-AC1B168EE427@bluemind.loc.log
-rw-r--r-- 1 root root 2712 janv. 11 14:33 audit-8DEEA368-C34F-4F94-B711-0967C4460584@bluemind.loc.log
-rw-r--r-- 1 root root 311419 déc. 21 11:57 audit-calendar:079FC452-5725-4F50-B606-6EEEDA8BCDBF@bluemind.loc.log
-rw-r--r-- 1 root root 660 nov. 6 15:43 audit-calendar:ADC181A0-4124-42D8-BB92-4AF9031B3C46@bluemind.loc.log
-rw-r--r-- 1 root root 670 nov. 13 09:22 audit-calendar:Default:09F20F61-1904-4872-8B12-552693652163@bluemind.loc.log
-rw-r--r-- 1 root root 671 déc. 20 16:36 audit-calendar:Default:0C905A1A-D337-4208-8804-2B00EFA3FE2B@bluemind.loc.log
...

Cela est dû au fait que :

  • la chaîne calendar: est incluse dans les uid des calendriers par défaut des utilisateurs et ceux de ressources
  • la chaîne Default: est incluse dans l'uid des calendriers par défaut des utilisateurs

Ainsi, le nom de fichier permet d'identifier :

  • audit-XYZ123 : un calendrier secondaire d'utilisateur ou un calendrier de domaine
  • audit-calendar:XYZ123 : un calendrier de ressource
  • audit-calendar:Default:XYZ123 : un calendrier par défaut d'utilisateur

Recherche grâce à bm-cli

L'outil en ligne de commande bm-cli permet un filtrage et un affichage plus clair du contenu des fichiers logs.

La commande de base permettant d'afficher la liste de tous les événements contenus dans un fichier de log est :

bm-cli calendar log <fichier>

Par exemple :

bm-cli calendar log audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| Info | Event | Calendar |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| 2022-11-18T09:01:35.064 | | { |
| 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
| create | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
| SUCCESS | | "type" : "calendar", |
| 31a2b344-c933-4c52-a3b0-016c2de13711 | | "name" : "John Doe", |
| bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
| Send-Notification:true | | "createdBy" : "system", |
| | | "updatedBy" : "system", |
| | | "created" : 1665475636451, |
| | | "updated" : 1665475636451, |
| | | "domainUid" : "734ea413.internal", |
| | | "defaultContainer" : true, |
| | | "readOnly" : false |
| | | } |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+

Sans filtre, cette commande peut s'avérer très verbeuse car elle va afficher TOUS les événements du fichier log. Plusieurs options permettent donc de rechercher des événements et filtrer le retour de la commande :

  • --data : affiche le détail des données d'un événement, nettoyées et indentées.
    Par exemple :

    +--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+  
    | 2022-12-19T15:35:33.603 | { | { |
    | system@global.virt | "main" : { | "id" : 52, |
    | create | "dtstart" : { | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | "iso8601" : "2022-12-22T09:00:00.000+01:00", | "type" : "calendar", |
    | a6238878-66b5-4152-9320-701da924fa44 | "timezone" : "Europe/Paris", | "name" : "John Doe", |
    | bm-webserver-authfilter | "precision" : "DateTime" | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | | }, | "createdBy" : "system", |
    | | "summary" : "déplacement du jeudi", | "updatedBy" : "system", |
    | | "classification" : "Public", | "created" : 1665475636451, |
    | | "location" : null, | "updated" : 1665475636451, |
    | | "description" : null, | "domainUid" : "734ea413.internal", |
    | | "priority" : 5, | "defaultContainer" : true, |
    | | "alarm" : [ { | "readOnly" : false |
    | | "action" : "Display", | } |
    | | "trigger" : -900, | |
    | | "description" : null, | |
    | | "duration" : null, | |
    | | "repeat" : null, | |
    | | "summary" : null | |
    | | } ], | |
    | | "status" : "Confirmed", | |
    | | "attendees" : [ { | |
    | | "cutype" : "Individual", | |
    | | "member" : null, | |
    | | "role" : "RequiredParticipant", | |
    | | "partStatus" : "NeedsAction", | |
    | | "rsvp" : true, | |
    | | "delTo" : null, | |
    | | "delFrom" : null, | |
    | | "sentBy" : null, | |
    | | "commonName" : "John Doe", | |
    | | "dir" : | |
    | | "bm://734ea413.internal/users/655C382F-5197-4A64-A70F-71010EECAB3F", | |
    | | "lang" : null, | |
    | | "mailto" : "jdoe@dev.bluemind.net", | |
    | | "uri" : null, | |
    | | "internal" : true, | |
    | | "responseComment" : null, | |
    | | "counter" : null | |
    | | } ], | |
    | | "organizer" : { | |
    | | "uri" : null, | |
    | | "commonName" : "John Smith", | |
    | | "mailto" : "hannibal@dev.bluemind.net", | |
    | | "dir" : | |
    | | "bm://734ea413.internal/users/DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6" | |
    | | }, | |
    | | "categories" : [ ], | |
    | | "exdate" : null, | |
    | | "rdate" : null, | |
    | | "rrule" : null, | |
    | | "url" : null, | |
    | | "conference" : null, | |
    | | "conferenceId" : null, | |
    | | "conferenceConfiguration" : { }, | |
    | | "attachments" : [ ], | |
    | | "properties" : { }, | |
    | | "sequence" : 1, | |
    | | "draft" : false, | |
    | | "dtend" : { | |
    | | "iso8601" : "2022-12-22T13:00:00.000+01:00", | |
    | | "timezone" : "Europe/Paris", | |
    | | "precision" : "DateTime" | |
    | | }, | |
    | | "transparency" : "Opaque" | |
    | | }, | |
    | | "occurrences" : [ ], | |
    | | "counters" : [ ], | |
    | | "properties" : null, | |
    | | "icsUid" : "a6238878-66b5-4152-9320-701da924fa44", | |
    | | "acceptCounters" : true | |
    | | } | |
    +--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
  • --data-by-date : affiche tous les événements en ajoutant les données (comme ci-dessus) uniquement pour les lignes de logs correspondant à la date donnée.
    Exemples de recherche :

    #affichage des données enregistrées le 19/10/2024 à 15h35:33s :
    bm-cli calendar log --data-by-date="2024-10-19T15:35:33" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log

    #affichage des données enregistrées le 18 octobre 2024 :
    bm-cli calendar log --data-by-date="2024-10-18" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log`}
  • --event-query : recherche une chaine de caractères dans les données de l'événement
    Exemple de recherche des événements contenant le terme "déplacement" :

    bm-cli calendar log --data --event-query="déplacement" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log

    Exemple de recherche des données sur toutes les actions concernant l'événement nommé "réservation JDOE" :

    bm-cli calendar log --event-query="réservation JDOE" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | Info | Event | Calendar |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | 2022-12-19T10:14:23.76 | | { |
    | 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
    | create | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | | "type" : "calendar", |
    | 0a62464b-74d2-4d79-a8a3-23d3ab4ffc35 | | "name" : "John Doe", |
    | bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | Send-Notification:true | | "createdBy" : "system", |
    | | | "updatedBy" : "system", |
    | | | "created" : 1665475636451, |
    | | | "updated" : 1665475636451, |
    | | | "domainUid" : "734ea413.internal", |
    | | | "defaultContainer" : true, |
    | | | "readOnly" : false |
    | | | } |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | 2022-12-19T10:14:46.17 | | { |
    | system@global.virt | | "id" : 52, |
    | update | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | | "type" : "calendar", |
    | 0a62464b-74d2-4d79-a8a3-23d3ab4ffc35 | | "name" : "John Doe", |
    | bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | | | "createdBy" : "system", |
    | | | "updatedBy" : "system", |
    | | | "created" : 1665475636451, |
    | | | "updated" : 1665475636451, |
    | | | "domainUid" : "734ea413.internal", |
    | | | "defaultContainer" : true, |
    | | | "readOnly" : false |
    | | | } |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+

    On observe que l'événement a été créé le 19/12/2022 à 14h23 puis modifié le même jour à 14h46. Pour en savoir plus sur ces 2 actions, on peut afficher le détail grâce à l'ajout de l'option --data précédente :

    bm-cli calendar log --data --event-query="réservation JDOE" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
  • --event-uid : affiche les lignes de logs concernant un événement identifié.
    Par exemple :

    bm-cli calendar log --event-uid="5f92c02f-98fc-404c-a360-0d760865246a" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | Info | Event | Calendar |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | 2022-12-01T10:15:14.216 | | { |
    | 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
    | create | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | | "type" : "calendar", |
    | 5f92c02f-98fc-404c-a360-0d760865246a | | "name" : "John Doe", |
    | bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | Send-Notification:true | | "createdBy" : "system", |
    | | | "updatedBy" : "system", |
    | | | "created" : 1665475636451, |
    | | | "updated" : 1665475636451, |
    | | | "domainUid" : "734ea413.internal", |
    | | | "defaultContainer" : true, |
    | | | "readOnly" : false |
    | | | } |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | 2022-12-01T10:15:14.365 | | { |
    | 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
    | send-mail | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | | "type" : "calendar", |
    | 5f92c02f-98fc-404c-a360-0d760865246a | | "name" : "John Doe", |
    | mailto:hannibal@dev.bluemind.net | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | bm-webserver-authfilter | | "createdBy" : "system", |
    | SMTP response:250: 2.0.0 Ok: queued as E9C262C2845 | | "updatedBy" : "system", |
    | | "created" : 1665475636451, |
    | | | "updated" : 1665475636451, |
    | | | "domainUid" : "734ea413.internal", |
    | | | "defaultContainer" : true, |
    | | | "readOnly" : false |
    | | | } |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
    | 2022-12-01T10:15:15.063 | | { |
    | 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
    | send-mail | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
    | SUCCESS | | "type" : "calendar", |
    | 5f92c02f-98fc-404c-a360-0d760865246a | | "name" : "John Doe", |
    | mailto:t.peck@dev.bluemind.net | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
    | bm-webserver-authfilter | | "createdBy" : "system", |
    | SMTP response:250: 2.0.0 Ok: queued as 9AB372C2848 | | "updatedBy" : "system", |
    | | | "created" : 1665475636451, |
    | | | "updated" : 1665475636451, |
    | | | "domainUid" : "734ea413.internal", |
    | | | "defaultContainer" : true, |
    | | | "readOnly" : false |
    | | | } |
    +--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+

    On observe que l'événement a été créé le 01/12/2022 à 10h15 et que 2 emails ont été envoyés à destination de hannibal@dev.bluemind.net et t.peck@dev.bluemind.net.

  • filtered-actions : les actions qui doivent être filtrées, soit les actions qui NE DOIVENT PAS apparaitre.
    Par exemple --filtered-actions=create,update masquera les actions de création et mise à jour.
    Ainsi, dans notre exemple ci-dessus, on souhaite vérifier si les emails d'invitation ont bien été émis, on utilisera donc l'option suivante pour masquer l'action de création qui était listée :

    bm-cli calendar log --filtered-actions="create" --event-uid="5f92c02f-98fc-404c-a360-0d760865246a" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log

    Si au contraire on souhaite épurer la sortie et ne pas voir les envois d'emails mais seulement les actions effectuées sur l'événement :

    bm-cli calendar log --filtered-actions="send-mail" --event-uid="5f92c02f-98fc-404c-a360-0d760865246a" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
  • --calendar-query : recherche une chaine de caractères dans les données du calendrier.
    NB : Dans le cas général, un fichier de log correspond à un calendrier, cette option fera donc remonter tous les événements, mais il est possible de compiler plusieurs fichiers en un seul, il sera alors utile de pouvoir effectuer des recherches sur un calendrier donné.

Analyser une ligne de log

La sortie bm-cli découpe et présente une ligne de log en 3 colonnes.

Le 1ère colonne présente les informations concernant l'action loguée :

  • la date avec l'heure précise d'enregistrement de l'action

    ⚠️ Il s'agit ici de l'heure GMT, il peut donc y avoir un décalage avec l'heure réelle à laquelle l'action a été réalisée selon le fuseau horaire. Ainsi l'action loguée ici à 10h15 étant en France à l'heure d'hiver (1er décembre), elle a en réalité été faite et loguée à 11h15.

  • l'uid de l'utilisateur effectuant l'action et du domaine

  • le type d'action (create/update/etc.)

  • si l'action a réussi (SUCCESS) ou non (FAILURE)

  • l'uid de l'événement concerné

  • l'origine de l'action :

    • bm-webserver-authfilter : webmail ou Thunderbird
    • bm-eas : appareil mobile connecté en EAS
    • bm-lmtpd_from_user1@domain.tld_to_user2@domain.tld : l'action a été déclenchée par un email contenant un .ics
    • bm-mapi : Outlook connecté en MAPI
  • si une notification a été demandée à destination des invités

  • la réponse du serveur de mail dans le cas des actions send-mail

La 2ème colonne affiche les détails de l'événement lorsque ceux-ci sont demandés via une requête. Les informations utiles principales sont :

  • dtstart et dtend : heures de début et de fin de l'événement.
  • summary : le titre de l'événement.
  • attendees:  liste des invités
    NB : La liste est encadrée par des crochets, chaque participant est encadré par des accolades
    Les informations utiles pour chacun d'eux sont notamment :
    • partStatus : le statut actuel de participation (confirmé, en attente, refusé)
    • rsvp : indique si une demande de réponse (notification) a été envoyée (true pour oui, false pour non)
    • commonName : le nom de l'invité
    • mailto : l'adresse email de l'invité
    • dir : contient l'UID de l'utilisateur invité lorsqu'il s'agit d'un utilisateur interne
  • organizer : l'organisateur de l'événement

Pour des événements récurrents, les informations utiles complémentaires sont :

  • rrule : la règle de récurrence
  • exdate : liste des dates à laquelle l'événement N'a PAS lieu (occurrences ayant été supprimées)
  • occurrences : liste des exceptions (occurrences ayant été modifiées) avec le détail des données particulières à chacune d'elles

La 3ème colonne présente les informations concernant le calendrier, sont notamment utiles :

  • l'uid complet du calendrier
  • le type de calendrier
  • le nom du propriétaire
  • l'uid du propriétaire
  • defaultContainer : indique s'il s'agit du calendrier par défaut ou d'un calendrier secondaire

Par exemple, nous recherchons des informations sur un événement contenant le mot "DOCUMENTATION" dans le calendrier de John Doe, ne comprenant pas quand et par qui celui-ci a été créé :

bm-cli calendar log --event-query="DOCUMENTATION" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| Info | Event | Calendar |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| 2023-01-03T12:54:04.28 | | { |
| DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6@734ea413.internal | | "id" : 52, |
| update | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
| SUCCESS | | "type" : "calendar", |
| 19b56d07-3841-4f5c-988e-a308fe41cb38 | | "name" : "John Doe", |
| bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
| Send-Notification:true | | "createdBy" : "system", |
| | | "updatedBy" : "system", |
| | | "created" : 1665475636451, |
| | | "updated" : 1665475636451, |
| | | "domainUid" : "734ea413.internal", |
| | | "defaultContainer" : true, |
| | | "readOnly" : false |
| | | } |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+

Une seule ligne de log concerne cet événement.
La 1ère colonne nous apprend que :

  • il s'agit d'une modification (update) d'un événement
  • elle a été réalisée par l'utilisateur DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6 (une recherche dans la console nous permettra d'identifier John Smith)
  • elle a eu lieu le 3 janvier à 13h54 (12h54 GMT)
  • de l'événement d'uid 19b56d07-3841-4f5c-988e-a308fe41cb38
  • la modification a été faite dans BlueMind directement (bm-webserver-authfilter)
  • des notifications ont été envoyées aux invités

La 3ème colonne nous apprend que :

  • l'action a été réalisée sur le calendrier par défaut
  • de l'utilisateur John Doe d'uid 655C382F-5197-4A64-A70F-71010EECAB3F

Souhaitant en savoir plus sur la modification qui a été faite, nous allons ajouter le paramètre --data à la commande :

bm-cli calendar log --data --event-query="DOCUMENTATION" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| Info | Event | Calendar |
+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| 2023-01-03T12:54:04.28 | { | { |
| DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6@734ea413.internal | "main" : { | "id" : 52, |
| update | "dtstart" : { | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
| SUCCESS | "iso8601" : "2022-12-30T14:30:00.000+01:00", | "type" : "calendar", |
| 19b56d07-3841-4f5c-988e-a308fe41cb38 | "timezone" : "Europe/Paris", | "name" : "John Doe", |
| bm-webserver-authfilter | "precision" : "DateTime" | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
| Send-Notification:true | }, | "createdBy" : "system", |
| | "summary" : "réunion DOCUMENTATION", | "updatedBy" : "system", |
| | "classification" : "Public", | "created" : 1665475636451, |
| | "location" : "", | "updated" : 1665475636451, |
| | "description" : "", | "domainUid" : "734ea413.internal", |
| | "priority" : 5, | "defaultContainer" : true, |
| | "alarm" : [ { | "readOnly" : false |
| | "action" : "Display", | } |
| | "trigger" : -900, | |
| | "description" : null, | |
| | "duration" : null, | |
| | "repeat" : null, | |
| | "summary" : null | |
| | } ], | |
| | "status" : "Tentative", | |
| | "attendees" : [ { | |
| | "cutype" : "Individual", | |
| | "member" : null, | |
| | "role" : "RequiredParticipant", | |
| | "partStatus" : "NeedsAction", | |
| | "rsvp" : true, | |
| | "delTo" : null, | |
| | "delFrom" : null, | |
| | "sentBy" : null, | |
| | "commonName" : "John Smith", | |
| | "dir" : | |
| | "bm://734ea413.internal/users/DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6", | |
| | "lang" : null, | |
| | "mailto" : "hannibal@dev.bluemind.net", | |
| | "uri" : | |
| | "addressbook_734ea413.internal/DFAB6B5F-8416-422B-9E20-CF1C28D1DEF6", | |
| | "internal" : true, | |
| | "responseComment" : null, | |
| | "counter" : null | |
| | }, { | |
| | "cutype" : "Individual", | |
| | "member" : null, | |
| | "role" : "RequiredParticipant", | |
| | "partStatus" : "NeedsAction", | |
| | "rsvp" : true, | |
| | "delTo" : null, | |
| | "delFrom" : null, | |
| | "sentBy" : null, | |
| | "commonName" : "Templeton Peck", | |
| | "dir" : | |
| | "bm://734ea413.internal/users/6D97576A-237E-4D04-8BEB-FDA7DEC7A50E", | |
| | "lang" : null, | |
| | "mailto" : "t.peck@dev.bluemind.net", | |
| | "uri" : | |
| | "addressbook_734ea413.internal/6D97576A-237E-4D04-8BEB-FDA7DEC7A50E", | |
| | "internal" : true, | |
| | "responseComment" : null, | |
| | "counter" : null | |
| | } ], | |
| | "organizer" : { | |
| | "uri" : null, | |
| | "commonName" : "John Doe", | |
| | "mailto" : "jdoe@dev.bluemind.net", | |
| | "dir" : | |
| | "bm://734ea413.internal/users/655C382F-5197-4A64-A70F-71010EECAB3F" | |
| | }, | |
| | "categories" : [ ], | |
| | "exdate" : [ ], | |
| | "rdate" : null, | |
| | "rrule" : { | |
| | "frequency" : "WEEKLY", | |
| | "count" : null, | |
| | "until" : { | |
| | "iso8601" : "2023-01-05T13:30:00.000Z", | |
| | "timezone" : "UTC", | |
| | "precision" : "DateTime" | |
| | }, | |
| | "interval" : 1, | |
| | "bySecond" : null, | |
| | "byMinute" : null, | |
| | "byHour" : null, | |
| | "byDay" : [ { | |
| | "day" : "FR", | |
| | "offset" : 0 | |
| | } ], | |
| | "byMonthDay" : null, | |
| | "byYearDay" : null, | |
| | "byWeekNo" : null, | |
| | "byMonth" : null | |
| | }, | |
| | "url" : "", | |
| | "conference" : "", | |
| | "conferenceId" : "", | |
| | "conferenceConfiguration" : { }, | |
| | "attachments" : [ ], | |
| | "properties" : { }, | |
| | "sequence" : 1, | |
| | "draft" : false, | |
| | "dtend" : { | |
| | "iso8601" : "2022-12-30T15:30:00.000+01:00", | |
| | "timezone" : "Europe/Paris", | |
| | "precision" : "DateTime" | |
| | }, | |
| | "transparency" : "Opaque" | |
| | }, | |
| | "occurrences" : [ ], | |
| | "counters" : [ ], | |
| | "properties" : { }, | |
| | "icsUid" : "a2056806-139b-4cba-ba87-e794efb4bfea", | |
| | "acceptCounters" : true | |
| | } | |
+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+

→ La réunion a lieu à 14h30
→ Elle se répète chaque semaine
→ John Doe en est l'organisateur
→ Elle comporte 2 invités (John Smith et Templeton Peck)

La commande bm-cli ne retournant qu'un update, nous allons rechercher toutes les entrées concernant cet événement grâce à son uid, ce qui nous permet de remonter à sa création :

bm-cli calendar log --event-uid="19b56d07-3841-4f5c-988e-a308fe41cb38" audit-calendar\:Default\:655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal.log
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| Info | Event | Calendar |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+
| 2022-12-05T10:25:04.065 | | { |
| 655C382F-5197-4A64-A70F-71010EECAB3F@734ea413.internal | | "id" : 52, |
| create | | "uid" : "calendar:Default:655C382F-5197-4A64-A70F-71010EECAB3F", |
| SUCCESS | | "type" : "calendar", |
| 19b56d07-3841-4f5c-988e-a308fe41cb38 | | "name" : "John Doe", |
| bm-webserver-authfilter | | "owner" : "655C382F-5197-4A64-A70F-71010EECAB3F", |
| Send-Notification:true | | "createdBy" : "system", |
| | | "updatedBy" : "system", |
| | | "created" : 1665475636451, |
| | | "updated" : 1665475636451, |
| | | "domainUid" : "734ea413.internal", |
| | | "defaultContainer" : true, |
| | | "readOnly" : false |
| | | } |
+--------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------+

→ L'uid de l'utilisateur nous indique que c'est John Doe lui-même, propriétaire du calendrier, qui a créé cet événement le 5 décembre 2022 dans la matinée.

En rajoutant l'option --data nous obtiendrons les détails sur l'événement tel qu'il a été créé, en particulier ceux-ci :

[...]
"dtstart" : {
"iso8601" : "2022-12-30T11:30:00.000+01:00",
"timezone" : "Europe/Paris",
"precision" : "DateTime"
},
[...]
"summary" : "réunion COMMERCE",
[...]

CONCLUSION : Il s'agissait à l'origine de la réunion commerce, qui avait lieu à 11h30, celle-ci a été renommée et déplacée à 14h30 par John Smith le 3 janvier à 13h54.

Pour aller plus loin

Consultez la documentation BlueMind en relation