The following example shows how to configure the Globally Unique Attribute plugin. The example defines an attribute set consisting of the telephoneNumber and mobile attributes within the "test-view" subtree view. The multiple-attribute-behavior property determines the scope of how attributes may differ among entries and is the same property for the Directory Server plugin. The property is set to unique-across-all-attributes-including-in-same-entry, which indicates that the telephone and mobile attributes must be unique throughout the subtree view, even within an entry. The pre-commit-validation property ensures that the Globally Unique Attribute Plugin performs one or more searches to determine whether any entries conflict with the change (i.e., add, modify, or modify DN). If a conflict is detected, then the change request will be rejected.

Note that all configured attributes should be indexed for equality in all backend servers.

  • Run dsconfig to create the Globally Unique Attribute plugin. The server checks that any add, modify, or modify DN request does not conflict with any attribute values in the entries. If a conflict exists, the change request is rejected.
    $ bin/dsconfig create-plugin \
      --plugin-name "Globally-Unique telephone and mobile" \
      --type globally-unique-attribute \
      --set enabled:true \
      --set type:telephoneNumber \
      --set type:mobile \
      --set subtree-view:test-view \
      --set multiple-attribute-behavior:unique-across-all-attributes-including-in-same-entry \
      --set pre-commit-validation:all-available-backend-servers