...
Section | ||||||
---|---|---|---|---|---|---|
|
Simple
...
TaggableChangeLogStore Implementation
The first very basic functionality is to implement a basic loggertaggable change log without all the search capabilities. It has already been added , but some more elements need to be defined, like the way to start the logger turn versioning on and off, either via an LDAP extended request, or programmaticallywithout tracking of reverse LDIFs.
There is an existing page started by Ersin Er where you have a description of the existing ChangeLog interceptor :
Logging Subsystem
This implementation should keep things simple. Two files, forward.ldif, and reverse.ldif should be appended as changes occur. As one might suspect the forward.ldif stores in LDIF format the forward changes and is appended to at the tail of the file. The reverse.ldif file stores the reverse LDIF to revert the forward change and is appended to from the head of the file. This way a set of changes can be applied and reverted using these two files. Additional information such as the revision number, timestamp and the principalDn can be encoded within comments before the LDIF entry using implementation specific keys like the following:
No Format |
---|
# REVISION: 1234
# PRINCIPAL: uid=admin,ou=system
# TIMESTAMP: 200706202342343Z
dn: cn=jane doe,ou=users,ou=system
objectClass: top
objectClass: person
cn: jane doe
sn: doe
|
Semantics
We need to be able to start the logger, to stop it, to configure it, to select the requests, to select the users, etc. Here are a list of parameters we may want to set :
...
Parameter
...
Description
...
Mandatory
...
Logger name
...
The logger's name
...
...
Active
...
Activate or desactivate the log. Default to TRUE, and when set to FALSE, no other parameters should be given
...
Max Size
...
The maximum size of the log file
...
...
Saved Requests
...
The list of requests we want to save (AddRequest, DelRequest, for instance)
Default to ALL_REQUESTS
...
Saved Attribute
...
A list of attributes we want to store in the file. It may be associated with the
previous selection. '*' and '+' will be used for 'all users attribute' and 'all
operationnal attributes'
Default to '*'
...
Subentry
...
Define the subentry we want the logger to apply when logging. The user may want
to allow some users to log or not, or may define a set of entries which may be logged, etc.
Default to null : everything is loggable by default
...
Rotate
...
Define the way the file will be rotated : Daily, when exceeding a given size, after a certain period of time
...
Active
...
Activate or desactivate the log. Default to TRUE
...
When we have defined those parameters, we will have to describe them using ASN.1, and to implement the ExtendedOperation.