- changed title to Add central log for auditing
Add central log for auditing
Add a central log updated when high level actions happen. For instance
- user join group
- user leave group
- submit
- accept/reject
- ...
Comments (6)
-
reporter -
I will make this my pet project in my fork: https://bitbucket.org/bvd/fire-fork
-
That's cool! I would like to help.
-
reporter -
assigned issue to
-
assigned issue to
-
reporter I'll try to implement this but I'd like to get some feedback on how to do it.
Model
I see a log entry as having 3 parts:
- The user who performs the action (an optional user id)
- The action performed (a mandatory string)
- Parameters for the action (a dictionary with submission id, group number, etc)
Actions
Here are the actions that should be logged:
- upload, remove file
- submit, withdraw
- join, leave group
- assign, accept, reject submission
Examples
student@chalmers.se upload {lab:2, file:foo.hs} s@c.s submit {submission: 42} s@c.s withdraw {submission: 42} grader@c.s accept {submission:42} g@c.s reject {submission:42} g@c.s assign {submission:42, grader:teacher@c.s}
Storage
Where to record event. I see three possibilities:
- a file
- the course sqlite database
- a central database (e.g. elasticsearch)
The first one is the simplest so my plan is to do only the first one for now (i.e. save into a file) but using a publish/subscribe architecture to make it easy to add other backends in the future. (With the event system in pyramid)
Using the database would make it easier to create a web interface to browse the audit log, with basic filtering (e.g. show only one kind of events, or event for a particular user, etc.)
The last one require more work to set-up and configure the central log but then we could do cool stuff like a real-time dashboard of what's happening across all fire instances .
Any comments?
-
reporter - removed responsible
- Log in to comment