Audit log
The Daisy repository server produces a JMS event for each (persistent) change that happens in the repository server. Examples include: creation/update/deletion of: documents, users, ACL, and any other entity. These JMS events are used for things like triggering update of the fulltext index, sending notification mails and clearing remote caches.
It would be useful to have a JMS listener that simply stores all the events in a database table, so that it is possible to browse sequentially the changes that have been happening in the repository, hence providing the functionality of an audit log.
The JMS events produced by Daisy have as data a “type” attribute identifying the type of change, and an XML payload, typically containing XML representations of the entity before and after update.
So this project would include:
-
addition of an extension component to the Daisy repository server which listens (using a durable JMS subscription) to the JMS events and inserts them in a database. For easy searching, certain data from the JMS event could be extracted and inserted in database columns. For example, the document and user the event is related to (if any).
-
addition of a GUI screen to the Daisy Wiki to browse/search this database table (= the audit log)
-
maybe some automated cleanup procedure to remove records from the log older than a certain date or once the log size gets bigger than a certain amount of records.
The basics of this are quite simple, however some time will go into learning how to fit things into Daisy:
- adding an extension component to the repository server
- remote communication (HTTP+XML) between the Daisy Wiki and repository server
- the Apache Cocoon framework on which the Daisy Wiki is build (knowing you XML and XSLT basics will help a lot)
The student should have a good basic knowledge of Java, the web, XML and preferably XSLT. JMS can be picked up quite easily. Having used JDBC before is a plus. Learning all the Daisy specifics is part of the project.
Before submitting a proposal, please also try to compile Daisy from source (in case of problems, you can ask on the mailing list for help).



There are no comments.