Files
cve-dashboard/.kiro/specs/ivanti-queue-clear-completed-fix/bugfix.md
Jordan Ramos a61d254ff9 Sync .kiro/ from master — v2.2.0 release batch
New specs: archer-template-library, ccp-metrics-view-restructure,
compliance-list-stale-after-sidebar-edit, compliance-metric-estimated-resolution-date,
compliance-remediation-display-fix, flexible-jira-ticket-creation,
forecast-burndown-chart, granite-loader-export, ivanti-queue-clear-completed-fix,
multi-item-jira-ticket, queue-collapsible-sections, vendor-issue-type-dropdown

New steering: archer-template-gen.md

Updated: migration-registration-check hook, remediation-plan-history spec,
gitlab-workflow, tech, versioning steering files
2026-06-04 11:27:31 -06:00

2.4 KiB

Bugfix Requirements Document

Introduction

The "Clear Completed" button in the Ivanti Queue panel fails silently when clicked. Completed queue items that have associated rows in the jira_ticket_queue_items junction table cannot be deleted because the foreign key constraint (queue_item_id REFERENCES ivanti_todo_queue(id)) lacks ON DELETE CASCADE. PostgreSQL rejects the deletion with a FK violation, the backend returns a 500, and the frontend discards the error — leaving the user with no feedback and no action taken.

Queue items are marked complete once a Jira ticket has been opened from them. The Jira ticket continues to live independently in the jira_tickets table — the junction table link is purely historical at that point. Clearing completed items should remove both the queue item and its junction table references without affecting the Jira ticket itself.

Bug Analysis

Current Behavior (Defect)

1.1 WHEN a user clicks "Clear Completed" and one or more completed queue items have associated rows in jira_ticket_queue_items THEN the system returns a 500 error due to a foreign key violation and no items are deleted

1.2 WHEN the backend DELETE query fails with a FK constraint error THEN the system returns a generic 500 response and the frontend silently ignores the failure, providing no user feedback

Expected Behavior (Correct)

2.1 WHEN a user clicks "Clear Completed" and one or more completed queue items have associated rows in jira_ticket_queue_items THEN the system SHALL first delete the associated jira_ticket_queue_items rows and then delete the completed queue items successfully within a transaction

2.2 WHEN the "Clear Completed" operation succeeds THEN the system SHALL return a success response and the frontend SHALL remove all completed items from the displayed list

Unchanged Behavior (Regression Prevention)

3.1 WHEN a user clicks "Clear Completed" and no completed queue items have associated rows in jira_ticket_queue_items THEN the system SHALL CONTINUE TO delete those items directly and return a success response

3.2 WHEN a user clicks "Clear Completed" and there are no completed queue items THEN the system SHALL CONTINUE TO return a success response with zero deleted count

3.3 WHEN queue items are in a non-complete status (pending, in_progress) THEN the system SHALL CONTINUE TO leave those items untouched regardless of whether they have associated jira_ticket_queue_items rows