Composed attributes are generated when an entry is written.
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
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.