Audit History (CO-42)

[CO-95] Table-level point in time audit Created: 22/Feb/11  Updated: 22/Jul/15  Resolved: 22/Jul/15

Status: Resolved
Project: COmanage
Component/s: Registry
Affects Version/s: None
Fix Version/s: COmanage Registry 0.9.4 (EEP4)

Type: Sub-task Priority: Major
Reporter: Benn Oshrin (internet2.edu) Assignee: Benn Oshrin (internet2.edu)
Resolution: Completed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
has dependent CO-1105 Changelog "Time Machine" Open
Related
is related to CO-994 Improve Handling of Archived CO Petit... Resolved
is related to CO-1082 Intercept "Edit" of Deleted Items Open
is related to CO-1083 Improve ChangelogBehavior beforeFind Open
is related to CO-149 Delete should become expire/invalidate Open
is related to CO-339 Historic Membership Report Open
is related to CO-1015 Refactor Suspend/Delete Open
is related to CO-195 Evaluate Use of Containable Behavior Resolved

 Description   

See Model->logTransactions (seems to be mostly undocumented)



 Comments   
Comment by benno [ 19/Mar/11 ]

Note that dynamic extended attribute tables (CO-34) are dropped if all extended attributes are removed.

Comment by benno [ 06/Dec/11 ]

To Scott to find a Cake 2 way to do this.

Comment by benno [ 18/May/12 ]

One (old) approach is described here: http://bakery.cakephp.org/articles/alkemann/2008/10/21/logablebehavior

Comment by benno [ 01/Oct/12 ]

See also (relatedly) https://github.com/dereuromark/tools/blob/2.0/Model/Behavior/WhoDidItBehavior.php

Comment by benno [ 20/Feb/14 ]

Following CO-766, need to determine what to do when a person is expunged.

Comment by benno [ 09/Dec/14 ]

See also: Event Sourcing

Comment by benno [ 12/May/15 ]

ChangelogBehavior being implemented for CO-994 will be capable of doing this. Note that if enabled for all models it will be possible to set the entire registry into a time machine like read-only view of an earlier state. "Registry State as of 6/1 at 12:00."

Will probably want ChangelogBehavior::beforeFind() to support something like $query['asOf'] (and add suitable index(es) to changelog enabled Models).

Comment by benno [ 20/May/15 ]

A basic changelog View Element was added as part of CO-994, but should be enhanced:

  • Included only when the user has appropriate privs. (Is "view" sufficient? Should a user be able to see their own address history?)
  • Render actor_identifier by PrimaryName (of Org Identity?)
  • Link to prior/subsequent version, and/or full record history
Comment by benno [ 21/May/15 ]

ChangelogBehavior also offers the possibility of "undelete".

Comment by benno [ 22/May/15 ]

We need to think about where "soft" vs "hard" delete should be offered, functionally. For example, deleting a CO might be a "hard" delete (vs setting the CO to "suspended"). Expunging a CO Person might also be a "hard" delete, or maybe it should be a two step operation (like emptying the trash... expunge person followed by "purge deleted records").

The UI should also provide hints as needed. "Are you sure you want to delete? This operation cannot be undone."

Note StandardController and ChangelogBehavior support passing a "hard delete" hint.

Comment by benno [ 24/May/15 ]

Initial version of ChangelogBehavior added in 5b162ac081 for CO-994.

Comment by benno [ 22/Jul/15 ]

This ticket will be considered resolved with v0.9.4 Changelog functionality. Future enhancements moved to other tickets (CO-1099, CO-1103, CO-1104, CO-1105, CO-1106, CO-1107, CO-1108, CO-1109, CO-1110).

Generated at Fri Apr 26 16:22:09 UTC 2024 using Jira 9.4.18#940018-sha1:32a59db0b032756f9bbd6a22c656d21edb3fb41f.