Documentation ¶
Overview ¶
Package ldbbolt provides the lower-level Database functions for managing LDAP Entries in a BoltDB database. Some implementation details:
The database is currently separated in these three buckets ¶
id2entry: This bucket contains the GOB encoded ldap.Entry instances keyed by a unique 64bit ID
dn2id: This bucket is used as an index to lookup the ID of an entry by its DN. The DN is used in an normalized (case-folded) form here.
id2children: This bucket uses the entry-ids as and index and the values contain a list of the entry ids of its direct childdren
Additional buckets will likely be added in the future to create efficient search indexes
Index ¶
- Variables
- type LdbBolt
- func (bdb *LdbBolt) Close()
- func (bdb *LdbBolt) Configure(logger logrus.FieldLogger, baseDN, dbfile string, options *bolt.Options) error
- func (bdb *LdbBolt) EntryDelete(dn string) error
- func (bdb *LdbBolt) EntryModify(req *ldap.ModifyRequest) error
- func (bdb *LdbBolt) EntryModifyDN(req *ldap.ModifyDNRequest) error
- func (bdb *LdbBolt) EntryPut(e *ldap.Entry) error
- func (bdb *LdbBolt) Initialize() error
- func (bdb *LdbBolt) Search(base string, scope int) ([]*ldap.Entry, error)
- func (bdb *LdbBolt) UpdatePassword(req *ldap.PasswordModifyRequest) error
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type LdbBolt ¶
type LdbBolt struct {
// contains filtered or unexported fields
}
func (*LdbBolt) EntryDelete ¶
func (*LdbBolt) EntryModify ¶
func (*LdbBolt) EntryModifyDN ¶ added in v0.5.0
func (*LdbBolt) Initialize ¶
Initialize() opens the Database file and create the required buckets if they do not exist yet. After calling initialize the database is ready to process transactions
func (*LdbBolt) Search ¶
Performs basic LDAP searches, using the dn2id and id2children buckets to generate a list of Result entries. Currently this does strip of the non-request attribute Neither does it support LDAP filters. For now we rely on the frontent (LDAPServer) to both.