All things Audit Log camillesultana  2017-10-26 18:22
Status: Closed
 
Operating system: Windows 7
Browser: Chrome
Labkey: 17.20

Hi!

I have a couple questions regarding the Audit Log.

1. Changing logging to "detailed" for samples

I want detailed logs of changes to both dataclass and sample records. To do this I added <auditLogging>DETAILED</auditLogging> to the XML Metadata for the appropriate table within the Schema Browser.

<tables xmlns="http://labkey.org/data/xml">
  <table tableName="DataFiles" tableDbType="NOT_IN_DB">
    <auditLogging>DETAILED</auditLogging>
    <columns>
      <column columnName="DataClass">...

This has worked for the DataClass table that I did this for, and I'm now getting the "Details" link on the left of the Audit Log table --> Query Update Events. However, I have yet to be able to get this work for samples. First, I'm a little confused as it seems like each sample set table lives in two places as viewed from the Schema Browser. I see my sample set table in both exp.data.materials.built-in.... and the samples.built-in... folders. In both places I edited the xml metadata and added the DETAILED audit logging line (in same place as in the example above). However, when I then go to the Audit Log table --> Sample Set events, I can see that changes within the table are being logged "Samples inserted or updated in: LiquidMicrobiologySamples" but there is no "details" link and under "customize grid view" I don't see any additional fields that hold more "detailed" information (regarding field changed and old and new values).

2. As mentioned above I have set audit logging to DETAILED for one of my DataClass tables. When I update a record in the table I get a new row in the Audit Log --> Query Update Event table with the comment "Row was updated." and there is also a "details" link. However, on the "details" page only information for 2 fields is shown ("modified" and the field that I actually changed). This is unlike the "details" provided for modification of list records. When I modify an existing list record in the Audit Log --> List events table I see "An existing list record was modified" and following the "details" links shows me all fields for that list table record even if they weren't changed. This is very helpful because then I can figure out what field was modified within what specific record. Is there a way to emulate this behavior for DataClass tables with DETAILED audit logging? Otherwise it seems like the only way I can try to identify the actual record/row that was modified is by adding RowPk to the Audit Log --> Query Update Event table. Within the Audit log talbe, RowPk seems to be unique for each DataClass table row, but it doesn't seem to match any field in the actual DataClass table, which makes it not especially helpful.

Super appreciative of any advice you can give me.

Thanks!
Camille
 
 
jeckels responded:  2017-10-31 10:25
Hi Camille,

1. You're correct that samples will show in multiple places in the schema browser. The "samples" schema presents one table per sample set, and those tables have all of the custom fields defined by the sample set. The "exp" schema exposes the "materials" table, which is effectively a union of all of the different sample sets that are available, and shows only the built-in fields.

Unfortunately, not all tables currently support DETAILED logging, including the sample set tables. We're actively working on filling in the gaps, and expect to have better support here in 18.1.

2. RowPk should be the primary key of whatever table was being modified. The DataClass table itself will just have rows for each of the categories of data classes, not the individual data rows. The RowPk value should correspond back to the RowId value in the exp.Data table (a union of all data classes, similar to exp.material) or to the data class-specific table in the "exp.data" schema.

Thanks,
Josh
 
camillesultana responded:  2017-10-31 17:12
Thanks! I definitely look forward to more robust and detailed auto-logging.