source: design/tools/audit-trail.txt @ 5bb1780

space-accessstablestagetest-hooks
Last change on this file since 5bb1780 was 5bb1780, checked in by Alex Dehnert <adehnert@…>, 14 years ago

More about fullhistory

  • Property mode set to 100644
File size: 2.6 KB
Line 
1One feature that we want the new database to include is storing at least an audit trail of changes, so that we can tell who changed a group's entry (or added a signatory) and when. Ideally, we'd want to store complete old versions.
2
3Ideally, we'd use some third-party system to do this, instead of implementing it ourselves. Some projects that try to provide this functionality:
4* django-revisions (sometimes known as django-versions)
5    * http://stdbrouw.github.com/django-revisions/
6    * License: Berkeley 2-clause (?)
7    * Activity and sustainability
8        * First commit August 2010
9        * Last commit March 2011
10    * Somewhat limited documentation
11    * Design
12        * Store every version in the table with the model
13        * Provide accessors for getting the most recent version
14    * Appears not to support linking to a "bundle" (an object, not a version) --- see https://github.com/stdbrouw/django-revisions/issues/5
15    * Performance may be an issue --- https://github.com/stdbrouw/django-revisions/issues/9
16        * "Single table" model seems dubious
17    * It's not immediately clear to me how to make the admin also save the old version
18* AuditTrail
19    * http://code.djangoproject.com/wiki/AuditTrail
20    * License: none specified
21    * Activity and sustainability
22        * First "commit" August 2007
23        * Last "commit" August 2010
24        * Never had anything resembling a website or a source code repo, AFAICT
25    * Very limited documentation --- just the one page on Django's wiki
26    * Design
27        * Store versions in a shadow table per-model
28* django-fullhistory
29    * Listed under "Models, database, history, trails" on http://code.djangoproject.com/wiki/DjangoResources
30    * License: GPLv2
31    * Activitiy and sustainability
32        * First commit August 2008
33        * Last commit January 2010
34    * Design
35        * Store all versions of all models in a single table, JSON'd
36        * Metadata stored unpickled
37            * Time
38            * Editor
39            * Some other stuff
40* django-reversion
41    * https://github.com/etianen/django-reversion
42    * License: Berkeley 3-clause
43    * Activity and sustainability
44        * First commit September 2008
45        * Last commit April 2011
46    * Decent-looking documentation
47    * Design
48        * Store all versions of all models in a single table, pickled
49        * Metadata stored unpickled
50            * Time
51            * Editor
52            * Comment
53    * Performance
54        * Slightly concerned that the "here are the changes that have been made" view might be too slow; as long as we limit to editor and time this should be fine
Note: See TracBrowser for help on using the repository browser.