Detailed Auditlog for modified variables by user

Dear community,

currently, I am facing a requirement in the project I am working on.
The requirement says that at any time the admin user needs to know (1) who has done (2) what action (3) with what values at what time(4).

So first, I set History Level to Full to log everything. Then, I had a look in the Cockpit history tab in Camunda Enterprise Edition and see which user has completed what task. However, I am not able to see the variables the user has changed while completing the task. Have a look at the following picture.

Now I had a look in the database. The first table I recognized was the table ACT_HI_OP_LOG . This table provides more or less the data I am able to see in the cockpit (picture). I guess the cockpit loads the data exactly from this table.

Another interesting table is ACT_HI_VARINST . In this table every modification on variables is persisted. So in this table I see my changes that were maded on my variables. However, in this table the operater is not persisted. So, I can see the variable modifications but not the actor who modified the variables.

Further interesting tables are ACT_HI_DETAIL , ACT_HI_ACTINST. In the table ACT_HI_DETAIL I can see the variables modifications, too. But I can not see the actor like in ACT_HI_VARINST.

To get the information who changed which variable, I guess, I need to connect the tables ACT_HI_VARINST and ACT_HI_OP_LOG . But again, I am facing a problem. As far as I can see, those two tables have nothing in common that is convenient for me. Both tables are referencing the execution and process instance. But each execution/process instance has multiple variable changes and lots of user operation logs. So I cannot connect the variable changes and the user operations logs by using the table execution. I can connect them when I use the process instance id and the time. But I think this is kind of ugly. For the same process instance there should be a user operation (ModifyVariable/Complete) and a new Variable Instance at the same timestamp. However, it is not the same millisecond so it is not precise. The likelihood is high that the match is correct, nevertheless there is no evidence.

I have analysed the connections but I haven’t found any connection between the operation log table and the Variable Instance table.

Can you provide me with information to solve this problem? Is it solvable at all?

Btw: We are using Camunda Cockpit/Core 7.6. I know this version is outdated. We are planning to update soon.

I apreciate all kinds of support.

1 Like

Hi philipp.hehnle

Did you find a solution. We also have a similar situation and wonder how you ended up resolving it.

Thanks
Kamesh

Unfortunately, I have not found a “clean” solution. We had to get the information directly from the database. However, this isn’t easy, too, as there are no foreign keys and the connections between the tables are not obvious. I cannot tell more than I have in my answer. At the end it was dirty solution. I am sorry that I can’t provide you with a solution.

Thank you. Apologies for the late reply.