Skip to content
vanstyn edited this page Feb 2, 2013 · 36 revisions
  • Switch from Moose to lighter Moo (how to handle Types? Doesn't appear to be a seamless conversion, currently using "string" type constraints (i.e. isa => "HashRef")
  • Adopt changeset_do from DBIx::Class::Shadow -- API to allow AuditAny-aware code to be able to set datapoint values (similar conceptually to AuditLog's optional second arg to txn_do)
  • Refactor code that modifies tracked schema and result classes using Class::MOP::Class to apply a (runtime) Roles to the schema/storage objects (per frew's suggestion in IRC on 1/25/2013)
  • Add support for tracking changes made through ResultSet objects instead of Row objects. Do this by hooking into Storage insert/update/delete ?
  • Integrate with DBIx::Class::Shadow (Collector)
  • Expand Collector API to be able to define datapoints
  • Finish Multi-PK support (code already exists but is currently disabled because it hasn't been tested yet... and it will probably need tweaks )
  • Add built-in "diff" Column-context datapoint
  • Add mechanism to enable/disable tracking on the fly (localizable global?)
  • Separate set/change/column datapoints into 'pre' and 'post' stages
  • Add per-column config options (i.e. selectively track columns in the same way that sources can be selectively tracked)
  • Move a lot of the code currently in the base DBIx::Class::AuditAny into a dedicated DBIx::Class::AuditAny::Auditor class
  • Use txn_scope_guard instead of custom code to achieve the same thing it does (low)
  • Expand tests with "subtests"
  • Add option to try and detect direct calls to dbh and throw exception/warning?

Needed Test Cases

  • Tracking Rekey changes
  • Multi-PK
  • Tracking of schemas with more exotic configs like their own method modifiers
  • Update called on resultset
  • db level cascases (on_update/on_delete)
  • Multiple Auditors
  • Partial tracking (only certain actions/sources, make sure others are in fact ignored)
  • $Rs->populate
  • Calls in both LIST and SCALAR context to make sure arounds properly honor wantarray
Clone this wiki locally