Download Reportworq

This is the archived documentation for Reportworq 5. It is kept for reference and is no longer updated.

Go to the Reportworq 6 documentation

Audit Logs#

Overview#

ReportWORQ provides two distinct audit logging systems that together give administrators full visibility into both system-level activity and job execution history:

Both logs are accessible from the Administration → Audit Logs screen and are governed by configurable retention policies.


Enabling and Configuring Audit Logs#

Audit logging is controlled from Administration → Configuration → Logging.

SettingDescription
Enable Audit LoggingTurns the System Audit Log on or off. When disabled no system-level audit entries are written.
Log Retention (Audit)The number of days to keep System Audit Log files. Set to 0 to retain files indefinitely. Files older than the retention threshold are automatically purged.
Enable Job History Audit LoggingTurns the Job Audit Log on or off. When disabled no job history JSON files are written.
Log Retention (Job History)The number of days to keep Job History Audit Log files. Set to 0 to retain files indefinitely.

Retention is enforced at the file creation date. A value of 1 day means that any file created before today is eligible for deletion.


Audit Log Viewer Screen#

Both log types are accessible from a single screen:

  1. Navigate to Administration → Audit Logs.
  2. Use the log selector drop-down in the toolbar to switch between available log files. Files are grouped into two categories:
  1. Click Refresh to reload the currently selected log.
  2. Click Documentation… to open the online help for this screen.

System Audit Log#

Purpose#

The System Audit Log captures administrative and operational events across the ReportWORQ application. It is the authoritative record for compliance, troubleshooting, and change management.

UI — Grid Columns#

When a System Audit file is selected the viewer displays a sortable, filterable tree-list with the following columns:

ColumnDescription
SourceThe machine name and application component that generated the entry (e.g., SERVER01 - Web App).
TimestampDate and time the entry was recorded.
CategoryThe functional area associated with the entry (see Object Categories below).
UserThe identity of the user whose action triggered the entry. System-initiated actions are recorded as **SYSTEM**.
Object TypeA more specific type descriptor within the category (e.g., the type name of the object that was modified).
Object NameThe name of the specific object that was acted upon.
FileThe filename, if any, associated with the change.
ModificationsA comma-separated list of property names that were changed, when applicable.
DescriptionThe human-readable message describing the action.

Detail Sidebar#

Clicking the ⓘ (View Details) button on any row opens a sidebar panel with the full audit record:

Entry Types#

Every system audit entry has a Type that indicates the nature of the action:

TypeLogged ByDescription
INFORMATIONLogMessage()General informational event, e.g., application start.
WARNINGLogWarning()A non-fatal condition worth noting.
ERRORLogError()An error condition, including the exception details.
CREATELogAddition()A new object was created.
UPDATELogChange()An existing object was modified; includes before/after values.
DELETELogDeletion()An object was deleted; includes the previous value.

Object Categories#

The Category field on every entry comes from the ObjectCategoryEnum and indicates the functional area of the system that generated the event:

ValueDescription
InformationalApplication start/stop events and software update notifications.
LicensingLicense validation and management events.
SecurityUser management, sign-in activity, and permission changes.
SettingsChanges to application settings, datasource connections, providers, and distributors.
BuiltInReportProviderFile and folder changes within the built-in report provider (e.g., uploads, renames, deletes).
SchedulingSchedule creation, modification, deletion, and trigger events.
JobsJob authoring events such as create, update, or delete of job definitions.
ContactsAddress book / contacts management.
GlobalVariablesGlobal variable create, update, and delete events.
JobHistoryJob history-related activities such as retention purges.
WritebackContribution writeback activity.
MessageTemplatesMessage template create, update, and delete events.
ReportDataModelsReport data model changes.
ReportModelsReport model changes.
DataModelsData model changes.
ReportSpecsReport specification changes.

Environment Context#

Every audit entry captures the environment from which it originated:

FieldDescription
MachineNameThe hostname of the server that generated the entry.
ApplicationThe ReportWORQ application component (Web App, Job Runner, Staff Console, Load Balancer).
HostingTypeThe deployment model (OnPrem, SingleTenantCloud, MultiTenantCloud).
ApplicationIdentityThe OS-level service account identity of the running process.

Job Audit Log#

Purpose#

The Job Audit Log records the full outcome of every job execution. It has two uses:

  1. UI review — administrators can inspect execution history, timing, parameter overrides, and per-runtime-job results directly in the Audit Log viewer.
  2. Systems integration — each execution is written as a standalone, machine-readable JSON file designed to be consumed by external systems such as data warehouses, monitoring tools, or automation pipelines.

UI — Grid Columns#

When a Job History file is selected the viewer displays a sortable, filterable grid with the following columns:

ColumnDescription
NameThe name of the job that was executed.
StatusThe final execution status (e.g., Success, Failure).
Execution IDA globally unique identifier for the execution instance.
Start TimeThe date and time the execution began.
End TimeThe date and time the execution completed.
Elapsed TimeTotal execution duration in hh:mm:ss format.
Parameter OverridesA comma-separated list of parameter names and values that were overridden at runtime.
RuntimeJob CountThe number of individual runtime jobs spawned during the execution.
Runtime Job NamesA comma-separated list of the runtime job names.

Each row can be expanded to reveal a nested grid of runtime jobs showing their individual Name, Status, Elapsed Time, and Parameters.

Detail Sidebar#

Clicking the ⓘ (View Details) button on any row opens a sidebar panel with the full job execution record:


Job Audit Log Folder (Systems Integration)#

Storage Location#

Job History Audit Log files are stored in the following folder on the ReportWORQ server:

{ReportWORQ Repository Path}/JobHistoryAuditLog/

File Format#

Each job execution produces a single JSON file named after the execution ID:

{ExecutionId}.json

For example: a3f5c812-9b2d-4e71-bf30-1234abcd5678.json

Files are written once when the execution completes and are not modified afterwards, making them safe to consume by file-watching integrations.

JSON Schema#

Each file contains a single JSON object that matches the following schema:

{
  "ExecutionId":        "string   — globally unique identifier for the execution (UUID format)",
  "Name":              "string   — name of the job that was executed",
  "Status":            "string   — final execution status (e.g. 'Success', 'Failure')",
  "StartTime":         "string?  — ISO 8601 datetime when execution started, or null",
  "EndTime":           "string?  — ISO 8601 datetime when execution ended, or null",
  "ElapsedTime":       "string   — total duration in hh:mm:ss.fffffff format",
  "ParameterOverrides": [
    {
      "Name":  "string — parameter name",
      "Value": "string — overridden parameter value"
    }
  ],
  "RuntimeJobCount":   "integer  — number of runtime jobs spawned",
  "RuntimeJobs": [
    {
      "Name":           "string  — name of the runtime job (typically the report name)",
      "Status":         "string  — status of this individual runtime job",
      "OutputFileName": "string  — filename of the generated output file, if any",
      "StartTime":      "string? — ISO 8601 datetime, or null",
      "EndTime":        "string? — ISO 8601 datetime, or null",
      "ElapsedTime":    "string  — duration in hh:mm:ss.fffffff format",
      "Parameters": [
        {
          "Name":   "string   — parameter name",
          "Values": ["string"] "— list of parameter values applied to this runtime job"
        }
      ]
    }
  ],
  "MachineName":        "string  — hostname of the server that ran the job",
  "ApplicationIdentity":"string  — OS-level service account identity of the running process",
  "WorkspaceId":        "string  — identifier of the workspace in which the job resides",
  "WorkspaceName":      "string  — display name of the workspace"
}

Example JSON Entry#

{
  "ExecutionId": "a3f5c812-9b2d-4e71-bf30-1234abcd5678",
  "Name": "Monthly Revenue Report",
  "Status": "Success",
  "StartTime": "2025-06-01T08:00:05.123Z",
  "EndTime": "2025-06-01T08:02:47.456Z",
  "ElapsedTime": "00:02:42.3330000",
  "ParameterOverrides": [
    { "Name": "Region", "Value": "EMEA" }
  ],
  "RuntimeJobCount": 3,
  "RuntimeJobs": [
    {
      "Name": "Revenue_EMEA_Q1",
      "Status": "Success",
      "OutputFileName": "Revenue_EMEA_Q1.xlsx",
      "StartTime": "2025-06-01T08:00:06.000Z",
      "EndTime": "2025-06-01T08:01:10.000Z",
      "ElapsedTime": "00:01:04.0000000",
      "Parameters": [
        { "Name": "Quarter", "Values": ["Q1"] },
        { "Name": "Region",  "Values": ["EMEA"] }
      ]
    },
    {
      "Name": "Revenue_EMEA_Q2",
      "Status": "Success",
      "OutputFileName": "Revenue_EMEA_Q2.xlsx",
      "StartTime": "2025-06-01T08:01:11.000Z",
      "EndTime": "2025-06-01T08:02:00.000Z",
      "ElapsedTime": "00:00:49.0000000",
      "Parameters": [
        { "Name": "Quarter", "Values": ["Q2"] },
        { "Name": "Region",  "Values": ["EMEA"] }
      ]
    },
    {
      "Name": "Revenue_EMEA_Q3",
      "Status": "Success",
      "OutputFileName": "Revenue_EMEA_Q3.xlsx",
      "StartTime": "2025-06-01T08:02:01.000Z",
      "EndTime": "2025-06-01T08:02:47.000Z",
      "ElapsedTime": "00:00:46.0000000",
      "Parameters": [
        { "Name": "Quarter", "Values": ["Q3"] },
        { "Name": "Region",  "Values": ["EMEA"] }
      ]
    }
  ],
  "MachineName": "RWSERVER01",
  "ApplicationIdentity": "DOMAIN\\reportworq-svc",
  "WorkspaceId": "ws-001",
  "WorkspaceName": "Finance"
}

Integration Notes#


Summary#

FeatureSystem Audit LogJob Audit Log
Primary useChange tracking, compliance, security auditingJob execution history, integration, reporting
Storage location{Repo}/AuditLog/ (managed by Serilog){Repo}/JobHistoryAuditLog/{executionId}.json
File formatSerilog structured logOne JSON file per execution
Enabled viaEnable Audit Logging settingEnable Job History Audit Logging setting
Retention settingAudit Log Retention (days)Job History Audit Log Retention (days)
Detail sidebarObject, user, trace, before/after diffs, downloadJob name, execution ID, parameter overrides, runtime jobs, download

Feedback on this page

Comments, questions, requests, or something missing or unclear? Email us - the page you are on is filled in for you.

Email feedback on this page

Or write to support@reportworq.com directly.