Skip to content

Transcribes

Transcribes configuration using object syntax.

Each key under transcribes is a transcribe type (e.g., “user”, “group”). Transcribes are processed in alphabetical order (case-insensitive) for deterministic behavior.

Example:

transcribes {
user {
ldap {
base = "ou=users,o=data"
filter = "(objectClass=Person)"
}
indices {
partial-match = "cn, sn, description"
}
}
group {
ldap {
base = "ou=groups,o=data"
filter = "(objectClass=groupOfNames)"
}
}
}

Legacy array syntax is deprecated but still supported:

transcribes = [
{ type = "user", ldap { base = "ou=users,o=data" } }
]

Enable or disable this transcribe. Can be set via environment variables:

  • SCRIBE_TRANSCRIBE_ENABLED (applies to all)
  • SCRIBE_TRANSCRIBE_<TYPE>_ENABLED (per-type, e.g., SCRIBE_TRANSCRIBE_USER_ENABLED)

Values: true, false, 1, 0, yes, no If readonly mode is active, this is always false.

PropertyValue
Defaulttrue
transcribes.<type>.enabled = true

Index configuration for this transcribe. Indices defined here merge with root-level indices.*, with transcribe-level taking precedence. See Indices for all available options.

Attributes for partial-match (contains/startsWith) queries. Increases write time and disk usage. Select carefully.

Example: "cn, sn, description"

PropertyValue
Defaultnull
transcribes.<type>.indices.partial-match = null

Attributes for entry-level sorting (multi-valued only). Single-valued attributes use value-match indexes automatically.

Example: "cn, displayName, memberOf"

PropertyValue
Defaultnull
transcribes.<type>.indices.sortable = null

Attributes for equality, range, and sorting queries. Baseline defaults (objectClass, cn, uid, mail, etc.) are automatically included for observed attributes.

Example: "cn, uid, mail, nrfMemberOf"

PropertyValue
Defaultnull
transcribes.<type>.indices.value-match = null

Number of parallel workers for transcription. Higher values increase throughput but also database load.

Default: auto-derived from database pool size and number of transcribes.

transcription.workers = {auto}

Buffer size (entries) waiting to be transcribed. Larger values smooth bursts but use more memory. Smaller values slow down sooner but reduce peak memory.

Default: auto-derived.

transcription.queue-capacity = {auto}

LDAP configuration for this transcribe. Merged with the shared ldap {} configuration. See Ldap for all available options.

Attributes to retrieve for each entry. Can be a comma-separated string or HOCON list.

Example:

attributes = "cn, sn, mail, telephoneNumber"
PropertyValue
Defaultnull
transcribes.<type>.ldap.attributes = null

Base DN to search for entries.

Example: "ou=users,o=data"

PropertyValue
Defaultnull
transcribes.<type>.ldap.base = null

LDAP filter for searching entries.

Example: "(objectClass=Person)"

PropertyValue
Defaultnull
transcribes.<type>.ldap.filter = null

Search scope.

Values: base, one, sub, subordinate_subtree

Default: sub

PropertyValue
Defaultsub
transcribes.<type>.ldap.scope = sub

Maximum concurrent tasks for this transcribe. Leave unset to derive from database connection pool. Set to 0 or negative to disable throttling (not recommended).

PropertyValue
Default-1
transcribes.<type>.max-task-concurrency = -1