Files

3.7 KiB

ADDED Requirements

Requirement: Server-local game-player identity

The system SHALL maintain a game-player identity independently of platform users, uniquely scoped by serverInstanceId and immutable game-player ID, with bounded display-name alias history.

Scenario: A known game player logs in under a new name

  • WHEN a successful declared SCUM login contains an existing player ID and a different valid display name
  • THEN the system SHALL update the player's current display name and retain the previous and new names as server-local aliases

Requirement: Idempotent semantic login/logout projection

The system SHALL project accepted scum.login and scum.logout semantic events using a durable event identity and SHALL tolerate duplicate and out-of-order delivery without creating duplicate access evidence or regressing player state.

Scenario: A duplicate login event is received

  • WHEN the same accepted log stream sequence is ingested again
  • THEN the system SHALL return the normal duplicate acknowledgement and SHALL not create an additional session or alias record

Scenario: A stale logout arrives after a later login

  • WHEN a logout event is older than the player's latest successful login
  • THEN the system SHALL only close an eligible earlier open session and SHALL not overwrite the newer player last-seen state

Requirement: Privacy-preserving access evidence

The system SHALL persist no raw IP address, raw network fingerprint, host path, credential, or raw sensitive log content in game-player access records or browser-visible responses. Network correlation SHALL be derived as an irreversible value scoped to one server instance.

Scenario: An access event carries a source address

  • WHEN a SCUM event contains a source address or network identifier
  • THEN the system SHALL use it only to derive a server-isolated correlation value and SHALL omit the source value from stored models and API responses

Requirement: Review-only risk signals

The system SHALL create bounded security signals for thresholded failed access and possible shared-fingerprint identities, and SHALL expose them as manual-review evidence only.

Scenario: Repeated failed access crosses the threshold

  • WHEN five failed attempts with one server-local correlation value occur within fifteen minutes
  • THEN the system SHALL create or refresh an excessive-failed-access signal with an explicit textual review status and evidence count

Scenario: An operator reviews a signal

  • WHEN an authorized operator reads a player security signal
  • THEN the response SHALL contain no automated enforcement command, raw network identifier, or raw log line

Requirement: Authorized player intelligence console

The system SHALL provide server-authorized player profile, aliases, sessions, access-attempt, and security-signal responses through named contracts, and the SCUM console SHALL render labels and status text rather than relying only on color.

Scenario: An unauthorized user requests server player data

  • WHEN a platform session lacks read access to the requested server instance
  • THEN the player intelligence API SHALL deny access without revealing whether a game-player record exists

Requirement: Bounded evidence retention

The system SHALL retain access attempts and active security evidence for a bounded period, prune expired evidence during normal service operations, and keep independent player identity history intact.

Scenario: Evidence is older than the retention limit

  • WHEN a query or projection runs after an access attempt exceeds the retention period
  • THEN the system SHALL remove the expired attempt and any expired non-active signal evidence without deleting the game-player identity