Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/juescoryisus/QualityDocD/llms.txt

Use this file to discover all available pages before exploring further.

QualityDocD’s reporting module gives quality managers a cross-system view of document compliance and a complete audit trail of every action taken in the system. Reports are available through the .NET application’s Reports section and, for audit logs, through the PHP portal’s dedicated audit page. All report endpoints require at minimum the Reviewer role; the raw MongoDB export is restricted to Admin only.
All routes under /Reports are protected by [Authorize(Roles = "Admin,Manager,Reviewer")]. Users with only the Viewer role cannot access any report page. The MongoDB JSON export endpoint (/Reports/MongoJson) additionally requires the Admin role.

Accessing reports

1

Sign in with a qualifying role

Log in to the .NET application with an account that has the Admin, Manager, or Reviewer role. The Reports section is not visible to Viewer accounts.
2

Navigate to the Reports section

In the navigation bar, click Reports. The section contains three sub-pages: Compliance, Audit, and Search.
3

Select the desired report

Choose one of the four report types described below. Each is available at a distinct URL and accepts its own filter parameters.

Report types

Compliance Report

GET /Reports/Compliance?dateFrom={date}&dateTo={date}
The compliance report groups all documents by Category and Standard, then counts how many documents in each group fall into each status bucket. An optional date range filter (dateFrom, dateTo) can be applied to scope the results. ComplianceRow fields:
FieldTypeDescription
CategorystringThe document category (e.g., Manual, Procedure).
StandardstringThe quality standard or regulation (e.g., ISO 9001).
ApprovedintCount of documents with status Approved.
DraftintCount of documents with status Draft.
UnderReviewintCombined count of UnderReview and UnderSecondReview documents.
ObsoleteintCombined count of Obsolete and Rejected documents.
TotalintTotal documents in the group.
LastApprovedDateTime?The most recent ApprovedAt date in the group, or null if none have been approved.
The report page also shows aggregate totals: Total Approved (sum of all Approved counts) and Total Documents (sum of all Total counts).

Audit Report

GET /Reports/Audit?page={page}&pageSize={pageSize}
The audit report presents a paginated list of all AuditLog entries recorded by the .NET application, ordered by timestamp descending. The default page size is 25; the maximum is 100.
The audit report reads from the SQL Server AuditLogs table. The PHP portal’s audit.php page reads from the PostgreSQL audit_entries table, which is a parallel copy kept in sync by the .NET application’s SyncPgAuditAsync method. Both sources contain the same logical data.
AuditReportRow fields:
FieldTypeDescription
ActionstringThe type of event that occurred. See Logged actions below.
DocumentCodestringThe QD-XXXX code of the affected document.
DocumentTitlestringThe title of the affected document at the time of the event.
Usernamestring?The username of the user who triggered the event, or null for system actions.
OldValuestring?The previous value (e.g., previous status). Null for creation events.
NewValuestring?The new value (e.g., new status).
IpAddressstring?The remote IP address of the request.
CreatedAtDateTimeUTC timestamp of the event.

Logged actions

ActionWhen it is recorded
CreatedA new document is saved for the first time.
UpdatedA document’s metadata or file is edited.
StatusChangeThe document moves from one status to another (e.g., DraftUnderReview, or UnderReviewApproved).
ApprovalReviewedA reviewer approves their individual entry but the overall document has not yet reached Approved (i.e., other reviewers are still pending).
DownloadedA user downloads the document’s attached file.

Search Report

GET /Reports/Search?q={query}&category={category}&status={status}
An ad-hoc full-text search interface. The Search Report calls the Search Service first and falls back to SQL Server if the service is unavailable. Results are shown as document cards with code, title, category, standard, tags, and a link to the document detail page. See the Search guide for a full description of how the search engine works.

MongoDB Raw Export (Admin only)

GET /Reports/MongoJson
Displays all documents in the MongoDB document_metadata collection as pretty-printed JSON in the browser. Requires the Admin role. To download the export as a file, use the raw download endpoint:
GET /Reports/MongoJson/raw
This returns a application/json file named mongodb-metadata-{YYYYMMDD-HHmm}.json containing all document_metadata documents serialized with camelCase property names.
The MongoDB export contains metadata for all documents regardless of status or visibility settings. Treat downloaded files as sensitive and do not share them outside your organization.

PHP portal audit page

The PHP portal’s audit.php page reads directly from the PostgreSQL audit_entries table (qualitydoc_audit database). It provides the same information as the .NET Audit Report with the addition of module-level filtering. Fields displayed:
FieldSource column
Timestampcreated_at / CreatedAt
Actionaction / Action
Document codedocument_code / DocumentCode
Document titledocument_title / DocumentTitle
Usernameusername / Username
Old valueold_value / OldValue
New valuenew_value / NewValue
IP addressip_address / IpAddress
The portal page supports filtering by action type, username (partial match), module (MODULE_1, MODULE_2, MODULE_3), and date. It paginates at 15 records per page. Users with the OPERATOR role or higher can export the filtered results as a CSV file. Module classification used by the portal:
ModuleLabelActions grouped
MODULE_1GestiónCreated, Updated, StatusChanged, Approved, Rejected, ApprovalAdded, ApprovalReviewed
MODULE_2ConsultaDownloaded, Viewed
MODULE_3Búsq. AvanzadaSearched, AdvancedSearch
Access to audit.php requires MODULE_1 access (requireModule('MODULE_1')), which corresponds to the OPERATOR, COMPANY_ADMIN, or SUPER_ADMIN role in the PHP portal’s role system.

Build docs developers (and LLMs) love