...
1) add a filter to the repo service to record: timestamp, uri, headers, request body (need to consider it's size)?, source of the request (web client, R client, cURL) + a unique ID for the request (for the whole transaction) (Note: Java and R clients need to set user agent field to identify themselves. Something like 'user agent' could be a required parameter of the Java client methods. The identity should include the stack.)
2) at the database/DAO level: record the SQL, user, and timestamp, transaction ID
...