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