Audit

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

Attribute

Name

Type

Mandatory

Description

Sample

Questions

Attribute

Name

Type

Mandatory

Description

Sample

Questions

Identifier

id 

UUID

Yes

Event unique identifier





Group

group

String

Yes

Group is used to combine entries from a particular functional area

Circulation, Acquisition 

Do we need such grouping?

Entity type

entityType

String

Yes

Entity type to which audit log entry relates to

Order



Entity identifier

entityId

UUID

Yes

Entity identifier to which audit log entry relates to





Event type

event

String

Yes

Log entry event type. Determines what happened with the entity

Created

Specific for entity type or uniformed? Do we need 2 separate eventtypes - crud and specific

User name

user

String

Yes

User who initiated related action



Is it possible that user is missing?

Timestamp

date

Timestamp

Yes

Event date time





Description

description

String

Yes

Human readable description





Custom event details

details

Object

No

Custom 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 action

requestId

UUID

Yes

Action request id





Span id of the initiated action

spanId

UUID

Yes

Action span id





Open questions

  • Historical data archiving

  • Anonymization of records in scope of GDPR