2.1 KiB
2.1 KiB
Why
The current SCUM workflow treats a directory and a few generic fields as if they were a complete installation. That cannot distinguish a new SteamCMD install from adoption of an existing server, cannot prove that SCUM configuration was materialized, and marks a job ready without a game-specific health check.
What Changes
- Add a versioned SCUM deployment template that declares the Steam app, supported target, executable markers, config file mappings, discovery markers, and post-install verification checks.
- Extend the Platform-to-Run job contract with bounded preflight, install/scan projection, config mapping, and verification evidence; keep protected paths and commands Run-local.
- Persist a safe deployment projection for operators: preflight state, discovered runtime facts, config mapping status, verification state, and stable failure codes without raw host paths or command text.
- Make SCUM install and adopt operations explicit and idempotent. A new install must run install and configure phases; adoption must scan before any managed write.
- Add contract tests and manifest validation for the complete SCUM lifecycle. The UI will consume these projections after the backend contract is in place.
Capabilities
New Capabilities
scum-deployment-lifecycle: Game-specific controlled install/adopt plans, scan projections, config mappings, and post-install verification.
Modified Capabilities
run-job-channel: Leased deployment jobs carry a validated SCUM template and return bounded lifecycle evidence.
Impact
- Affects
platform/domain,platform/dto,platform/service,platform/validator, andplatform/protocol. - Affects
plugins/manifests/game-plugin.manifest.schema.json, SCUM manifest assets, and plugin validation tests. - Requires a coordinated implementation in the independent Run repository before real machines can execute the new template; this repository provides the authoritative contract and safe projection.
- Does not add billing, cloud host sales, direct SSH, raw host paths to browser/plugin responses, or a Run source tree here.