This includes entries that are created by add operations and LDIF imports. These entries can be created, updated, or removed when processing modify and modifyDN operations. The server might optionally permit or reject attempts to alter the generated values.

Composed values are based on a combination of static text and the contents of the entry in which the value is being generated. You cannot construct values using content from other entries in the server because the necessary content might not be available at the time the value is being generated. An example of this is if the referenced entry does not yet exist. It would also be difficult to ensure that the value is kept up to date whenever the referenced entry changes or is removed. Values are generated using the same logic that is available for constructed virtual attributes and constructed attribute mapping functionality in the Synchronization Server.

The composed attribute functionality is implemented using a plugin. The plugin is invoked during the pre-operation phases for add, modify, and modifyDN operations and also operates during LDIF import.

The server provides an administrative task that can be used to iterate through all entries in a backend and generate values. This is useful when a new composed attribute plugin instance is created after the backend has already been populated and you do not want to export the data to LDIF and re-import.

The server does not provide any first-class extensibility mechanisms for composed attributes. Unlike virtual attributes, which can be created through the Server SDK, composed attribute support is limited to what the server can provide. You can implement your own plugins to generate your own data.