This extension implements an autoincrement mechanism for PingDirectory.
The autoincrement behavior is controlled by creating sequence entries.
These entries serve to:
- configure the sequence behavior, such as:
- autoincrementSequenceMin: where the sequence starts
- autoincrementSequenceMax: where the sequence stops before cycling over
- autoincrementSequenceIncrement: the increment value
- autoincrementSequenceCache: the number of increments to do in-memory before persisting the entry to disk.
- a value of 0 disables caching and persists every change. This is best for low-frequency, high consistency sequences.
- a value greater than 0 will persist increments less often which allows use cases requiring high-frequency sequences.
- persist state and observe behavior, such as:
- autoincrementSequenceValue: current value of the sequence
- autoincrementSequenceCycle: the number of times the sequence hit its configured maximum
In addition, the autoicrement extension has arguments to curtail the location in the DIT where sequence entries will be actively maintained:
- base: the base DN under which the autoincrement extension will maintain active sequence entries
- filter: a well-formed LDAP v3 filter that will select sequence entries
dsconfig create-plugin --plugin-name Autoincrement --type third-party --set enabled:false --set plugin-type:postoperationadd --set plugin-type:postoperationdelete --set plugin-type:postoperationmodify --set plugin-type:postoperationmodifydn --set plugin-type:preparsesearch --set extension-class:com.pingidentity.ds.plugin.Autoincrement --set extension-argument:base=dc=example,dc=comHere is an example sequence entry:
dn: uid=sequence.0,dc=example,dc=com objectClass: autoincrementSequence objectClass: uidObject uid: sequence.0 autoincrementSequenceCache: 0 autoincrementSequenceCycle: 0 autoincrementSequenceIncrement: 1 autoincrementSequenceMax: 10000000 autoincrementSequenceMin: 0 autoincrementSequenceValue: 0
Allowed Arguments
Argument Name: | incrementAttribute |
Description: | Name of the attributeName containing the sequence value. (default:autoincrementSequenceIncrement) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | minAttribute |
Description: | Name of the attributeName containing the sequence minimum value. (default:autoincrementSequenceMin) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | maxAttribute |
Description: | Name of the attributeName containing the sequence maximum value. (default:autoincrementSequenceMax) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | cycleAttribute |
Description: | Name of the attributeName containing the sequence cycle value. (default:autoincrementSequenceCycle) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | cacheAttribute |
Description: | Name of the attributeName containing the sequence cache value. (default:autoincrementSequenceCache) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | valueAttribute |
Description: | Name of the attributeName containing the sequence value. (default:autoincrementSequenceValue) |
Data Type: | String |
Is Required: | true |
Maximum Occurrences: | 1 |
Argument Name: | base |
Description: | Base DN where sequence entries relevant for this instance of the plugin are stored (default: "") |
Data Type: | LDAP Distinguished Name |
Is Required: | false |
Maximum Occurrences: | 1 |
Argument Name: | filter |
Description: | Filter to narrow down which entries this plugin should search to retrieve and initialize sequences from. (default: (objectClass=autoincrementSequence)) |
Data Type: | LDAP Search Filter |
Is Required: | false |
Maximum Occurrences: | 1 |