Our current thinking is that there may be an elegant way to support this functionality by using Customizable Dashboards.
TODO: Per-archetype schema. Need to address issues: support in prism, handling of data for which the schema disappeared (e.g. unassigned/deleted archetype), GUI
TODO: what still needs to be implemented:
- custom lifecycle for archetypes
MidPoint supports custom schema extension functionality for a long time. The limitation is that this schema is bound to the static types, such as UserType or RoleType. It cannot be applied to archetypes directly. The workaround was to hide extra extension properties by using object template. As object template can be archetype-specific, this works. But it is quite difficult to maintain: adding new extension property for an archetype means hiding this property in all other archetypes.
Therefore it would be much better if each archetype can define its own schema extension. And this is feasible to implement, but it is not necessarily easy. The current "dogma" in midPoint is that the schema is known completely at midPoint start time (hence the need to a restart when extension schema is changed). This can be changed, but it means dealing with fundamental layer that underlines midPoint (Prism schema). But we will get to that eventually. But as this is not an easy task, therefore it won't be anytime soon unless there is a platform subscriber asking for it.
We would like to make following improvements to the archetype functionality:
- We would like to define custom lifecycle model for archetypes.
- Archetype support for all applicable objects (e.g. resource and task)
- Full support for assignmentRelation (e.g. support in assignment, indirect specification with inducement chaining, order > 1, etc.)
- Convenient user interface to manage archetype definitions.
- Archetypes for archetypes (meta-archetypes)
- Archetype-related UX improvements (e.g. more consistent application of archetype icons and colors)