Auditing change history for entities

Prev Next

LUSID is a bitemporal system, which means no data is ever deleted and it is always possible to roll back the asAt/effectiveAt timelines for a particular entity to examine a full history of changes. More information.

A more convenient and focused way to audit change history is available for certain entity types. For a particular supported entity, and for each version representing a set of changes to that entity, you can see:

  • The previous value and new value for each modified field and/or property

  • Who made the change

  • When it was made

  • For a time-variant field or property, the effective date range of the new value.

Supported entity types are (with more to come):

To do this, either:

  • Call the GetEntityHistory API. More information.

  • Use the LUSID web app. More information coming soon.

Note: The following entity types have separate, dedicated APIs for auditing change history: Transaction and Workflow Service Task.

How entity versioning works in LUSID

LUSID registers every set of changes to an entity as a new version. See how to retrieve version information.

A set of changes may in fact consist of just a single change to a field or to a property. Or it may consist of multiple changes, to both fields and/or properties, made in the same operation. Note that changes in the web app may call multiple APIs under-the-hood and so be registered as separate versions.

For example, when you create a portfolio you must specify four mandatory fields, and you can choose to specify numerous optional fields, some of which default to sensible values if omitted. You may choose to add properties at the same time. All these individual changes are bundled together in version #1 of that portfolio. For each recorded change:

  • The previous value is null

  • The new value is the initial value

  • The action is Create

Each time you subsequently modify the portfolio, the version number is incremented. For each individual change bundled together in version #2, for example, the new value and previous value are compared, and the action is Update.