Audit

There is a need of tracking audit information of various entities within the FOLIO. For that we want to provide a platform wide solution which will handle that.

Business requirements

Circulation Requirements

Acquisitions Display a history of edits for the order record

Component diagram

Audit Log Entry Domain Model

AttributeNameTypeMandatoryDescriptionSampleQuestions
Identifierid UUIDYesEvent unique identifier

GroupgroupStringYesGroup is used to combine entries from a particular functional areaCirculation, Acquisition Do we need such grouping?
Entity typeentityTypeStringYesEntity type to which audit log entry relates toOrder
Entity identifierentityIdUUIDYesEntity identifier to which audit log entry relates to

Event typeeventStringYesLog entry event type. Determines what happened with the entityCreatedSpecific for entity type or uniformed? Do we need 2 separate eventtypes - crud and specific
User nameuserStringYesUser who initiated related action
Is it possible that user is missing?
TimestampdateTimestampYesEvent date time

DescriptiondescriptionStringYesHuman readable description

Custom event detailsdetailsObjectNoCustom event description

{

"items": [
        {
            "itemId": "1",
            "loanId": "2",
            "holdingId": 3",
            "instanceId": "4",
            "itemBarcode": "5"
        }
    ]

}

If it's postgres, should we use jsonb?
Request id of the initiated actionrequestIdUUIDYesAction request id

Span id of the initiated actionspanIdUUIDYesAction span id

Open questions

  • Historical data archiving
  • Anonymization of records in scope of GDPR