Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

At operation level:

  • values must be fetch fetched when reading users (groups, any objects) via REST - if mapped
  • effective read invocation on the underlying connectors is reduced by using cache
  • virtual attributes are populated into users (group, any objects) exclusively by VirAttrHandler, only when strictly required
  • user (group, any object) update is often problematic: virtual attributes to be removed and updated need explicit management in PropagationManager
  • when the same attribute is mapped for different resources (linking or not), a list of values is generated and it is not clear where the ownerships come comes from

Refactoring proposal

  1. when defining a virtual schema, it is mandatory to define the linking resource(s)
  2. virtual attributes are not assigned any more to users (groups, any objects) but, as long as an user (group, any object) is assigned the AnyTypeClass of which the virtual schema is part, it is also assigned the related virtual attribute
  3. mapping:
    1. linking resource(s) have, besides traditional mapping items, one or more linking mapping which derives from virtual schema definition (see above)
    2. virtual attributes can only be mapped for propagation to non-linking resources (as, because of linking mapping, are already mapped both in propagation and synchronization to linking resources)
  4. Syncope will autonomously decide when to read or to write (as part of propagation) virtual attributes' values from linking resources

...