Copying restrictions apply. See LICENSE.
The overlay operates on configured attributes that must have their syntax compatible with 1.3.6.1.4.1.4203.666.11.12.1.1 , there are three such syntaxes defined by the overlay: 1.3.6.1.4.1.4203.666.11.12.1.2 (Enumerated value), 1.3.6.1.4.1.4203.666.11.12.1.3 (Fixed-size integer), and 1.3.6.1.4.1.4203.666.11.12.1.4 (Fixed-size signed integer).
While transforming the request, if a value for an attribute is not permitted by the configuration, the behaviour depends on the operation:
Search The affected value assertions in a Search request filter are replaced by a filter returning Undefined .
Compare Request returns Compare False .
Add, Modify Requests are rejected with a Constraint Violation .
EQUALITY fixedSizeIntegerMatch Appropriate for syntaxes 1.3.6.1.4.1.4203.666.11.12.1.2 (Enumerated value), and 1.3.6.1.4.1.4203.666.11.12.1.3 (Fixed-size integer).
EQUALITY fixedSizeSignedIntegerMatch Appropriate for syntax 1.3.6.1.4.1.4203.666.11.12.1.4 (Fixed-size signed integer) only.
ORDERING fixedSizeIntegerOrderingMatch Appropriate for syntaxes 1.3.6.1.4.1.4203.666.11.12.1.2 (Enumerated value), and 1.3.6.1.4.1.4203.666.11.12.1.3 (Fixed-size integer). Enumerated value attributes are compared according to their stored database value.
ORDERING fixedSizeSignedIntegerOrderingMatch Appropriate for syntax 1.3.6.1.4.1.4203.666.11.12.1.4 (Fixed-size signed integer) only.
objectClass=olcDatamorphConfig Main overlay configuration. Created directly under the database configuration entry.
objectClass=olcDatamorphInteger Specifies a fixed-size integer attribute and must be a child of an entry with objectClass=olcDatamorphConfig . There may be as many such entries as necessary provided they all specify a different attribute in the olcDatamorphAttribute attribute.
objectClass=olcDatamorphEnum Specifies an enumerated attribute and must be a child of an entry with objectClass=olcDatamorphConfig . There may be as many such entries as necessary provided they all specify a different attribute in the olcDatamorphAttribute attribute.
objectClass=olcDatamorphEnumValue Specifies a permitted value for the enumerated attribute and its database representation. Must be a child of an entry with objectClass=olcDatamorphEnum . There may be as many such entries as necessary provided they all specify a different value and index in the corresponding fields.
olcDatamorphAttribute: <attribute> Mandatory attribute, indicates that the named attribute is to be handled by the overlay. The slapd.conf (5) equivalent is datamorph "int" <attribute> .
olcDatamorphValue: <value> A permitted value for the attribute being configured.
olcDatamorphIndex: <0-255> The corresponding database value.
olcDatamorphAttribute: <attribute> Mandatory attribute, indicates that the named attribute is to be handled by the overlay. The slapd.conf (5) equivalent is datamorph "int" <attribute> .
olcDatamorphIntegerBytes: <1|2|4|8> Size of the integer as stored in the backend. The slapd.conf (5) equivalent is datamorph_size <1|2|4|8> .
olcDatamorphIntegerSigned: <TRUE|FALSE> Whether the integer is to be treated as signed. Note that the overlay will not enforce consistency between this option and the attribute's syntax. The slapd.conf (5) equivalent is datamorph_signed <TRUE|FALSE> .
olcDatamorphIntegerLowerBound: <number> The lowest value that the configured attribute will be allowed to have. This affects all operations where values are mentioned. The slapd.conf (5) equivalent is datamorph_lower_bound <number> .
olcDatamorphIntegerUpperBound: <number> The highest value that the configured attribute will be allowed to have. This affects all operations where values are mentioned. The slapd.conf (5) equivalent is datamorph_upper_bound <number> .
dn: olcOverlay={x}datamorph,$DATABASE objectClass: olcDatamorphConfig olcOverlay: datamorph # to handle attribute 'enumeratedAttribute' dn: olcDatamorphAttribute=enumeratedAttribute,olcOverlay={x}datamorph,$DATABASE objectClass: olcDatamorphEnum # value 'value1' corresponds to 'AQ==' (0x01) dn: olcDatamorphValue=value1,olcDatamorphAttribute={0}enumeratedAttribute,olcOv erlay={x}datamorph,$DATABASE objectclass: olcDatamorphEnumValue olcDatamorphIndex: 1 # value 'value11' corresponds to 'Cw==' (0x0B) dn: olcDatamorphValue=value11,olcDatamorphAttribute={0}enumeratedAttribute,olcO verlay={x}datamorph,$DATABASE objectclass: olcDatamorphEnumValue olcDatamorphIndex: 11 # handle attribute 'signedInteger' as a 2-byte signed integer with values # between -20000 and 30000 (inclusive on both sides) dn: olcDatamorphAttribute=signedInteger,olcOverlay={x}datamorph,$DATABASE objectclass: olcDatamorphInteger olcDatamorphIntegerBytes: 2 olcDatamorphIntegerSigned: TRUE olcDatamorphIntegerLowerBound: -20000 olcDatamorphIntegerUpperBound: 30000 # handle attribute 'shortInteger' as a 1-byte unsigned integer with only values # 0 and 1 allowed (effectively a true/false) dn: olcDatamorphAttribute=shortInteger,olcOverlay={x}datamorph,$DATABASE objectclass: olcDatamorphInteger olcDatamorphIntegerBytes: 1 olcDatamorphIntegerUpperBound: 1 olcDatamorphIntegerSigned: FALSEThe slapd.conf (5) equivalent of the above follows:
overlay datamorph datamorph enum enumeratedAttribute datamorph_value 1 value1 datamorph_value 11 value11 datamorph int signedInteger datamorph_size 2 datamorph_signed TRUE datamorph_lower_bound -20000 datamorph_upper_bound 30000 datamorph int shortInteger datamorph_size 1 datamorph_signed no datamorph_upper_bound 1
ETCDIR/slapd.conf default slapd configuration file
ETCDIR/slapd.d default slapd configuration directory