Skip to content

[Support Triage] Auto-assign Request ID server-side — remove manual entry from intake form #6

@smarcetic

Description

@smarcetic

User Story

As an Operations Coordinator, I want the triage intake form to automatically assign a unique Request ID when my submission reaches the API so that I never have to manually construct or guess an identifier and every support request is uniquely traceable from creation.

Acceptance Criteria

Scenario 1 — Happy Path

Given the intake form is loaded in a browser
When I fill in all required fields (excluding Request ID, which is not shown) and submit
Then the API generates a unique Request ID server-side, the triage result panel displays the assigned Request ID, and the helpdesk ticket created carries that same ID

Scenario 2 — Uniqueness / Boundary

Given two support requests are submitted concurrently within the same millisecond
When both reach POST /triage
Then each is assigned a distinct, non-colliding Request ID (ULID guarantees time-ordered uniqueness without a database sequence)

Scenario 3 — Unhappy Path / Client Tampering

Given a caller submits a raw JSON body to POST /triage that includes a request_id field
When the API processes the request
Then the client-supplied value is ignored and the server-generated ID is used in the response and helpdesk ticket

Domain Events

  • HelpRequestReceived

Notes

  • Bounded context: Support Triage
  • INVEST flags: None
  • Cross-context dependencies: None — the helpdesk ticket (Work Order Management context) receives request_id from the triage service unchanged; no contract change required
  • Implementation hint: remove request_id from intake.html form; in POST /triage handler, generate a ULID before constructing HelpRequest; request_id on HelpRequest model can be made optional (defaulting to generated value) or generated exclusively in the handler before passing to TriageService

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions