We're updating the issue view to help you get more done.Learn more

Rationalise VERSION.lifecycle_state and ATTESTATION.status

Currently, the lifecycle_state attribute in VERSION is not itself
versioned in any way, meaning that there is no audit trail of
historical changes to it, e.g. going from "draft" to "approved".
It is currently documented as being able to change state without
creating a new version. Clearly the current idea of what states
would be represented by this attribute is incorrect. However,
lifecycle states which are useful, and correspond to new versions
are "unfinished", "finished" and "deleted".

On the other hand, the status attribute in ATTESTATION, is currently
specified to have values like required/signed/intended. However,
logically "required" and "intended" corresponds to a lifecycle
state of something like "awaiting_approval". In CEN, the
equivalent attribute has been named "reason", and coded with
values like "authorisation" and "witnessing".

A further problem is that adding ATTESTATIONs is the one kind
of change remaining in the model which does not fit cleanly into
the CONTRIBUTION model, because a) it does not use a standard
audit trail (instance of AUDIT_DETAILS) b) because there is no
commit operation for it and c) because it does not create a new
VERSION object.

Status

Assignee

JeffJ

Reporter

Chunlan Ma

Change Description

The changes proposed are as follows - redefine the attribute VERSION.lifecycle_state to taking the values "unfinished", "finished", "deleted" - rename ATTESTATION.state to reason, and coded it with values such as "authorisation", "witness" etc. - redefine ATTESTATION as inheriting from AUDIT_DETAILS, which would standardise the definition of the attributes for timestamp committer, system_id. This would make ATTESTATION logically a kind of AUDIT_TRAIL, which it has to be if it is to be seen as a valid kind of change in a CONTRIBUTION. - remove ATTESTATION.participations, since there can only be one participation for an attestation, and it is now supplied by the committer attribute, inherited from AUDIT_DETAILS.

Approved By

ARB

Fix versions

Priority

Minor