Support Cases

Internal support ticketing system for tracking customer issues, service requests, and SOC operational support with priority-based routing.

Overview

A SOCaaS platform must provide a structured way for customers and internal teams to report issues, request changes, and track resolution. The Support Cases module replaces ad-hoc email and chat-based support with a searchable, filterable case management system. Cases have defined statuses, priorities, and assignees, enabling the SOC team to triage and track support requests alongside security operations.

What Was Proposed

What's Built Complete

Architecture

Three-Page Structure

The support cases module spans three frontend pages: the listing page (/support-cases), the case detail page (/support-cases/[id]), and the new case form (/support-cases/new). The listing fetches from /api/v1/support/cases/ with client-side filtering. The new case form supports subject pre-fill from URL parameters, enabling the Marketplace module to link directly with pre-populated subjects.

Frontend Pages                      API
+---------------------------+   +--------------------+
| /support-cases            |-->| GET /api/v1/support|
|   List + filter + search  |   |   /cases/          |
+---------------------------+   +--------------------+
| /support-cases/new        |-->| POST /api/v1/support|
|   Create form             |   |   /cases/          |
|   ?subject= prefill       |   +--------------------+
+---------------------------+
| /support-cases/[id]       |-->| GET /api/v1/support|
|   Case detail view        |   |   /cases/{id}      |
+---------------------------+   +--------------------+

Routing

Frontend Routes
/support-cases
/support-cases/new
/support-cases/[id]
API Prefix
/api/v1/support/cases

Prerequisites

Data Model

Support Case

FieldTypeDescription
idstringCase identifier (e.g., SC-1042)
subjectstringBrief summary of the issue
statusenumOpen | In Progress | Resolved | Closed
priorityenumCritical | High | Medium | Low
createddateCase creation date
updateddateLast update date
assigneestringAssigned team member name

New Case Form Fields

FieldTypeRequiredDescription
subjectstringYesBrief issue summary (pre-fillable via URL)
categoryenumYesBug | Feature Request | Security Issue | Access Request
priorityenumYesLow | Medium | High | Critical
descriptiontextYesDetailed issue description

UI Description

Listing Page (/support-cases)

Header with headphones icon, "Support Cases" title, and orange "New Support Case" button. Below, a filter bar with status dropdown, priority dropdown, and search input. The main content is a bordered table with 7 columns. Case IDs are orange links. Status badges use color-coded rounded pills. Priority text is color-coded. Empty state shows inbox icon with "No support cases found."

New Case Form (/support-cases/new)

Back link to listing, "New Support Case" header with lifebuoy icon. Form fields: Subject (text input), Category (select), Priority (4-button group with color-coded borders), Description (6-row textarea). Submit button with send icon. Validation error banner appears if required fields are empty. Success state shows checkmark icon, "Case Submitted" message, and two action buttons.

Case Detail (/support-cases/[id])

Individual case view showing full case details, timeline, and comments. Accessed by clicking a Case ID link from the listing.

Source Files

ComponentPath
Listing Pageplatform/frontend/src/app/support-cases/page.tsx
New Case Formplatform/frontend/src/app/support-cases/new/page.tsx
Case Detailplatform/frontend/src/app/support-cases/[id]/page.tsx