emptyds Overlay README

DESCRIPTION
    This package contains an OpenLDAP overlay called "emptyds" (empty
    directory string) that eliminates empty values of type directory string
    (OID 1.3.6.1.4.1.1466.115.121.1.15) from the list of the values in the
    following manner:
    
    - add: All empty attribute values will be removed before the add request
      is executed
    - mod-replace: A replace with empty values will be modified to a replace
      without values. As result the attribute will be deleted
    - mod-add: All empty attribute values will be removed before the mod-add
      request is executed
    - mod-delete: All empty attribute values will be removed before the
      mod-delete request is executed
    
    If removing all empty values from a modification makes it a no-op, that
    modification is removed from the list.
    
    At module load time the emptyds overlay manipulates the syntax checking
    so that it intercepts the syntax check and allows empty values for
    attributes of type directory string only. Non-empty values continue to
    go through the normal check routines. It is therefore very important to
    configure the overlays in a way that ensures that the emptyds overlay gets
    the control over the operation before any other overlay. Otherwise it
    could come to the situation with empty attribute values in the data base.
    
    David Hawes' addpartial overlay has been used as starting point for this
    overlay.
     
BUILDING
    A Makefile is included, please set your LDAP_SRC directory properly.

INSTALLATION
    After compiling the emptyds overlay, add the following to your
    slapd.conf:

    ### slapd.conf
    ...
    moduleload emptyds.la
    ...
    overlay emptyds
    ...
    # before database directive...
    # this overlay must be the last overlay in the config file to ensure that
    # requests are modified before other overlays get them.
    ...
    ### end slapd.conf

CAVEATS
    - In order to ensure that emptyds does what it needs to do, it must be
      the last overlay configured so it will run before the other overlays.

---
Copyright 2014-2026 The OpenLDAP Foundation.
Portions Copyright (C) DAASI International GmbH, Tamim Ziai.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted only as authorized by the OpenLDAP
Public License.

A copy of this license is available in file LICENSE in the
top-level directory of the distribution or, alternatively, at
http://www.OpenLDAP.org/license.html.
