Files

2.3 KiB

ADDED Requirements

Requirement: SCUM feature ownership is plugin-local

The SCUM plugin SHALL own SCUM schemas, allowlists, migration adapters, Companion behavior, and feature UI. The platform SHALL retain only reusable authorization, isolation, approval, auditing, expiry, queues, protected storage, generic Run transport declarations, and generic plugin-host primitives. platform_web SHALL not import SCUM code or branch on game.scum.

Scenario: Page mounting

  • WHEN an authorized administrator opens the installed plugin route
  • THEN the generic host mounts the declared plugin bundle with only server-scoped permission context

Requirement: Feature availability is runtime scoped

The plugin SHALL expose a feature as actionable only when its declared Companion handler or event producer is currently available for that server. Availability SHALL not be gated by a game or adapter version/build/revision.

Scenario: One adapter fails

  • WHEN a schema probe for state patching fails
  • THEN state patching is unavailable with a typed reason while other declared capabilities remain independently available

Requirement: Transitional records are read-only migration input

Platform records MAY be displayed with provenance while plugin-owned records become authoritative per server and feature. Migration flags SHALL be scoped to the server and feature, never to a game version.

Scenario: Migration flag is absent

  • WHEN no unique server-feature migration flag is present
  • THEN historical records remain readable and plugin writes stay disabled

Requirement: Protected request declarations are generic

The plugin manifest and SDK SHALL support generic declared protected request transports for SQL, RCON, and management-program text. Declarations SHALL use only logical server-bound transport/target keys and bounded text fields. Browser projections and audit records SHALL redact request text. Declarations shall not grant credentials, paths, raw connections, direct sockets, or host OS shell execution.

Scenario: Plugin generates an SQL request

  • WHEN the plugin queues SQL text through a declared protected transport
  • THEN Platform stores and audits only its protected/redacted form and forwards it only after generic authorization and approval checks