Bug #3396
openEnable event notification feature
0%
Description
We would like to propose some changes to Metacat's event logging
feature to extend the functionality and provide a notification feature
that alerts data set owners and/or interested parties of downloads and
other events. We plan on prototyping the changes, and would like
input and suggestions from other metacat developers on the features
and implementation.
For an email notification system (or other, such as RSS) to work, it
would require a mechanism for the end user to 'subscribe' to
notifications based on events. In brainstorming this, we thought that
the subscription could be based on, perhaps, a hand chosen
notification list of packageIds by data set or data set group (e.g.
'notify me about events on: PISCO intertidal/subtidal/physical ocean/
data packages' ...). Expressing these groupings might be done via a
pathquery document or a cached query that produces a packageId list.
Suggestions are welcome on the best method to associate a data package
docid list and an email address of a person to be notified.
The information that's logged in metacat's access_log table is
sufficient for general reporting:
- registered user LDAP DN
user name
affiliated organization name
- event date/time stamp
- event type
- docid
(However, in building an email [or an RSS feed], the data package
title would be a more friendly way of displaying which package was
downloaded, etc.)
The changes to metacat would also likely a include mechanism to
register an event listener that monitors changes to the model backed
by the access_log table. For instance, a researcher might post the
following to metacat:
action=monitor&\
username=uid=rcore,o=PISCO,dc=ecoinformatics,dc=org&\
qformat=email&\
event=read&\
query=< the pathquery document that produces a package list >
By doing so, this action would register the listener, and the listener
would provide a callback used to handle the event notification. At
the moment, only metacat administrators have access to the logging
information via the getlog action.
Once someone is registered to monitor events, metacat would have to
then provide notification over specific protocols. The notification
process may be easiest if metacat includes an SMTP send-only server,
such as Aspirin, an embeddable SMTP server.
There are other push mechanisms that could be used (like RSS), but the
researchers we work with specifically asked for email-based
notification.
We'll enter a placeholder bugzilla report to keep track of this
feature, but thought that people would have suggestions on both the
design and implementation before we get started.
Please let us know what you think.
Rex, Chris, Mike, Jordan