Skip to content

Version History

Version v2.4.0 (2025-06-25)

Features

  • Faster and More Reliable Lookups: New database indexes have been added to speed up directory entry searches, especially for large datasets.
  • Binary LDAP Entry Serialization: Storing LDAP entries in a binary format, for faster processing during sync and retrieval
  • Optimized SQL Query Performance: SQL queries are now dynamically constructed for highly selective searches, ensuring PostgreSQL always uses the most efficient query plan.
  • Initial Sync Performance: Improved initial synchronization speed by removing unnecessary locking.
  • Sync State Query Optimization: Enhanced synchronization speed by optimizing queries that determine the state of entries

Fixes

  • Service Info: Improved scribe service info to include the starting state as a healthy state, preventing health check failures during slow startups.
  • Health Check: Shows the correct service name in the health check response.
  • Monitoring: Suppressed noisy error logs for client disconnects (e.g., “Broken pipe”, “Connection reset”) on metrics and health endpoints. These are now logged at debug level instead of error, reducing log noise from normal client disconnects.
  • Scribe Service: Improved error handling and logging in case of disconnects for scribe service.
  • Scribe Service: After a restart, the scribe service will now continue with the incremental sync instead of the initial sync.

Breaking

  • Attribute Sets Removed: Attribute sets are no longer supported and should be removed from the configuration

When removing attributeSets from your configuration, make sure to add all attributes that were previously only listed in attributeSets to the main attributes configuration. This ensures that all attributes are still observed and processed as before.

# Before (deprecated)
attributeSets = [
"uid, mail, displayName"
]
attributes = "cn sn"
# After (supported)
attributes = """
cn, sn
uid, mail, displayName
"""
  • Removed Prometheus Metrics: This version removes the following Prometheus metrics
  • scribe.entries.refresh.cache.count
  • scribe.entries.refresh.cache.time