# Ignition Audit trail

**URL:** <https://forum.inductiveautomation.com/t/ignition-audit-trail/63962>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [September 12, 2022, 10:18am UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962 "2022-09-12T10:18:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrey\_Makeev](https://avatars.discourse-cdn.com/v4/letter/a/7ba0ec/32.png) [@Andrey\_Makeev](https://forum.inductiveautomation.com/u/Andrey_Makeev)\
**Post date:** [September 12, 2022, 10:18am UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/1 "2022-09-12T10:18:42Z")

</div>

Hello,

We are building application in Ignition Perspective 8.1 for Pharm Industry.

One of the regulation demands is Audit trail with current value, previous value and reason of change.  
Another demand is to have user access log. User access log will log the user log in/out activity, invalid passwords and etc.

How can it be done?

If you have something prepared module for this this demand?

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [September 12, 2022, 1:51pm UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/2 "2022-09-12T13:51:12Z")

</div>

One starting point would be evaluating our [Audit Log and Profiles](https://docs.inductiveautomation.com/display/DOC81/Audit+Log+and+Profiles) functionality…

---

<div class="post-metadata">

**Author:** ![Aiasa21](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Aiasa21](https://forum.inductiveautomation.com/u/Aiasa21)\
**Post date:** [September 12, 2022, 8:11pm UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/3 "2022-09-12T20:11:39Z")

</div>

I’m interested in this too, I’m using the Audit Log but I wonder how to manage the previous value.  
Any help about this?

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [September 12, 2022, 8:13pm UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/4 "2022-09-12T20:13:22Z")

</div>

Have a look at this [21 CFR Part 11 Compliance with Inductive Automation’s Ignition Platform | Inductive Automation](https://inductiveautomation.com/resources/article/21-cfr-part-11-compliance-with-inductive-automations-ignition-platform)

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [September 13, 2022, 1:28am UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/5 "2022-09-13T01:28:01Z")

</div>

Previous value is currently not recorded which is a major issue for these types of industries, and just a pain for other industries. I have a feature request for this here which would be "super simple to add" (edit: I note my ignorance here now and that this was indeed not particularly easy with the existing framework, which was rewritten for 8.3 to support and include this) :

> **[Add "PreviousValue" field to Audit Log table | Ignition Features and Ideas |...](https://ideas.inductiveautomation.com/ignition-features-and-ideas/p/add-previousvalue-field-to-audit-log-table)**
>
> Especially for tag writes, it's important to know what the previous value was when looking in the audit log. Currently, this isn't possible to see without some

There's really no workaround for this at the moment that I would consider bullet-proof if you're using bi-directionally bound numeric display components. You could technically create your own View template and not use bi-directional bindings, which would handle the writing of the value as well as inserting of the audit log record, but in this case you would end of with 2 records in the audit log, one with previous value and one without

"Reason of change" would be far more difficult to add generically, and would mostly likely need to be done by the integrator to implement that functionality.

---

<div class="post-metadata">

**Author:** ![Aiasa21](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Aiasa21](https://forum.inductiveautomation.com/u/Aiasa21)\
**Post date:** [September 13, 2022, 8:02am UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/6 "2022-09-13T08:02:12Z")

</div>

Yes, this is a big issue because now what I do is enable history for the setpoint tags (thousands) so I can show in the chart the previous values and how they have been changed. Obviously this is a waste of space of database and a lot of work for a simple things that could be done automaticly in the audit events.

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [September 13, 2022, 9:33am UTC](https://forum.inductiveautomation.com/t/ignition-audit-trail/63962/7 "2022-09-13T09:33:12Z")

</div>

Hi @nminchin,  
You're almost right (custom view/template) except that you can update a field. That's what I was pointing in this doc:

> A common example of extending the Ignition audit trail is recording when a user has changed the value of a setpoint from an HMI. For this action, a text input component would be configured within a template. Using event handlers on this component, a script is utilized to detect when the value of the text field is changed. When the value is changed, a query is executed to insert an entry into the audit database table. All fields can be filled in to match built-in audit events, including the current user, current host name, and timestamp. In this example, the “action” field can be populated as “setpoint change”, and the “value” field can be populated with the old and new values for the setpoint. With this configuration completed inside a template, it can be reused throughout the project without extra configuration or testing.

See § audit trail: [21 CFR Part 11 Compliance with Inductive Automation’s Ignition Platform | Inductive Automation](https://inductiveautomation.com/resources/article/21-cfr-part-11-compliance-with-inductive-automations-ignition-platform#audit-trail)

But I'm sure that IA will fulfill this request. Maybe something for the [ideas.inductiveautomaiton.com](http://ideas.inductiveautomaiton.com) portal...
