-
Notifications
You must be signed in to change notification settings - Fork 1
TODO
vanstyn edited this page Feb 17, 2013
·
36 revisions
- 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 totxn_do
) - 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 with well-defined collection times
- 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
- Expand tests with "subtests"
- Add option to try and detect direct calls to dbh and throw exception/warning?
- Track select option? (i.e. track reads/queries in addition to writes)
- New built-in datapoint: 'sql' (the actual sql statement used)
- Properly handle special insert_bulk case
- 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")
- Proper handling for txn with nesting (txn_begin/txn_commit/txn_rollback/txn_do)
- Add support for tracking changes made through ResultSet objects instead of Row objects. Do this by hooking into Storage insert/update/delete ? (done except special insert_bulk case)
- 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) - done except for legacy init/snapshot mode which still needs decisions made for how it will work
- Refactor hook/flows to support pre/post designs (done, but not utilized yet)
- Tracking Rekey changes
- Multi-PK
- No PK
- Tracking of schemas with more exotic configs like their own method modifiers
- 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
- Test for each and every built-in datapoint
- init/snapshot functionality - ability to populate current values of an existing DB to the collector, special action named 'select'. This is a special active operation as apposed to normal passive operation that relies on changes.
- Changes both inside and outside txn_do as well as nested txn_do
- ditto for 'changeset_do' (once that feature is implemented)
- Database-side default column values (of tracked schema)
- inflated columns
- exception handling - generated by either the DB or code itself (i.e. test proper try/catch logic and rethrow)
- Testing timestamps and time_zones
- DBIC/AutoDBIC collectors: different combinations and distributions of tables for storage (only 1 table, only 2 tables, etc)
- Update called on resultset