As of v2.0.0, Registry supports Attribute Enumerations, which allow the possible values of free-form fields to be constrained to a selection of pre-determined values. The following attributes can be enumerated (via CO >> Configuration >> Attribute Enumerations):
- CoPersonRole.o (organization)
- CoPersonRole.ou (department)
- IdentityDocument.issunig_authority (as of Registry v4.0.0)
- OrgIdentity.o (organization)
- OrgIdentity.ou (department)
When Organizational Identities are pooled, Attribute Enumerations for OrgIdentity attributes can only be set by a platform administrator, and will apply to all COs. These enumerations are set via the Platform >> Attribute Enumerations menu.
Once at least one enumeration is defined for a given attribute, all possible data entry points for that attribute will be constrained to the enumerated values. This includes
- Manually editing the attribute, even by an administrator
- Collecting the attribute via an Enrollment Flow, including via default values
- The REST API v1
- Records obtained via Organizational Identity Sources
For enumerations attached to CO attributes, if normalizations are enabled the enumerated value will be normalized.
Enumerations only apply to records as they are updated. Deleting, editing, or suspending an enumeration will not by default affect any existing records. However, if someone edits a record with a value that no longer correlates to an enumeration, the value will need to be updated before the record can be saved.
As of Registry v4.0.0, Attribute Enumerations are implemented using Dictionaries. If the selected Dictionary defines both Values and Codes, the Codes will be stored as the value in the database, so be sure to define Codes for all Dictionary Entries within the Dictionary, or do not use any Codes within the Dictionary. Dictionary Entry ordering may also be used to place certain values at the top of the enumeration list. (Entries will otherwise be sorted alphabetically.)
Only one Dictionary may be attached to a given attribute.
As of Registry v4.0.0, Attribute Enumeration support an Allow Other option. When enabled, the attribute will allow a free-form field in addition to the enumerations defined in the associated Dictionary. Allow Other is not currently supported for CoPersonRole and OrgIdentity attributes within an Enrollment Flow, although it is supported for these attributes in other contexts (CO-2012).