Storing run-time audit information

Dear Camunda community,

We are looking for an elegant way to store run-time audit trail (e.g. for SOX-compliant processes) for a process run-time meta-data (timestamps, approvers, metadata on files attached via forms, etc.). Ideally we would like to have similar interface for all the processes to store and retrieve data. We are planning to use an external reporting engine to generate audit report from the database.

We see several options to deal with this:
1/ Create an “audit trail logger” class to persist data and call this class from all the processes
2/ Similar to p. 1, but run a script
3/ Create a REST-service to keep audit trail and post audit trail data at the end of the process
4/ Use a standard variable with a predefined name (e.g. AUDIT_TRAIL) in all the processes and keep audit trail metadata inside this variable

We would appreciate your sharing of other options or ideas on the best way to approach this.

Best regards,
Ilya

Could you use the business key to store your unique id per instance and then use a history extension to send your history events into your other data source ?

Hi Stephen,

Thank you for your prompt reply. I have checked a list of community extensions (https://docs.camunda.org/manual/7.8/introduction/extensions/), but could not find a “history” one. Are you referring to something different?

At the moment we are not using business keys at all, so it wouldn’t be a problem to start assigning.

Best regards,
Ilya

I am talking about writing your own history handler.
Similar to: JSON History Provider (usecase: ElasticSearch indexing)

You could also look to use pull style where you query the rest API for your data and store the results. You could run this query on a schedule.

Hi @StephenOTT, just curious whether setting the history level to FULL also store the run time data in history?

History level set to full will always contains the current runtime state as well as previous states.

1 Like