# 3. Violation Reports

**Violation Reports** generally refer to compliance or policy violations that an automated scanner identifies. For instance, a daily script might check your codebase or server configurations and log any suspicious results:

1. **NPM**: Could be scanning for vulnerable dependencies in a Node.js project.
2. **SERVER\_SCAN**: Might check server configurations, open ports, or outdated libraries.
3. **SYNC**: Another custom tool or integration that reports code or config discrepancies.

<p class="callout info">Once a violation is “found,” security engineers review it, assign it a State (e.g., “In progress”), and, after investigation, mark it “Resolved” or “Not processed” if it’s a false positive or low priority.</p>

##### Use Cases 

**\#1. Updating Vulnerable Dependencies** A daily NPM scan detects outdated packages in a Node.js project. Engineers mark the report as "In progress", update the dependencies, and resolve the issue.

**\#2. Server Configuration Errors** A SERVER\_SCAN identifies open ports. The IT team secures the ports and marks the violation as "Resolved".

**\#3. Sync Discrepancies** A SYNC scan flags code inconsistencies after deployment. Developers review the logs, sync configurations, and close the report.

**\#4. False Positives Management** An automated scan reports a minor issue. The security team reviews the report and marks it as "Not processed" if deemed harmless.

##### Typical Workflow

**1. Daily/Periodic Scans** A security scanner (via API integration, not by default) runs on a server or code repository on a set schedule, reporting:  
"notFound" – No issues detected.  
"found" – Issues identified for review.

**2. Report Creation** The system automatically creates a Violation Report entry, or a security engineer manually logs it.  
Fields include:  
**Server name**: Which server was scanned.  
**Tool**: Name of the scanning tool (e.g., NPM, SERVER\_SCAN, SYNC).  
**Result**: Was a violation discovered (found) or not?  
**State**: Whether the issue is “Not processed,” “In progress,” or “Resolved.”  
**Project**: Which project or environment the server is linked to.  
**Created at/Updated at**: Timestamps for when the record was created or last updated.  
**Description**: Any extra details or logs from the scan.

**3. Engineer Review** A security engineer checks the new violations.  
If the issue needs action, they mark it as “In progress.”

<p class="callout info">Once it’s handled or deemed harmless, they set State to “Processed” (or a similar status).</p>

##### Table View

Use **Table** view for a spreadsheet-style overview, sortable and filterable by any column. By default, you’ll see:

<div class="_tableContainer_16hzy_1" id="bkmrk-column-description-s"><div class="_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="2659" data-start="283" style="width: 99.4048%;"><thead data-end="475" data-start="283"><tr data-end="475" data-start="283"><th data-col-size="sm" data-end="301" data-start="283" style="width: 15.4694%;">Column</th><th data-col-size="lg" data-end="475" data-start="301" style="width: 84.5194%;">Description</th></tr></thead><tbody data-end="2659" data-start="669"><tr data-end="861" data-start="669"><td data-col-size="sm" data-end="687" data-start="669" style="width: 15.4694%;">**Severity** ⇅</td><td data-col-size="lg" data-end="861" data-start="687" style="width: 84.5194%;">Visual severity icon (— for Medium, ↓ for Low, ↑ for High/Critical). Click to sort by severity level.</td></tr><tr data-end="1055" data-start="862"><td data-col-size="sm" data-end="880" data-start="862" style="width: 15.4694%;">**Created at** ⇅</td><td data-col-size="lg" data-end="1055" data-start="880" style="width: 84.5194%;">Timestamp when the report was first logged.</td></tr><tr data-end="1248" data-start="1056"><td data-col-size="sm" data-end="1074" data-start="1056" style="width: 15.4694%;">**Title**</td><td data-col-size="lg" data-end="1248" data-start="1074" style="width: 84.5194%;">Clickable report name; opens the Edit panel.</td></tr><tr data-end="1441" data-start="1249"><td data-col-size="sm" data-end="1268" data-start="1249" style="width: 15.4694%;">**CVSS v3 Score**</td><td data-col-size="lg" data-end="1441" data-start="1268" style="width: 84.5194%;">The numeric CVSS score (e.g. 7.5).</td></tr><tr data-end="1635" data-start="1442"><td data-col-size="sm" data-end="1460" data-start="1442" style="width: 15.4694%;">**Assigned to**</td><td data-col-size="lg" data-end="1635" data-start="1460" style="width: 84.5194%;">One or more engineer names/UIDs.</td></tr><tr data-end="1829" data-start="1636"><td data-col-size="sm" data-end="1654" data-start="1636" style="width: 15.4694%;">**Tool** ⇅</td><td data-col-size="lg" data-end="1829" data-start="1654" style="width: 84.5194%;">Scanning tool (e.g. NPM, SYNC, SERVER\_SCAN). Click to sort.</td></tr><tr data-end="2023" data-start="1830"><td data-col-size="sm" data-end="1848" data-start="1830" style="width: 15.4694%;">**Scan type**</td><td data-col-size="lg" data-end="2023" data-start="1848" style="width: 84.5194%;">Code base or Server scan.</td></tr><tr data-end="2217" data-start="2024"><td data-col-size="sm" data-end="2042" data-start="2024" style="width: 15.4694%;">**Component**</td><td data-col-size="lg" data-end="2217" data-start="2042" style="width: 84.5194%;">If Code base → module or repo path.</td></tr><tr data-end="2411" data-start="2218"><td data-col-size="sm" data-end="2236" data-start="2218" style="width: 15.4694%;">**Server name**</td><td data-col-size="lg" data-end="2411" data-start="2236" style="width: 84.5194%;">If Server scan → hostname or IP.</td></tr><tr data-end="2605" data-start="2412"><td data-col-size="sm" data-end="2430" data-start="2412" style="width: 15.4694%;">**Project**</td><td data-col-size="lg" data-end="2605" data-start="2430" style="width: 84.5194%;">Linked project name.</td></tr><tr data-end="2659" data-start="2606"><td data-col-size="sm" data-end="2624" data-start="2606" style="width: 15.4694%;">**SLA**</td><td data-col-size="lg" data-end="2659" data-start="2624" style="width: 84.5194%;">Target remediation date / time.</td></tr><tr><td style="width: 15.4694%;">**Updated at**</td><td style="width: 84.5194%;">Timestamp of the most recent update to the report (status change, reassignment, or edit).

</td></tr><tr><td style="width: 15.4694%;">****Status****</td><td style="width: 84.5194%;"><div class="flex flex-col text-sm pb-25"><article class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-32" data-turn="assistant" data-turn-id="e59055df-289d-4317-81e6-e2279c89a066" dir="auto" tabindex="-1">Current workflow state of the report (Open, In Progress, Resolved), editable directly from the table via dropdown.

</article></div></td></tr></tbody></table>

</div></div><p class="callout warning">**Overdue alert:** If the SLA has expired and the report is not closed, the SLA cell is shaded **red** to draw immediate attention.</p>

> **Violation Reports – Clickable Title**  
> In the Table view for Violation Reports, the **Title** column entries are clickable: clicking any Title opens the full-width “View Violation Report” drawer, displaying all of that report’s fields, history, attachments, resolution summary, and close details.

**Sorting &amp; Total:** Sort reports by any column. The **Total** count shows how many entries match your current view.

##### Board (Kanban) View

> **Board** view—a Kanban-style layout groups reports into columns by **Status**. Drag &amp; drop cards between **Open**, **In Progress**, **Resolved** to update their status in real time.

<article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-368" dir="auto" id="bkmrk-adding-a-violation-r">
</article><span data-end="1785" data-start="1776">Use the </span>**Board** view for a high-level, drag-and-drop workflow:

**Columns**: One column per status—

1. **Open**
2. **In Progress**
3. **Resolved**

**Cards**: Each report card shows:

1. **Title**
2. **Created at** (with calendar icon)
3. **Snippet of Description**
4. **CVSS score** badge in the top-right

<article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-368" dir="auto" id="bkmrk-adding-a-violation-r-2">##### Adding a Violation Report

To log a new compliance or policy violation:

**1. Open the Add Form** Click the **+ Add** button in the top-right corner of the **Violation reports** table.

**2. Fill in the Report Details** In the “Add violation report” side panel, complete the following fields:

1. **Title:** A short, descriptive name for the issue (e.g. “SQL Injection in Login”).
2. **CVSS v3:** Enter the numeric vulnerability rating (e.g. 7.5) based on the Common Vulnerability Scoring System.
3. **Severity:** Manual classification of the issue (Low, Medium, High, Critical) used for visual prioritization.
4. **Tool:** Select which scanner or pen-test tool generated this report.
5. **Scan Type**  
    ▸ **Codebase** → reveals an extra **Component** text field (e.g. the repo path or module name).  
    ▸ **Server Scan** → reveals **Server IP** and **Server Hostname** fields.
6. **Component** *(only if Codebase):* Free-text name of the sub-system or code module affected.
7. **Server IP** &amp; **Server Hostname** *(only if Server Scan):* Identify the scanned host (e.g. 192.0.2.15 / api-prod-01.example.com).
8. **Assigned to:** Pick one or more engineers responsible for triage.
9. **Project:** Link this report to the appropriate project or environment.
10. **SLA** *(optional):* Set a target remediation date/time.
11. **Penetration report** *(optional):* Link to a related pen-test entry if available.
12. **Description:** Use the rich-text editor to paste or type detailed logs, error messages, or remediation notes.

**3. Save the Report** When all mandatory fields are populated, click **Save** to create the new Violation Report.  
The report will now appear in your table (and board) views, ready for review and triage.

</article><article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-370" dir="auto" id="bkmrk-editing-a-violation-">##### Editing a Violation Report

**1. Locate the record** In **Table** view, scroll or search to find the row for the violation you want to update.  
In **Board** view, find the card in its status column.

**2. Open the edit form: Table:** Click the **Edit** (✏️) icon in the **Actions** column.  
**Board:** Hover over the card and click the pencil icon or the “⋯” menu, then choose **Edit**.

**3. Make your changes** In the side-panel form you can update any field:

1. **Status** (Open, In Progress, Resolved, etc.)
2. **Severity**
3. **Assigned to**
4. **Scan type**, **Tool**, **Component**, **Server name**
5. **SLA**, **Penetration report**
6. **Description** (detailed notes or logs)

**4. Save:** Click **Save** at the bottom of the panel to apply your edits.

##### Closure Workflow

When you mark a Violation Report “Processed,” it now—rather than simply updating the status—opens a mandatory “Close Report” dialog so you capture a concise **Resolution Summary**. This guarantees every closed finding has:  
**Complete Context:** How it was fixed or verified  
**Accountability:** Who closed it and when  
**Audit Trail:** Full details bundled into one log entry

**What’s New**

<div class="text-base my-auto mx-auto py-5 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto flex max-w-(--thread-content-max-width) flex-1 text-base gap-4 md:gap-5 lg:gap-6 group/turn-messages focus-visible:outline-hidden" tabindex="-1"><div class="group/conversation-turn relative flex w-full min-w-0 flex-col agent-turn"><div class="relative flex-col gap-1 md:gap-3"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9185fc52-8d9f-401c-ba59-ab39f29c1be0" data-message-model-slug="o4-mini-high" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light">1. **Close Dialog Auto-Opens:** As soon as you set a report’s status to **Processed**, the **Close Report** modal pops up—pre-filled with all original fields and forcing you to enter a **Resolution Summary** before the change can be saved.
2. **Mandatory Summary:** You cannot finish without entering a brief resolution note.
3. **Data Snapshot:** Read-only view of all original fields (Project, Title, CVSS, Severity, Tool, Scan Type + Component/Server, Description).
4. **Atomic Audit Log:** The system records the summary, closer’s username, and timestamp together.

</div></div></div></div></div></div></div></div>**How It Works**

<div class="text-base my-auto mx-auto py-5 [--thread-content-margin:--spacing(4)] @[37rem]:[--thread-content-margin:--spacing(6)] @[72rem]:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:32rem] @[34rem]:[--thread-content-max-width:40rem] @[64rem]:[--thread-content-max-width:48rem] mx-auto flex max-w-(--thread-content-max-width) flex-1 text-base gap-4 md:gap-5 lg:gap-6 group/turn-messages focus-visible:outline-hidden" tabindex="-1"><div class="group/conversation-turn relative flex w-full min-w-0 flex-col agent-turn"><div class="relative flex-col gap-1 md:gap-3"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="9185fc52-8d9f-401c-ba59-ab39f29c1be0" data-message-model-slug="o4-mini-high" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light">1. **Locate &amp; Process:** In Table or Board view, set State → Processed.
2. **Review Snapshot:** Confirm Project, Title, CVSS v3, Severity, Tool, Scan Type details, and Description.
3. **Add Summary:** Enter your remediation steps, verification, and notes.
4. **Save to Close:** Click **Save**; the summary appears in details and audit logs.

</div></div></div></div></div></div></div></div>> **Benefit:** Every closed report is now a self-contained record of what was found, who fixed it, how, and when—making compliance and troubleshooting faster and more reliable.

##### Deleting a Violation Report

1. **Find the violation:** In **Table** view, locate the row you wish to delete.
2. **Click the trash icon:** Click the **Delete** (🗑️) icon in the **Actions** column for that row.
3. **Confirm deletion:** In the confirmation dialog, click **Delete** again to permanently remove the report

</article><p class="callout warning">**Warning:** Deleted violation reports cannot be restored. Be sure you no longer need the record before confirming deletion**.**</p>

##### Filtering &amp; Searching

1. **Filter Panel:** Click **Filter** to narrow by **Status** or **Tool**.
2. **Search Bar:** Type a partial or full server name in the **Search** field to find specific reports instantly.