Title 21 CFR Part 11 is the part of Title 21 of the Code of Federal Regulations that establishes the United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).

Overview

Part 11, as it is commonly called, defines the criteria under which electronic records and electronic signatures are considered trustworthy, reliable, and equivalent to paper records.

Listed below are described some security-related features available in the product:



Project Configuration

Audit Trail

Audit trails should be generated independently of the operator and include the local date and time of the actions that alter the record. They cannot overwrite the old data, and they must be stored as long as the record itself is stored.

To use the Audit Trail function, you must enable it. Go to Edit > Alarms > Groups, and click on the Settings button.


A popup display will open with many checkboxes. Besides the Enable option, you can choose which actions will be stored in the Audit Trail database. The options are as follows:


For every project update indicated above, crucial information is stored alongside the event info in the Alarm Historian database columns:



Exporting Reports

To comply with the regulation, the software must be able to export digital and physical copies of Reports.

To create or edit a report:


It is possible to add several runtime objects to a Report. Some examples are:

The Report is saved using one of the following methods:

@Report.<ReportName>.Save
// Property used to trigger the save report action

@Report.<ReportName>.SaveCommand(int Orientation)
// Orientation = 0 or blank -- Portrait Mode
// Orientation = 1 -- Landscape Mode
// saves the selected report into the path indicated by the SaveFileName property


Security

User Permissions

Under Security > Permissions, it is possible to allow/disallow a user to edit different project tabs in the Engineering Environment. The available options are shown in the image below.


It is also possible to allow/disallow a user to perform different actions during Runtime.


To apply a created permission to a user, go to Security > Users (Permissions Columns), and select the desired option.


2.3.1 User Policies

Under Security > Policies, there are three main configuration columns that can be important for CFR 11 compliance.



To apply a created session configuration to a User, go to Security > Users (Policies Columns), and select the desired option.

Runtime Users 

This is a type of user that exists only during an application's Runtime period. The user can be created during the Engineering process (in Security > RuntimeUsers) or during runtime (via code).

Below you can find more details regarding the available RuntimeUser methods in the Security namespace.

@Security.NewRuntimeUser(string name, out int errorCode)
// Creates a new RuntimeUser
//  name:  User  Name
// errorCode: Error code (output)
// Returns: String containing the error message (if error) or empty (if not error)

@Security.AddRuntimeUser(string name, string permissionsStr, string password, string passwordHint, string policyStr, string profilePhone, string profileCompleteName, bool oneTimePassword)
// Add Runtime User
//  name:  User  Name
// permissions Str: Permissions
// password: Password
// passwordHint: Password hint
// policyStr: Policy
// profileEmail: Profile email
// profilePhone: Profile phone
// profileCompleteName: Profile complete name
// oneTimePassword: flag (true or false) to set a One Time Password setting. If true, a password change is required after first login
// Returns: String containing error message (if error) or empty (if not error)


The RuntimeUsers are stored in its own database found at Databases > DBs.


Windows Authentication

To use Windows Authentication, select the checkbox ‘Use only Windows Authentication’ in Run > Startup and configure which port will be used for authentication in PortWA.


In this case, you will use the configured users for the Active Directory login. If the windows OS has the same name that was created in Security > Permission, the application will use the permissions configured for this user. Otherwise, it will use the permissions for the Guest user.