This commit is contained in:
Frank Harris 2026-06-11 15:18:01 -05:00
parent 3d7aa64db6
commit f7d4c3e11b
8 changed files with 310 additions and 121 deletions

View file

@ -83,7 +83,7 @@ The agent reads screen logs and may also copy a local log file into the game hom
## Workshop / Server Content
The primary Workshop workflow is owned by the Panel `addonsmanager`, not the legacy `steam_workshop` RPC. For Linux servers the Panel:
The current customer-facing Workshop workflow is the dedicated Panel `steam_workshop` module. The older `steam_workshop` XML-RPC method is still used by that module for compatibility. For Linux servers the Panel:
1. writes `gsp_server_content/workshop_manifest.json` under the server home
2. writes a generated per-job shell script under `gsp_server_content/jobs/workshop/`
@ -92,7 +92,11 @@ The primary Workshop workflow is owned by the Panel `addonsmanager`, not the leg
The generated job uses Python and SteamCMD, validates numeric Workshop IDs, keeps writes under the server home, logs to `gsp_server_content/workshop_install.log`, and supports DayZ/Arma-style `@mod` folders plus `.bikey` copying. The Linux agent does not need a permanent `generic_steam_workshop_linux.sh` file on disk.
The older `steam_workshop` XML-RPC method remains for legacy compatibility only and should not be treated as the primary customer workflow.
For legacy `steam_workshop` RPC installs:
- blank `config_file_path` means no config-file editing
- the generated post-install script still runs
- `WorkshopModsInfo` is still written so uninstall can work without parsing a game config file
## Scheduler

View file

@ -163,7 +163,7 @@ Windows/Cygwin logs come from screen logs and/or local copies. Log retrieval sho
## Workshop / Server Content
The primary Workshop workflow is owned by the Panel `addonsmanager`, not the legacy `steam_workshop` RPC. For Windows/Cygwin servers the Panel:
The current customer-facing Workshop workflow is the dedicated Panel `steam_workshop` module. The older `steam_workshop` XML-RPC method is still used by that module for compatibility. For Windows/Cygwin servers the Panel:
1. writes `gsp_server_content/workshop_manifest.json` under the server home
2. writes a generated per-job shell script under `gsp_server_content/jobs/workshop/`
@ -172,7 +172,11 @@ The primary Workshop workflow is owned by the Panel `addonsmanager`, not the leg
The generated job uses Python and SteamCMD, validates numeric Workshop IDs, keeps writes under the server home, logs to `gsp_server_content/workshop_install_windows.log`, and supports DayZ/Arma-style `@mod` folders plus `.bikey` copying. The Windows agent does not need a permanent `generic_steam_workshop_windows_cygwin.sh` file on disk.
The older `steam_workshop` XML-RPC method remains for legacy compatibility only and should not be treated as the primary customer workflow.
For legacy `steam_workshop` RPC installs:
- blank `config_file_path` means no config-file editing
- the generated post-install script still runs
- `WorkshopModsInfo` is still written so uninstall can work without parsing a game config file
## Scheduler

View file

@ -34,6 +34,22 @@ The dedicated module still provides:
- monitor-button access from Game Monitor
- per-game Workshop configuration files
- uninstall and admin support pages
- optional regex/config-file editing for games that need automatic mod-list updates
- post-install-only workflows for games that only need a move/copy script
## Legacy RPC Install Semantics
The dedicated `steam_workshop` module still uses the legacy `steam_workshop` agent RPC for installs.
Current rule:
- if `config/filepath` is blank, the Panel passes a blank `config_file_path`
- agents must skip the generated config-file editing block entirely
- post-install scripts still run
- `WorkshopModsInfo` still records installed items
- uninstall can rely on `WorkshopModsInfo` when no config file is managed
This keeps advanced regex editing available without forcing it for simple Arma/DayZ-style `@mod` installs.
## Main Limitations

View file

@ -39,6 +39,9 @@ Dedicated Steam Workshop support for game servers.
- configure Workshop game XML files under `Panel/modules/steam_workshop/game_configs/`
- use `workshop_admin.php` for module administration
- `File Path` and the regex/mod-string fields are optional
- a blank `File Path` means post-install and uninstall scripts run without any automatic config-file editing
- the admin page can copy one existing XML config into the currently selected game/OS config
## Search Backend
@ -53,6 +56,14 @@ Dedicated Steam Workshop support for game servers.
- the main Workshop page `Back` link is rendered as a real panel button
- uninstall remains in the dedicated `steam_workshop` module
## Legacy RPC Behavior
- the dedicated module still calls the legacy agent `steam_workshop` XML-RPC method
- when `config/filepath` is blank, the Panel now passes an empty `config_file_path`
- both agents skip the generated `cat` / regex / config-write block when `config_file_path` is blank
- both agents still run custom post-install scripts and still write `WorkshopModsInfo`
- uninstall falls back to `WorkshopModsInfo` when no config file is managed
## Security Concerns
- should not be duplicated under `addonsmanager`