5.1 KiB
Requirements Document
Introduction
The Ivanti Queue (todo queue) in the STEAM Security Dashboard currently stores and displays ip_address for CARD workflow items but omits hostname entirely. Vendor-grouped sections (FP/Archer) display only finding_id and CVEs, hiding the ip_address that is already stored. This feature adds a hostname column to the database, passes hostname through the backend API, and displays both hostname and IP address across all queue sections (CARD, FP, Archer).
Glossary
- Queue_Panel: The slide-out side panel (
QueuePanelcomponent) that displays the user's staged Ivanti findings grouped by workflow type and vendor. - Queue_API: The Express route module (
ivantiTodoQueue.js) that handles CRUD operations on theivanti_todo_queuetable. - Queue_Table: The SQLite table
ivanti_todo_queuethat persists per-user queue items. - CARD_Section: The top group in the Queue_Panel that displays items with
workflow_type = 'CARD'. - Vendor_Section: Groups in the Queue_Panel for FP and Archer workflow items, organized by vendor name.
- Finding: An Ivanti host finding record containing fields such as
id,title,hostName,ipAddress,cves, andseverity. - Migration_Script: A standalone Node.js script in
backend/migrations/that alters the SQLite schema.
Requirements
Requirement 1: Add hostname column to the queue database table
User Story: As a developer, I want the queue table to have a hostname column, so that hostname data can be persisted alongside each queued finding.
Acceptance Criteria
- THE Migration_Script SHALL add a
hostnameTEXT column to the Queue_Table. - WHEN the
hostnamecolumn already exists, THE Migration_Script SHALL skip the alteration and log a message indicating the column already exists. - THE Migration_Script SHALL preserve all existing rows and column data in the Queue_Table.
Requirement 2: Accept and store hostname in queue API endpoints
User Story: As a developer, I want the queue API to accept a hostname field, so that hostname data is stored when findings are added to the queue.
Acceptance Criteria
- WHEN a POST request is received at the single-item endpoint, THE Queue_API SHALL accept an optional
hostnamestring field (max 255 characters) and store it in the Queue_Table. - WHEN a POST request is received at the batch endpoint, THE Queue_API SHALL accept an optional
hostnamestring field on each finding object (max 255 characters) and store it in the Queue_Table. - WHEN the
hostnamefield is omitted or empty, THE Queue_API SHALL store NULL for thehostnamecolumn. - WHEN a GET request is received, THE Queue_API SHALL return the
hostnamefield for each queue item in the response.
Requirement 3: Pass hostname from the frontend to the queue API
User Story: As a developer, I want the frontend to send hostname data when adding findings to the queue, so that hostname is captured from the Ivanti findings data.
Acceptance Criteria
- WHEN a single finding is added to the queue, THE ReportingPage SHALL include the finding's
hostNamevalue in thehostnamefield of the POST request body. - WHEN findings are added via batch submission, THE ReportingPage SHALL include each finding's
hostNamevalue in thehostnamefield of the corresponding finding object in the POST request body.
Requirement 4: Display hostname and IP address in the CARD section
User Story: As a security analyst, I want to see both hostname and IP address for CARD items in the queue, so that I can identify the affected host at a glance.
Acceptance Criteria
- WHEN a CARD item has a
hostnamevalue, THE CARD_Section SHALL display the hostname below the finding ID. - WHEN a CARD item has an
ip_addressvalue, THE CARD_Section SHALL display the IP address below the hostname. - WHEN a CARD item has both
hostnameandip_address, THE CARD_Section SHALL display hostname on one line and IP address on the next line. - WHEN a CARD item has only
ip_addressand nohostname, THE CARD_Section SHALL display the IP address (preserving current behavior). - WHEN a CARD item has only
hostnameand noip_address, THE CARD_Section SHALL display the hostname.
Requirement 5: Display hostname and IP address in vendor sections (FP/Archer)
User Story: As a security analyst, I want to see hostname and IP address for FP and Archer items in the queue, so that I can identify affected hosts without leaving the queue panel.
Acceptance Criteria
- WHEN a vendor-grouped item has a
hostnamevalue, THE Vendor_Section SHALL display the hostname below the CVE list. - WHEN a vendor-grouped item has an
ip_addressvalue, THE Vendor_Section SHALL display the IP address below the hostname (or below the CVE list if no hostname exists). - WHEN a vendor-grouped item has both
hostnameandip_address, THE Vendor_Section SHALL display hostname on one line and IP address on the next line, both below the CVE list. - WHEN a vendor-grouped item has neither
hostnamenorip_address, THE Vendor_Section SHALL display only the finding ID and CVE list (preserving current behavior).