Versions Compared

Key

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

...

  • key is a string label (i.e. Surname)
  • Wiki Markup
    _values_ is a (possibly singleton) collection of data (i.e. \[Doe\] but also \[john.doe@syncope-idm.apache.org, jdoe@gmail.com\])

An attribute can be:

...

The type of values that can be assigned to each attribute is defined via schemas.

Syncope will manage plain attributes, derived attributes and virtual attributes for users, roles and memberships.

Plain attributes

In this case attribute values are persisted into the Syncope internal storage.
Plain attribute values are:

  • updated via synchronization from external resources
  • available for propagation towards external resources

Derived attributes

Sometimes it is handful to obtain values as arbitrary combination of other attributes' values: for example, with 'Firstname' and 'Surname' plain attributes, it is natural to think that 'Fullname' could be somehow defined as the concatenation of Firstname's and Surname's values, separated by a blank space.

You can define a derived attribute via

...

a JEXL expression combining values of some plain attributes.

...

Derived attribute values are:

...

  • indirectly updated via synchronization from external resources (when composing plain attributes' values are updated via synchronization)
  • available for propagation towards external resources

Virtual attributes

With virtual attributes, values are not kept into the Syncope internal storage but

...

somehow linked from an external resource.

For performance optimization, virtual attributes are managed by an internal cache to limit access to external resources.

This means that Syncope will manage plain attributes, derived attributes and virtual attributes for users, roles and memberships.

...

The typical usage of virtual attributes is when an attribute can change on an external resource without notice and there is need of having access to the most updated value without relying upon synchronization.

Virtual attribute values are:

  • unaffected by synchronization
  • available for propagation towards external resources

Schema

An attribute schema describes the values that attributes with that schema will held:

...