Document platform plugin run boundaries
This commit is contained in:
@@ -85,6 +85,16 @@ Do not define business structs inside functions. Do not define request/response
|
||||
|
||||
The external run executor must not expose host paths, raw credentials, or direct sockets to plugins or platform_web.
|
||||
|
||||
Platform, plugin, and run lifecycle ownership must stay separated:
|
||||
|
||||
- Platform owns server instances, plugin manifest validation, distribution builds, run registration binding, authorization, and lifecycle job dispatch.
|
||||
- Plugins own game-specific lifecycle behavior: install, update, pre-start checks, start arguments, stop logic, status probes, executable paths, Steam app IDs, and game-specific dependency commands.
|
||||
- Run owns generic machine execution only: scoped file operations, bounded process execution/supervision, declared capability enforcement, logs, artifacts, and channel transport.
|
||||
|
||||
Do not hardcode game-specific deployment behavior in run or platform services. Values such as `SCUMServer.exe`, Steam app `3792580`, `steamcmd +app_update`, SCUM install directories, `-port`, `-MaxPlayers`, or `-log` belong in the SCUM plugin's manifests, action specs, templates, or scripts.
|
||||
|
||||
When a game needs "install if missing, update if present, then start" behavior, implement it as plugin-owned lifecycle actions. Platform may package and dispatch those actions, and run may execute them through generic capabilities, but neither platform nor run should special-case a game by name to perform those steps.
|
||||
|
||||
Run-platform communication must remain channelized:
|
||||
|
||||
- Control is lightweight and high priority.
|
||||
|
||||
Reference in New Issue
Block a user