<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Dear midPoint community,</p>
<span class="byline"><span class="author vcard"></span></span>
<div class="entry-content"><span class="byline"><span class="author
vcard"></span></span>
<div class="entry-content">
<p><a
href="https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/">Data
provenance</a> development in midPoint is moving forward.
The implementation has reached its first milestone. For those
interested in the details there are already few things to have
a look at.<span id="more-6586"></span></p>
<p>We started with analysing the <a
href="https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/provenance-use-cases/">use
cases</a> and preliminary <a
href="https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/metadata-usecases/">list
of metadata uses and items</a>. This lead us to <a
href="https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/architecture/">solution
architecture</a> and we have started designing<a
href="https://github.com/Evolveum/midpoint/blob/feature/axiom/infra/schema/src/main/resources/xml/ns/public/common/common-metadata-3.xsd">
the meta-data structure</a>.</p>
<p>However, the greatest challenge was the schema modeling. This
was quite expected. We are at the end of the road for XML
Schema Definition (XSD). It is quite clear we <a
href="https://evolveum.com/a-road-to-axiom/">have to make a
big step forward</a>. Therefore, we started working on a new
schema language: <a
href="https://docs.evolveum.com/midpoint/midprivacy/phases/01-data-provenance-prototype/axiom/">Axiom</a>.
We started designing the language and implementing a prototype
parser. The code is available in <a
href="https://github.com/Evolveum/midpoint/tree/feature/axiom/infra/axiom"><tt>axiom</tt>
module in <tt>feature/axiom</tt> branch</a> of midPoint
source code. The code is stil very experimental. Our plan is
to validate that the language works by trying it on ourselves
– we would like to express all midPoint schemas in Axiom
evetually. Until we can pass through such validation both the
Axiom language and the code is likely to change.</p>
<p>We have also made some progress on the user interface side
and we are quite ahead of plan with that. We have extended <a
href="https://wiki.evolveum.com/display/midPoint/Prism+Objects">Prism</a>
interfaces to introduce support for value metadata. We will
use this to display data provenance meta-data in midPoint user
interface. Implementation of user interface support is already
in progress and we have first screenshots:</p>
<p><a moz-do-not-send="true"
href="https://evolveum.com/wp-content/uploads/screenshot-m1-simple-metadata.png">https://evolveum.com/wp-content/uploads/screenshot-m1-simple-metadata.png</a><br>
</p>
<p><a moz-do-not-send="true"
href="https://evolveum.com/wp-content/uploads/screenshot-m1-transformation-metadata.png">https://evolveum.com/wp-content/uploads/screenshot-m1-transformation-metadata.png</a><br>
</p>
<p>There is still a lot to do. Axiom has to mature, we have to
connect all the pieces by using midPoint mappings, improve the
user interface and do a lot of smaller things. But we are on
the right track and we are moving ahead. This milestone is
more important than it may seem. This effort is part of <a
href="https://evolveum.com/introducing-midprivacy-initiative/">midPrivacy
initiative</a>, which is long-term plan to implement data
protection mechanisms in midPoint. And this is the first real
milestone in midPrivacy implementation. Data protection is one
step closer to become a reality.</p>
</div>
<p>This project has received funding from the European Union’s
Horizon 2020 research and innovation programme under the
NGI_TRUST grant agreement no 825618.</p>
</div>
<p>(Reposted from <a moz-do-not-send="true"
href="https://evolveum.com/data-provenance-milestone-1/">Evolveum
blog</a>)</p>
<pre class="moz-signature" cols="72">--
Radovan Semancik
Software Architect
evolveum.com</pre>
</body>
</html>