Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core JavaScript-API


JavaScript-Bibliothek acaudit

Diese JavaScript-Bibliothek bietet Funktionen zum Abfragen von Audit-Einträgen. Informationen über die Einträge in der Audittabelle finden Sie hier: Struktur der Audittabelle

Verwendung


Binden Sie die Bibliothek stets am Anfang eines Skripts ein:

let al = require('/agorum/roi/customers/acaudit/js/lib/audit');

Verwendungsbeispiele


Suche über select()

Dieses Beispiel zeigt, wie Sie die Einträge in der Audittabelle mit der Funktion select() suchen können.

let al = require('/agorum/roi/customers/acaudit/js/lib/audit');

let result = al
  .query()
  .condition(al.CONDITIONS.OBJECT_NAME, 'test-audit-lib.*')
  .condition(al.CONDITIONS.OBJECT_CLASS_NAME, 'fileobject')
  .condition(al.CONDITIONS.ACTION_DATE_FROM, new Date('2024-08-01'))
  .condition(al.CONDITIONS.ACTION, al.ACTIONS.CREATE)
  .orderBy(al.FIELDS.ACTION_DATE, al.ORDER_DIRECTION.DESCENDING)
  .limit(10)
  .timeout(100)
  .select();

result;

In diesem Beispiel erhalten Sie folgende Rückgabe (hier beschränkt auf einen Eintrag):

[ {
  "date" : "2024-08-26T09:54:21.809Z",
  "leftObjectName" : "",
  "commitId" : 1724052141331,
  "userName" : "roi",
  "objectUuid" : "2b350f00-6391-11ef-85e9-02420a0a0004",
  "rightObjectUuid" : null,
  "objectClassName" : "FILEOBJECT",
  "rightObjectName" : "",
  "leftObjectUuid" : null,
  "userUuid" : "714614d0-ce62-11e0-b47a-0800276e2399",
  "objectName" : "test-audit-lib.js",
  "action" : "create",
  "id" : 5331406,
  "referenceObjectId" : 5331405
} ]

Abfrage mit get()

Das folgende Beispiel zeigt, wie Sie gezielt die Informationen zu einem Audit-Eintrag mit get(id) abfragen können.

let al = require('/agorum/roi/customers/acaudit/js/lib/audit');

// get details of an audit entry, including attributes
al.get(1310509);

In diesem Beispiel erhalten Sie folgende Rückgabe:

{
  "date" : "2024-06-20T16:50:10.943Z",
  "commitId" : 1717776662147,
  "userName" : "roi",
  "objectUuid" : "285f62d0-2f25-11ef-8510-02420a0a000a",
  "rightObjectUuid" : null,
  "objectClassName" : "FILEOBJECT",
  "leftObjectUuid" : null,
  "userUuid" : "714614d0-ce62-11e0-b47a-0800276e2399",
  "objectName" : "test-audit-lib.js",
  "action" : "create",
  "attributes" : {
    "CHARACTERSET" : "",
    "BLOCKSIZE" : 524288,
    "DELETOR" : 0,
    "CONTENTQUOTAOBJECT" : 0,
    "OWNER" : 11000,
    "ISFOLDER" : false,
    "DESCRIPTION" : "",
    "CREATOR" : 11000,
    "MEDIA" : 0,
    "TIMEPHASEDACTIONDATE" : 0,
    "FLAGS" : 32,
    "CONTENT" : 1310508,
    "LASTMODIFYDATE" : 1.718902112607E12,
    "UUID" : "285f62d0-2f25-11ef-8510-02420a0a000a",
    "MAINOBJECT" : 0,
    "CLASSID" : 3,
    "LANGUAGE" : "",
    "OBJECTTEXTKEY" : "",
    "LASTMODIFIER" : 11000,
    "BEHAVIOR" : "",
    "CREATEDATE" : 1.718898341429E12,
    "ACL" : 12001,
    "SYSTEMFLAGS" : 4224,
    "NAME" : "test-audit-lib.js",
    "CONTENTSIZE" : 403,
    "TIMEPHASEDACTION" : "",
    "UPDATEDATE" : 1.718902210941E12,
    "FORMATOBJECT" : 10100,
    "LASTCONTENTMODIFYDATE" : 1.718902112607E12,
    "READONLY" : false
  },
  "id" : 1310509,
  "referenceObjectId" : 1310508,
  "info" : "CopyUtils"
}

Konstanten


Die Bibliothek definiert mehrere Konstanten, die Sie bei der Erstellung der Abfragen verwenden können.

ACTIONS

Die ACTIONS-Konstante definiert mögliche Aktionen, die in der Datenbank verfolgt werden können. Diese Aktionen beziehen sich auf CRUD-Vorgänge (Erstellen, Aktualisieren, Löschen).

ACTION Beschreibung
CREATE Repräsentiert die Aktion des Erstellens eines neuen Datensatzes in der Datenbank.
UPDATE Repräsentiert die Aktion des Aktualisierens eines vorhandenen Datensatzes.
DELETE Repräsentiert die Aktion des Löschens eines vorhandenen Datensatzes.

CONDITIONS

Die CONDITIONS-Konstante definiert die verschiedenen Bedingungen, die bei der Erstellung von Datenbankabfragen als Filterkriterien verwendet werden können, um gezielt Daten nach bestimmten Kriterien zu selektieren.

CONDITION Datentyp/Bedeutung Beschreibung
ACTION_DATE_FROM date Filtert die Ergebnisse, um nur Aktionen einzuschließen, die an oder nach diesem Datum stattgefunden haben
ACTION_DATE_TO date Begrenzt die Ergebnisse auf Aktionen, die an oder vor diesem Datum erfolgt sind.
ACTION action Dieser Filter ermöglicht es, nur Ergebnisse zu erhalten, die einem bestimmten Aktionstyp wie create, update oder delete entsprechen.
USER_UUID useruuid Filtert die Ergebnisse nach der eindeutigen Benutzerkennung (UUID). Es werden nur die Aktionen des angegebenen Benutzers angezeigt.
OBJECT_NAME objectname Diese Bedingung ermöglicht es, die Ergebnisse auf eine bestimmte Objektbezeichnung einzugrenzen.
OBJECT_CLASS_NAME objectclassname Erlaubt die Filterung der Ergebnisse auf der Grundlage des Klassennamens des Objekts.
ID id Filtert nach einer spezifischen ID.
REFERENCE_OBJECT id Dient zur Filterung der Ergebnisse anhand einer Referenzobjekt-ID.
REFERENCE_OBJECT-UUID objectuuid Ermöglicht die Filterung auf Basis der UUID des Referenzobjekts.
COMMIT_ID commitid Filtert nach einer bestimmten Commit-ID.
RIGHT_OBJECT_UUID rightobjectuuid Diese Bedingung wählt Einträge basierend auf der UUID des rechten Objekts in Beziehungen aus.
LEFT_OBJECT_UUID leftobjectuuid Diese Bedingung wählt Einträge basierend auf der UUID des linken Objekts in Beziehungen aus.

FIELDS

Die FIELDS-Konstante definiert die möglichen Felder, die in der Datenbankabfrage verwendet werden können.

FIELD Spalte/Bedeutung Beschreibung
ID ID ID des Audit-Eintrags
OBJECT_UUID OBJECTUUID UUID des agorum core-Objekts an, auf das sich der Eintrag bezieht (das verändert wurde).
USER_UUID USERUUID UUID des Benutzers, der die Aktion vorgenommen hat.
ACTION ACTION Aktion, die das System durchgeführt hat (1 create, 2 update, 3 delete).
ACTION_DATE ACTIONDATE Zeitpunkt der Aktion (Zeitstempel).
OBJECT_NAME OBJECTNAME Name des betroffenen Objekts zum Zeitpunkt der Aktion.
OBJECT_CLASSNAME OBJECTCLASSNAME Klassenname des Objekts, das betroffen ist (FILEOBJECT, MAILOBJECT, FOLDEROBJECT, …).
COMMIT_ID COMMITID ID des Commits (Datenbanktransaktion).

Werden mehrere Objekte in einer Transaktion manipuliert, besitzen alle Operationen dieselbe COMMITID.

REFERENCE_OBJECT REFERENCEOBJECT agorum core-Objekt (ID) an, auf das sich der Eintrag bezieht (das verändert wurde).
RIGHTOBJECT_UUID RIGHTOBJECTUUID Gibt bei einer Relation das rechtsseitige Objekt (UUID) an. Für die Unterschiede zwischen Beziehungen (Relationen) und Objekten siehe Unterschied Objekt vs. Beziehung (Relation).
LEFTOBJECT_UUID LEFTOBJECTUUID Gibt bei einer Relation das linksseitige Objekt (UUID) an. Für die Unterschiede zwischen Beziehungen (Relationen) und Objekten siehe Unterschied Objekt vs. Beziehung (Relation).

OPTIONS

Die OPTIONS-Konstante definiert die konfigurierbaren Optionen, die für eine Datenbankabfrage verfügbar sind.

OPTION Beschreibung
ORDER_BY Definiert die Sortierreihenfolge für die Abfrageergebnisse.
LIMIT Begrenzt die Anzahl der zurückgegebenen Ergebnisse.
TIMEOUT Gibt das Zeitlimit für das Ausführen einer Abfrage in Millisekunden an.

ORDER_DIRECTION

Die ORDER_DIRECTION-Konstante definiert mögliche Sortieroptionen für Abfrageergebnisse.

ORDER_DIRECTION Beschreibung
ASCENDING Sortiert die Abfrageergebnisse in aufsteigender Reihenfolge.
DESCENDING Sortiert die Abfrageergebnisse in absteigender Reihenfolge.

Funktionen


query

Initialisiert ein neues Abfrageobjekt, um Abfragen an die Audittabelle zu erstellen und auszuführen.

Syntax

let result = al.query();
 
Rückgabewert
Ein Abfrageobjekt, das Methoden zum Hinzufügen von Bedingungen, Sortieren, Begrenzen und Ausführen der Abfrage bereitstellt.

condition

Fügt der Abfrage eine Bedingung hinzu, um die Ergebnisse basierend auf dem angegebenen Feld und Wert zu filtern.

Syntax

condition(field, value);
Parameter
Parameter Beschreibung Pflicht
field Gibt das Feld (die Datenbankspalte) an, auf das die Bedingung angewendet werden soll, siehe FIELDS. ja
value Gibt den Wert an, auf den der Eintrag in der Datenbankspalte zutreffen soll. ja
 
Beispiel
query.condition(al.CONDITIONS.OBJECT_NAME, 'test-audit-lib.*');

orderBy

Gibt die Reihenfolge an, in der die Ergebnisse zurückgegeben werden sollen. Die Standardsortierung ist nach ACTION_DATE in absteigender Reihenfolge.

Syntax

orderBy(field, direction)
Parameter
Parameter Beschreibung Pflicht
field Gibt das Feld (die Datenbankspalte) an, nach der die Ergebnisse sortiert werden sollen. ja
direction Gibt an, in welcher Reihenfolge die Werte der angegebenen Spalte sortiert werden sollen. ja
 
Beispiel
query.orderBy(al.FIELDS.ACTION_DATE, al.ORDER_DIRECTION.DESCENDING);

limit

Begrenzt die Anzahl der von der Abfrage zurückgegebenen Ergebnisse. Standardmäßig wird das Ergebnis auf 100 Einträge begrenzt.

Syntax

limit(number)
Parameter
Parameter Beschreibung Pflicht
number Die maximale Anzahl der zurückzugebenden Ergebnisse. ja
 
Beispiel
query.limit(50);

timeout

Legt die maximale Zeit fest, die für die Ausführung der Abfrage erlaubt ist. Der Standardwert für Timeout ist 5000 Millisekunden.

Syntax

timeout(milliseconds)
Parameter
Parameter Beschreibung Pflicht
timeout Die Timeout-Dauer in Millisekunden. ja
 
Beispiel
query.timeout(100);

select

Führt die erstellte Abfrage aus und gibt die Ergebnisse zurück.
 
Syntax
let result = al.query.select();

Rückgabewert

Ein Array von Audit-Einträgen, die den angegebenen Bedingungen entsprechen.

get

Ruft die Details eines bestimmten Audit-Eintrags anhand seiner ID ab, einschließlich der Attribute.

Syntax

get(id)
Parameter
Parameter Beschreibung Pflicht
id Die ID des abzurufenden Audit-Eintrags. ja
 
Rückgabewert
Ein Objekt, das die Details des angegebenen Audit-Eintrags enthält.
 
Beispiel
al.get(1310509);