Skip to content

Statuses

Report statuses

Constrained by reports_status_check (migration 017); mirrored in reports_service._ALL_STATUSES / _ALL_STATUS_TITLES.

StatusLifecycle roleReached via
OpenInitial statecreate (default)
PendingPre-investigation hold; post-concludecreate, PATCH, conclude
Under InvestigationInvestigation in progressaction=investigate, /investigation/begin
ValidatedConcluded positiveaction=validate
InvalidatedConcluded negativeaction=invalidate
ClosedClosedcreate/PATCH (bot-supplied)
CompletedCompletedcreate/PATCH (bot-supplied)
AppealedUnder appeal (manual status)PATCH /update

Rules:

  • PATCH /update may only set Open, Pending, Appealed (409 otherwise); while Under Investigation the only PATCH status is Pending (conclude path).
  • validate/invalidate require exactly Under Investigation (409 otherwise) and close any open contact thread.
  • investigate is allowed from Open/Pending; reopening from Closed/Completed/Validated/Invalidated requires clearance 4+.
  • The dashboard treats closed, validated, invalidated, appealed as closed for aggregation.

Punishment statuses

PUNISHMENT_STATUSES in punishment_service.py (CHECK-constrained, migration 029).

StatusMeaning
ActiveIn force
OngoingInvestigation phase
AppealedUnder appeal
RevokedWithdrawn by DPS (terminal; via revoke endpoint only)
ExpiredNaturally expired (no automatic scheduler yet)

Action queue statuses (pending_actions)

pendingprocessingsuccess / failed (stale recovery: 10-minute timeout, 3-attempt cap, then failed).

Discipline queue statuses (discipline_queue)

pendingprocessingcompleted / failed (paced retries via available_at + retry_after_seconds; stale recovery same 10-min/3-attempt policy). Deliberately separate from the punishment status enum.

Training session statuses

pendingactivepausedcompleted; aborted from any non-terminal state.

Training scenario instance statuses

waitingactivecompleted (per training_session_scenarios).

Agent statuses

active · inactive · onboarding (only active/onboarding may hold a browser session; only onboarding agents are training-eligible).