chap-sample.xml revision a34a8ffed8c62150fb188e30d4294b42ce381431
e6d40133bc9f858308654afb1262b8b483ec5922Till Mossakowski ! CCPL HEADER START
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu ! This work is licensed under the Creative Commons
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
cfbd735270fe52115cef0508d265785efcb99cd7Christian Maeder ! To view a copy of this license, visit
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! http://creativecommons.org/licenses/by-nc-nd/3.0/
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! or send a letter to Creative Commons, 444 Castro Street,
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! Suite 900, Mountain View, California, 94041, USA.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! You can also obtain a copy of the license at
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! See the License for the specific language governing permissions
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder ! and limitations under the License.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! If applicable, add the following below this CCPL HEADER, with the fields
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! enclosed by brackets "[]" replaced with your own identifying information:
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! Portions Copyright [yyyy] [name of copyright owner]
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! CCPL HEADER END
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ! Copyright 2011-2012 ForgeRock AS
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder xsi:schemaLocation='http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd'
55c5e901b5c3466300009135585bc70bd576dcb6Christian Maeder xmlns:xinclude='http://www.w3.org/2001/XInclude'>
55c5e901b5c3466300009135585bc70bd576dcb6Christian Maeder <para>In the current distribution of OpenIDM the sample
54ea981a0503c396c2923a1c06421c6235baf27fChristian Maeder in <filename>openidm/samples/sample1</filename> is configured and enabled by
55c5e901b5c3466300009135585bc70bd576dcb6Christian Maeder default. This chapter provides an overview of the sample and how it is
697e63e30aa3c309a1ef1f9357745111f8dfc5a9Christian Maeder configured. To see a listing and an overview of the rest of the samples
c208973c890b8f993297720fd0247bc7481d4304Christian Maeder provided see the README found in <filename>openidm/samples</filename> and in
55c5e901b5c3466300009135585bc70bd576dcb6Christian Maeder the chapter <link xlink:href="install-guide#chap-samples"
697e63e30aa3c309a1ef1f9357745111f8dfc5a9Christian Maeder xlink:role="http://docbook.org/xlink/role/olink"><citetitle>More OpenIDM
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <para>Install OpenIDM as described in the chapter on <link
697e63e30aa3c309a1ef1f9357745111f8dfc5a9Christian Maeder xlink:role="http://docbook.org/xlink/role/olink"><citetitle>Installing
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder OpenIDM Services</citetitle></link>.</para>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <para>OpenIDM comes with an internal noSQL database, OrientDB for use as
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder the internal repository out of the box. This makes it easy to get started
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder with OpenIDM. OrientDB is not yet supported for production use, however,
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder so use a supported JDBC database when moving to production.</para>
c4df2219ea6f47a5e510503e475c38362e8464ebChristian Maeder <para>If you want to query the internal noSQL database, download and unzip
c4df2219ea6f47a5e510503e475c38362e8464ebChristian Maeder <link xlink:href="http://code.google.com/p/orient/wiki/Download"
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian Maeder xlink:show="new">OrientDB 1.0</link>. Once you have downloaded and unzipped
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder OrientDB, you can find the shell console in the <filename>bin</filename>
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder directory. Start OrientDB console using either <command>console.sh</command>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder or <command>console.bat</command>, and then connect to the running OpenIDM
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian Maeder with the <command>connect</command> command.</para>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder <screen>$ /path/to/orientdb-1.0rc6/bin/console.sh
6948b7295a0521212803f15cf919395d2073e2c9Christian MaederConnecting to database [remote:localhost/openidm] with user 'admin'...OK
2c81e2bd9f9dee247c74a642c03620a2f799d0a4Razvan Pascanu <variablelist>
2c81e2bd9f9dee247c74a642c03620a2f799d0a4Razvan Pascanu <para>Once connected to the database, you might find the following
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder commands useful.</para>
2c81e2bd9f9dee247c74a642c03620a2f799d0a4Razvan Pascanu <varlistentry>
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <listitem><para>Shows classes and records</para></listitem>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder </varlistentry>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder <varlistentry>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder <term><command>select * from managed_user</command></term>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <listitem><para>Shows all users in the OpenIDM repository</para></listitem>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder </varlistentry>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <varlistentry>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <term><command>select * from audit_activity</command></term>
e49fd57c63845c7806860a9736ad09f6d44dbaedChristian Maeder <listitem><para>Shows all activity audit records</para></listitem>
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder </varlistentry>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder <varlistentry>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder <term><command>select * from audit_recon</command></term>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <listitem><para>Shows all reconciliation audit records</para></listitem>
6948b7295a0521212803f15cf919395d2073e2c9Christian Maeder </varlistentry>
afddef51d985ac2ea76a6bd846f04cbbc4311305Razvan Pascanu </variablelist>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <para>OpenIDM connects identity data objects held in different data resources
afe76697dd6888856a066934a1112a38809b27faChristian Maeder by mapping one object to another. To connect to different data resources,
3fe83d4c932a8266edcf0304a97814c59821d91fChristian Maeder OpenIDM uses <link xlink:href="http://openicf.forgerock.org">OpenICF</link>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder connectors configured for use with the data resources.</para>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <para>When objects in one data resource change, OpenIDM determines how the
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder changes affect other objects, and can make the changes as necessary. This
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder sample demonstrates how OpenIDM does this by using
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <firstterm>synchronization</firstterm>. OpenIDM reconciliation compares
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder objects in one object set to mapped objects in another object set.
0a5165c161ce13d434b5c0488b533a8de98aafaaChristian Maeder Reconciliation can work in write mode, where OpenIDM writes changes to
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder affected objects, or in report mode, where OpenIDM reports on what changes
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder would be written without making the changes. OpenIDM synchronization reflects
da955132262baab309a50fdffe228c9efe68251dCui Jian changes in objects to any mapped objects, making changes as necessary to
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian create or remove mapped objects and links to associate them.</para>
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian <para>This sample connects to an XML file holding sample user data. The XML
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian file is configured as the authoritative source. In this sample, users are
afe76697dd6888856a066934a1112a38809b27faChristian Maeder created in the local repository to show you how you can manage local users
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder through the REST APIs. You can also use OpenIDM without storing managed
afe76697dd6888856a066934a1112a38809b27faChristian Maeder objects for users in the local repository, instead reconciling and
afe76697dd6888856a066934a1112a38809b27faChristian Maeder synchronizing objects directly through connectors to external data
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder resources.</para>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <para>Furthermore, this sample involves only one data resource. In practice,
da955132262baab309a50fdffe228c9efe68251dCui Jian you can connect as many resources as needed for your deployment.</para>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <variablelist xml:id="about-the-sample-configuration">
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <para>You can find configuration files for the sample under the
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <filename>openidm/samples/sample1/conf</filename> directory. As you review
3fe83d4c932a8266edcf0304a97814c59821d91fChristian Maeder the samples, keep the following in mind.</para>
4b136ad539bd9f4e115dff4eee4d552a42d4437eChristian Maeder <orderedlist>
da955132262baab309a50fdffe228c9efe68251dCui Jian <para>OpenIDM regularly scans for any scheduler configuration files in the
3fe83d4c932a8266edcf0304a97814c59821d91fChristian Maeder <filename>conf</filename> directory.</para>
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian </listitem>
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <para>OpenIDM's reconciliation service reads the mappings and actions for
9192fdd8f0e682ac0f0183dd854d5210fbfa4ec5Christian Maeder the source and target users from <filename>conf/sync.json</filename>.</para>
9192fdd8f0e682ac0f0183dd854d5210fbfa4ec5Christian Maeder <para>Reconciliation runs, querying all users in the source, and then
afe76697dd6888856a066934a1112a38809b27faChristian Maeder creating, deleting, or modifying users in the local OpenIDM repository
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder according to the synchronization mappings.</para>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <para>OpenIDM writes all operations to the audit logs in both the internal
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder database and also the flat files in the <filename>openidm/audit</filename>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder directory.</para>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder </orderedlist>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <varlistentry>
d24317c8197e565e60c8f41309de246249c1e57eChristian Maeder <term><filename>conf/provisioner.openicf-xml.json</filename></term>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <para>This connector configuration file serves for the XML file resource.
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder In this sample, this connector instance acts as the authoritative source
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder for users. In the configuration file you can see that the
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder <filename>samples/sample1/data/xmlConnectorData.xml</filename>, which
afe76697dd6888856a066934a1112a38809b27faChristian Maeder contains users in XML format.</para>
afe76697dd6888856a066934a1112a38809b27faChristian Maeder <para>For details on the OpenICF connector configuration files see the
49d8e1a419ee5658d23762335af121179a68669fCui Jian <link xlink:href="integrators-guide#chap-resource-conf"
afe76697dd6888856a066934a1112a38809b27faChristian Maeder xlink:role="http://docbook.org/xlink/role/olink"
afe76697dd6888856a066934a1112a38809b27faChristian Maeder ><citetitle>Connecting to External Resources</citetitle></link> chapter in
afe76697dd6888856a066934a1112a38809b27faChristian Maeder the <citetitle>Integrator's Guide</citetitle>.</para>
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder </varlistentry>
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder <term><filename>conf/scheduler-reconcile_systemXmlAccounts_managedUser.json</filename></term>
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder <para>The sample scheduler configuration file defines a reconciliation
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder job that, if enabled by setting <literal>"enabled" : true</literal>,
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder starts a reconciliation each minute for the mapping named
e04726af1ef4af2f172f6ce2a075a4f004ea98f1Cui Jian <literal>systemXmlAccounts_managedUser</literal>. The mapping is defined
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder in the configuration file, <filename>conf/sync.json</filename>.</para>
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder "enabled" : false,
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "type": "cron",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "schedule": "0 0/1 * * * ?",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "invokeService": "org.forgerock.openidm.sync",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "invokeContext": {
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "action": "reconcile",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "mapping": "systemXmlfileAccounts_managedUser"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder}</programlisting>
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <para>You can also start reconciliation through the REST interface. The
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder call to the REST interface is an HTTP POST such as the following.</para>
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian --header "X-OpenIDM-Username: openidm-admin"
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian --header "X-OpenIDM-Password: openidm-admin"
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian --request POST
da955132262baab309a50fdffe228c9efe68251dCui Jian "http://localhost:8080/openidm/sync?_action=recon&mapping=systemXmlfileAccounts_managedUser"</screen>
37e30366abd83c00a5d5447b45694627fd783de8Cui Jian <para>For details on the scheduler configuration see the <link
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder ><citetitle>Scheduling Synchronization</citetitle></link> chapter in the
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder <citetitle>Integrator's Guide</citetitle>.</para>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder </varlistentry>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <varlistentry>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <term><filename>conf/sync.json</filename></term>
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <para>This sample configuration file defines the configuration for
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder reconciliation and synchronization. The
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder <literal>systemXmlAccounts_managedUser</literal> is the mapping for
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder the reconciliation in the scheduler configuration. This entry in
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder <filename>conf/sync.json</filename> defines the synchronization mappings
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder between the XML file connector (source) and the local repository
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder (target).</para>
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "mappings": [
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "name": "systemXmlfileAccounts_managedUser",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "correlationQuery": {
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "source": "var query = {'_query-id' : 'for-userName',
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder 'userName' : source.name};query;"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "properties": [
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "source": "description",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "target": "description"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "source": "firstname",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "target": "givenName"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "source": "email",
e220b2051a2342a9291721e6c7f408860bed01b7Jorina Freya Gerken "target": "email"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "source": "lastname",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "target": "familyName"
5efed683fd173e9d53bd5f1929ba5b0c8a228710Christian Maeder "source": "name",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "target": "userName"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "source": "name",
5efed683fd173e9d53bd5f1929ba5b0c8a228710Christian Maeder "target": "_id"
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "policies": [
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "situation": "CONFIRMED",
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "action": "UPDATE"
d11391a2447a2005329a95b5d770f24e62bf5b63Christian Maeder "situation": "FOUND",
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "action": "IGNORE"
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "situation": "ABSENT",
90a0050cf7979b2ca1fde7991462851abcbcf3a3Christian Maeder "action": "CREATE"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "situation": "AMBIGUOUS",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "action": "IGNORE"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "situation": "MISSING",
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder "action": "IGNORE"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "situation": "SOURCE_MISSING",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "action": "IGNORE"
e44a4fd691fbfb3a1ac9f3f31aae7d5245055760Christian Maeder "situation": "UNQUALIFIED",
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "action": "IGNORE"
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder "situation": "UNASSIGNED",
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder "action": "IGNORE"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder}</programlisting>
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder <para>Source and target paths starting with <literal>managed</literal>,
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder such as <literal>managed/user</literal>, always refer to objects in the
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder local OpenIDM repository, whereas paths starting with
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <literal>system</literal>, such as <literal>system/xmlfile/account</literal>,
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder refer to connector objects, in this case the XML file connector.</para>
3d3889e0cefcdce9b3f43c53aaa201943ac2e895Jonathan von Schroeder <para>To filter objects from the resource for a particular target, you can
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder use the <literal>validTarget</literal> script in the mapping to ensure
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder only users matching specified criteria are considered part of the
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder reconciliation. You can use an <literal>onCreate</literal> script in a
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder mapping to set default values for a user created in the target resource.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder For details on scripting see the <link
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder xlink:href="integrators-guide#appendix-scripting"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder xlink:role="http://docbook.org/xlink/role/olink"
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder ><citetitle>Scripting</citetitle></link> appendix in the
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder <citetitle>Integrator's Guide</citetitle>.</para>
bf4226899034bddcfe81c870cbedf28c2890370eChristian Maeder <para>For details on synchronization, reconciliation, and
4cb77926a2d85ce3bb32ac0938f0100c8c528dc2Till Mossakowski <filename>sync.json</filename>, see the <link
e220b2051a2342a9291721e6c7f408860bed01b7Jorina Freya Gerken xlink:href="integrators-guide#chap-synchronization"
"http://localhost:8080/openidm/sync?_action=recon&mapping=systemXmlfileAccounts_managedUser"</screen>
"79...","UPDATE",...,"d15...", "CONFIRMED","system/xmlfile/account/1",..., "managed/user/DDOE1",...;