Content

This page is not up to date, new versioning proposed in Formalsector need to be documented , FS versioning : Update of the core module

Curent status

Management of the version

openIMIS use a type 2 database were a row is added when a record is changed; there is two reasons:

in openIMIS, the first record is valid for the date-time of entry. if a item (product/service/price list ) need to start before then the Validity

Auditing

This enable to see the historical record in order to see who made which changes

Manage multiple version of a record

For some tables the business logic will refer to version of a record valid at the time of claim submission

Management of the reference to versioned records

The reference use the rowid for the versioned Item which can ease the joining but complexify aggregations mostly for the Item that just need auditing.

Future status

Management of the version

With the modular architecture, mutation table were added into the picture, those table could easily answer the auditing needs but it is unlikely to be a suitable solution to manage the versioned record because recreating past record from the mutation will consume too much compute power.

Most of the Item that needs versioning might also need update without publishing a new version, on the other end new version validity date need to be configured by the users

List of table that needs versioning:

Management of the reference to versioned records

The strategy to reference to versionned Item should be discussed

Constraints

Solution proposed:

Use Reference/tag per Version and audit log (mutation or table) is used for subversion

Data management

Database optimization:

Data flows:

Child Pages