collective / collective.fingerpointing

Keep track of different events and write them down to an audit log.
https://pypi.org/project/collective.fingerpointing/
5 stars 5 forks source link

Improve audit log format #10

Open hvelarde opened 8 years ago

hvelarde commented 8 years ago

AFAIK, there is no such thing as a standard audit log format but a lot of different "standards".

Anyway I found one of those standards interesting and this is the information it requests:

Audit Log Content Requirement Currently Implemented?
Timestamp yes
User ID yes
Source IP address or application yes
Application or service accessed ?
Resource page name yes
Module/Function accessed ?
Action performed (Read/Update/Create/Delete) yes
Primary Record Identifier (Consistent) ?
Data field accessed/updated (contains the previous and current value) partial

I would like to review the format.

CC @gbastien @pcdummy

frisi commented 8 years ago

good idea @hvelarde

maybe we can also learn from collective.auditlog or pair up with the devs (@rain2o and @vangheem ) if they know about any standard that should be met.

their model: https://github.com/collective/collective.auditlog/blob/master/collective/auditlog/models.py

    id = primary key (mayby primary record identifier in your table above)
    user = user name
    performed_on = timestamp
    uid = object's uid
    type = object's portal type
    title = object's title
    path = object's path (getPhysicalPath)
    site_name = host name of the request
    action = removed/added/moved/renamed/modified/workflow/copied/checked-in/checked-out(plone.app.iterate)
    field = formgen field (?not sure about this one)
    working_copy = (plone.app.iterate copy physical path)
    info = additional info depdending on action. (i.e. for a reneame, the previous id)

(information taken from https://github.com/collective/collective.auditlog/blob/master/collective/auditlog/action.py)

i also heard from @pilz that they plan to implement an auditlog (much more heavy-weight than this one) for the quaive project to meet some iso standard. maybe they can share some knowledge about a good standard to follow?