Files

35 lines
3.2 KiB
Markdown

## ADDED Requirements
### Requirement: Plugin declares a bounded Windows UE4SS DLL extension
The plugin manifest SHALL support `runtimeProfiles.dllExtensions` entries only for a fixed `ue4ss-dll` kind, Windows amd64 target, `server-start` activation, logical target key, declared DLL relative path, and update-on-start policy. A `ready` release SHALL additionally have an HTTPS release URL, SHA-256 checksum, bounded byte size, SCUM executable checksum, and UE4SS ABI marker. An `unpublished` declaration MAY document an intended release URL but SHALL not be frozen into a start job. The manifest validator SHALL reject executable references, shell arguments, Linux targets, unsafe URLs, non-DLL paths, missing ready-release integrity metadata, and unsafe logical keys.
#### Scenario: Valid SCUM DLL declaration registers
- **WHEN** `game.scum` registers a Windows UE4SS DLL extension with all required immutable release and compatibility fields
- **THEN** Platform persists a typed declaration and exposes only a safe projection to browser clients.
#### Scenario: Unsafe DLL declaration is rejected
- **WHEN** a manifest declares a non-HTTPS URL, missing checksum, Linux target, executable command, unsafe path, or missing compatibility checksum
- **THEN** manifest validation rejects the registration before it is persisted.
#### Scenario: Unpublished SCUM release stays inactive
- **WHEN** a plugin documents an unpublished UE4SS DLL release before the publisher has supplied its immutable release pins
- **THEN** the declaration is safe to display but cannot be referenced by a server-start lifecycle profile or dispatched to Run.
### Requirement: Server start freezes the declared extension plan
Platform SHALL add the selected compatible DLL extension plan to the fenced `process.start` Run job input. The frozen plan SHALL contain only logical target identifiers and release integrity/compatibility metadata, and SHALL reject a start when the selected runtime profile or endpoint platform does not support the extension.
#### Scenario: Compatible Windows server start includes extension plan
- **WHEN** a Windows amd64 SCUM server with a selected compatible runtime profile is started
- **THEN** its Run start job includes the current immutable DLL extension plan before process execution.
#### Scenario: Linux server is rejected without a download
- **WHEN** a Linux endpoint is selected for a UE4SS DLL extension profile
- **THEN** Platform rejects the extension path with an explicit unsupported-platform result and does not dispatch a DLL download.
### Requirement: Browser receives a safe extension projection
Platform SHALL project extension key, display name, release version, checksum prefix, supported OS/architecture, loading mode, update-on-start policy, compatibility marker, and safe synchronization state to plugin and server management views. It SHALL NOT project RCON passwords, raw host paths, signed Run job data, native signatures, or raw local file metadata.
#### Scenario: Server detail renders declaration without secrets
- **WHEN** an authorized operator views a SCUM plugin or server detail
- **THEN** the UI displays safe DLL extension metadata and does not contain credentials, host paths, or native resolver data.