On 03/03/2013 20:15, Edward Siewick wrote:
Hi.

With v1.0.5 is there a way to automatically apply "Derived attributes" to all users? Globally and permanently?

With "Attributes" the values get populated in the Users List. Refreshing the values seems to require deleting each user, setting the "Reset Token" for the resource to true, then running the synchronization for the resource. The default behavior is backward from what I was expecting, but I can at least do these steps, get the fields populated.

With "Derived attributes," however, I've only managed to get these populated by walking through the Edit/Derived attributes screen for every user, add each Derived attribute. I'm thinking there's got to be a way to pin these to some global, automatic behavior.

The use case I'm playing with has two resources with dissimilar schema:
1. MySQL with an OrangeHRM database, and;
2. openLDAP with inetOrgPerson & posixAccount.

I'm just trying to set the MySQL resource as authoritative for certain attributes, have these mapped to appropriate inetOrgPerson attributes, and propagate to the openLDAP directory. When an authoritative bit of data changes in MySQL, it should be able to translate through without intervention.

Hi Edward,
let me try to rephrase your requirements in Syncope terms (feel free to correct, of course):

You have
 1.  a "MySQL" resource, with DbTable connector
 2.  an "OpenLDAP" resource, with LDAP connector

You need to (periodically) synchronize users from (1) and to propagate them to (2); for this reason you have also defined: 3. a synchronization task for the MySQL resource, possibly with some scheduling

Now you need that users synchronized from MySQL are automatically assigned some derived attributes and the OpenLDAP resource. The way to accomplish this in Syncope is to define a "user template" [1], for the task from the (3) above. For your needs, you just need to add the derived attributes and the OpenLDAP resource to the user template.

You can take a look at how the user action flow generally works in Syncope [2].

As a side note, you don't generally need to remove users to get their attributes updated upon synchronization: make sure
  a. to have the "Update matched identities" flagged for (3)
b. that mapping defined for (1) is working for matching existing users during synchronization - empower the "dry run" feature [3] for this and examine the output of the related execution to check if users are matched

Finally, please be aware that configuring the DbTable connector (used for (1)) for actual synchronization requires to specify the changeLogColumn [4]. I'd rather suggest to start without this column and to flag "Full reconciliation" for (3), at least for the moment.

HTH
Regards.

[1] https://cwiki.apache.org/confluence/display/SYNCOPE/Tasks#Tasks-SpecifyUserTemplate
[2] https://cwiki.apache.org/confluence/display/SYNCOPE/User+action+flows
[3] https://cwiki.apache.org/confluence/display/SYNCOPE/Tasks#Tasks-DryRun
[4] https://connid.atlassian.net/wiki/display/BASE/Database+Table

--
Francesco Chicchiriccò

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/

Reply via email to