Object lifecycle property is available in midPoint 3.5 or later. However, it is only partially used in midPoint 3.5. Full usage of this property is expected in midPoint 3.6 and later.
MidPoint contains a special property to control object lifecycle:
lifecycleState. This property specifies current lifecycle state of the object. It specified whether the object represents a draft, proposed definition, whether it is active, deprecated, and so on. There are few pre-defined lifecycle states. But custom lifecycle states may also be defined. The pre-defined lifecycle states are designed to work in a state machine described in the following diagram.
If no explicit lifecycle state is defined then the
active state is assumed. In addition to the pre-defined states custom lifecycle states can be used. However currently (midPoint 3.5) all the custom lifecycle states are considered to be non-active.
|State||Focus active||Assignments active||Description|
Definition of the new object in progress. The object is NOT active. The definition may change at any moment. It is not ready yet.
Definition of a new object is ready for use, but there is still a review process to be applied (e.g. approval). The object is NOT active. However the definition should not change in this state.
Active and working definition. Ready to be used without any unusual limitations.
Active definition which is being phased out. The definition is still fully operational. But it should not be used for new assignments. E.g. it should not be requested, it should not be approved, etc.
Inactive historical definition. It is no longer used. It is maintained only for historical, auditing and sentimental reasons.
Unexpected error has occurred during object lifecycle. Result of that event is that the object is rendered inactive. The situation cannot be automatically remedied. Manual action is needed.
The "Active" column specifies whether the object is active (enabled) in that particular lifecycle state. The effective activation status will always be non-active (disabled or archived) in the states that are marked as not active in the above table. In these states the object will not be active even if the activation administrative status is explicitly set to
enabled. See Activation page for more details.
The same lifecycle property is also present in assignment and inducement. The meaning of the lifecycle states is equivalent to object lifecycle:
Definition of a new assignment in progress (e.g. being selected in the shopping cart, but not yet requested) - EXPERIMENTAL. NOT USED.
Requested assignment. The assignment was requested but it was not yet being granted. E.g. there is a pending approval.
Active and working assignment.
Assignment that was active in the past but it was revoked. It is kept for historical reasons.
Unexpected error has occurred during assignment lifecycle. Result of that event is that the assignment is rendered inactive. The situation cannot be automatically remedied. Manual action is needed.
In midPoint 3.6 and later the assignment state is also determined by the focus (user) lifecycle state. When the focus (user) is inactive then also the assignments are considered inactive. In that case the assignment lifecycle state is not considered. The inactive focus lifecycle state overrides assignment lifecycle state.
In midPoint 3.5 the assignment lifecycle state is being taken into consideration when deciding whether assignment/inducement is active or not. But the assignment state is otherwise not used by midPoint. I.e. midPoint is not storing proposed assignments for requested assignments yet. Improvements are planned for midPoint 3.6.