<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Dear midPoint community,<br>
<div class="entry-content">
<div class="entry-content">
<p><a href="https://evolveum.com/midpoint-4-0-gutenberg/">MidPoint
4.0 “Gutenberg”</a> is really a revolutionary midPoint
release. It is a <a
href="https://wiki.evolveum.com/display/midPoint/Long-Term+Support">long-term
support (LTS)</a> release. But it also brings groundbreaking
features. The support for <i>archetypes</i> is certainly one
of those features that can be a real game-changer in the
future. <a href="https://evolveum.com/road-to-archetypes/">First
part</a> of this post told the story how the idea of
archetypes evolved during the course of midPoint development.
This part will describe how archetypes work and how they can
be used.<span id="more-5758"></span></p>
<p>The idea of archetypes is both simple and complex. The simple
part is really simple: archetypes can be used to distinguish
object types. There would be an archetype for business role,
another archetype for application role, yet another archetype
for employee, customer, partner, department, project,
work-group and so on. Administrator will no longer create
“user” or “role. The administrator will create “employee” or
“business role” instead. There could be nice icons and colors
for archetyped objects in midPoint user interface. Archetypes
can be used in object lists (views) in midPoint menu. Overall,
archetypes make midPoint user interface nicer. That is the
simple part.</p>
<p>The complex part has everything to do with the idea of <a
href="https://wiki.evolveum.com/display/midPoint/Metaroles">metaroles</a>.
Metarole is quite a strange kind of an animal. Ordinary roles
are usually applied to users. But metaroles can be applied to
anything: users, orgs, services – and even roles themselves.
Hence the term “metarole”, meaning “role applied to another
role”. Metaroles can change the behavior of the object they
apply to. Metaroles can be used to <a
href="https://wiki.evolveum.com/display/midPoint/Roles%2C+Metaroles+and+Generic+Synchronization">implement
very elegant provisioning patterns</a>. Metaroles can <a
href="https://wiki.evolveum.com/display/midPoint/Using+Metaroles+for+Policy+Configuration">apply
policies. Overall, metaroles can be incredibly powerful. </a></p>
<p>Simply speaking, <a
href="https://wiki.evolveum.com/display/midPoint/Archetypes">archetypes</a>
are just metaroles wearing a nice suit. Archetype can do
anything that a metarole could do. Which makes them quite
powerful already. In addition to that, archetype can change
the look and feel of the “archetyped” objects. But there is
still more. Archetypes are designed to specify, how an
archetyped objects should fit into your customized midPoint
configuration. An archetype can specify <i>assignment
relation constraints</i>. For example, “project” archetype
could specify, that it can have members and managers and those
must be users. No other relation could be made to a “project”.
Therefore midPoint user interface will not offer to assign
project owner or approver. Only member (“default” relation)
and manager (“manager” relation) assignments are allowed. And
those assignments must be placed in user objects. Roles, orgs
and services cannot be members of a project. This may seem
like a small thing. But this approach has a great potential to
significantly simplify and streamline midPoint user interface
– which is getting quite complex already. The big idea is that
archetypes could make midPoint user interface more accessible
to non-technological users.</p>
<p>Archetypes are a huge leap forward. But there is still a long
way to go. Archetypes in midPoint 4.0 are powerful, but they <a
href="https://wiki.evolveum.com/pages/viewpage.action?pageId=27361684">can
still be improved</a>. It would be nice if archetypes could
define a custom schema for archetyped objects. Or if they
could specify custom lifecycle model. And the user interface
part can always be improved to make it more user-friendly. The
funding to develop archetypes in midPoint 4.0 was provided by
a <a href="https://evolveum.com/services/">platform
subscription</a>. Another such subscription can be used to
improve archetypes further. That is how midPoint evolves.</p>
</div>
</div>
<div class="entry-content">
<p>(Reposted from <a moz-do-not-send="true"
href="https://evolveum.com/archetypes-in-gutenberg/">Evolveum
blog</a>)</p>
</div>
<pre class="moz-signature" cols="72">--
Radovan Semancik
Software Architect
evolveum.com
</pre>
</body>
</html>