From 502367b140ac3d5ce54bd1d3bb628a4c8da65f5a Mon Sep 17 00:00:00 2001 From: Frank Harris Date: Sat, 20 Jun 2026 12:37:36 -0500 Subject: [PATCH] Create initial GSP Panel wiki documentation --- Administration.md | 29 ++++++ Billing-and-Website-Integration.md | 20 +++++ Configuration.md | 33 +++++++ Database.md | 42 +++++++++ Development.md | 28 ++++++ File-Management.md | 25 ++++++ Game-Server-Management.md | 27 ++++++ Game-Template-XML.md | 137 +++++++++++++++++++++++++++++ Getting-Started.md | 42 +++++++++ Home.md | 28 +++++- Installation.md | 34 +++++++ Module-Reference.md | 57 ++++++++++++ Modules.md | 27 ++++++ OGP-Fork-Notes.md | 33 +++++++ Release-Process.md | 22 +++++ Remote-Servers-and-Agents.md | 35 ++++++++ Steam-and-Workshop.md | 41 +++++++++ Troubleshooting.md | 25 ++++++ Users-and-Permissions.md | 25 ++++++ XML-Schema-and-Validation.md | 55 ++++++++++++ 20 files changed, 764 insertions(+), 1 deletion(-) create mode 100644 Administration.md create mode 100644 Billing-and-Website-Integration.md create mode 100644 Configuration.md create mode 100644 Database.md create mode 100644 Development.md create mode 100644 File-Management.md create mode 100644 Game-Server-Management.md create mode 100644 Game-Template-XML.md create mode 100644 Getting-Started.md create mode 100644 Installation.md create mode 100644 Module-Reference.md create mode 100644 Modules.md create mode 100644 OGP-Fork-Notes.md create mode 100644 Release-Process.md create mode 100644 Remote-Servers-and-Agents.md create mode 100644 Steam-and-Workshop.md create mode 100644 Troubleshooting.md create mode 100644 Users-and-Permissions.md create mode 100644 XML-Schema-and-Validation.md diff --git a/Administration.md b/Administration.md new file mode 100644 index 0000000..34134ad --- /dev/null +++ b/Administration.md @@ -0,0 +1,29 @@ +# Administration + +Administration in GSP covers the pages and settings that control the panel itself and server templates. + +## Common Admin Areas + +- Game definitions and XML templates +- Workshop administration +- User and permission management +- Billing and website integration +- Module configuration pages + +## Relevant Pages + +- [Modules](Modules.md) +- [Module Reference](Module-Reference.md) +- [Users and Permissions](Users-and-Permissions.md) +- [Steam and Workshop](Steam-and-Workshop.md) +- [Database](Database.md) + +## Workshop Admin Notes + +The dedicated Steam Workshop admin page copies configuration settings between XML files. It does not copy installed mods, mod folders, or game server files. + +## Good Practice + +- Check whether a file lives under `references/` before editing it. +- Verify the target file is project code, not reference material. +- Prefer the module's existing validation and save helpers instead of building a one-off path. diff --git a/Billing-and-Website-Integration.md b/Billing-and-Website-Integration.md new file mode 100644 index 0000000..71f0472 --- /dev/null +++ b/Billing-and-Website-Integration.md @@ -0,0 +1,20 @@ +# Billing and Website Integration + +GSP includes billing and website-facing modules that integrate with the panel. + +## Relevant Modules + +- `Panel/Panel/modules/billing/` +- `Panel/Panel/modules/website/` +- `Panel/Panel/modules/register/` +- `Panel/Panel/modules/support/` +- `Panel/Panel/modules/tickets/` + +## Notes + +- Billing behavior should be documented from the current GSP source, not from upstream assumptions. +- Some billing changes have schema implications, so review the module code and database references together. + +## TODO + +- Add a fuller billing and website integration map after the module inventory is finished. diff --git a/Configuration.md b/Configuration.md new file mode 100644 index 0000000..7472570 --- /dev/null +++ b/Configuration.md @@ -0,0 +1,33 @@ +# Configuration + +GSP configuration is split across several layers. + +## Main Layers + +- Game template XML under `Panel/Panel/modules/config_games/server_configs/` +- Panel modules under `Panel/Panel/modules/` +- Per-module config data such as Workshop XML files under `Panel/Panel/modules/steam_workshop/game_configs/` +- Database-backed server and user state + +## Practical Rule + +When a setting affects startup commands, install behavior, or file editing, check both the module page and the game XML that defines the behavior. + +## Important Configuration Areas + +- Game names, installers, and startup parameters +- CLI parameter definitions +- Mod and Workshop support +- File editing and replacement rules +- Admin-only module settings + +## Steam Workshop Configuration + +- Workshop admin settings live in dedicated XML files under `Panel/Panel/modules/steam_workshop/game_configs/` +- Game XML `workshop_support` blocks define Workshop capability for game templates + +See: + +- [Game Template XML](Game-Template-XML.md) +- [Steam and Workshop](Steam-and-Workshop.md) +- [XML Schema and Validation](XML-Schema-and-Validation.md) diff --git a/Database.md b/Database.md new file mode 100644 index 0000000..8e4dcc7 --- /dev/null +++ b/Database.md @@ -0,0 +1,42 @@ +# Database + +This page is a first-pass map of database usage discovered in the current source. + +## Known Panel Areas + +- `config_games` owns XML game template loading and schema validation, but most of its configuration lives in XML files rather than tables. +- `steam_workshop` uses XML config files plus panel-side logic and has dedicated workshop tables in the current codebase. +- `addonsmanager` and billing-related modules also use their own tables. + +## Confirmed Steam Workshop Tables + +From the current workshop docs and code comments: + +- `steam_workshop_game_profiles` +- `steam_workshop_server_mods` +- `steam_workshop_server_settings` + +## Confirmed Server Content Tables + +From the current server content/workshop documentation: + +- `server_content_workshop` +- `server_content_workshop_catalog` + +## Other Obvious Panel Tables + +The source references additional tables such as: + +- `config_homes` +- `config_mods` +- `remote_servers` +- `user_games` + +## Notes + +- This is not a full schema dump. +- If a page needs exact column lists, inspect the module that owns the data instead of guessing. + +## TODO + +- Add a proper schema inventory page once the current repository tables are fully catalogued. diff --git a/Development.md b/Development.md new file mode 100644 index 0000000..b5b4543 --- /dev/null +++ b/Development.md @@ -0,0 +1,28 @@ +# Development + +This wiki follows a source-first workflow. + +## Development Workflow + +1. Read the relevant wiki page. +2. Inspect the current GSP source file. +3. Compare with `references/OGP/` only when upstream behavior matters. +4. Implement the change in the GSP codebase. +5. Validate syntax and schemas. +6. Update documentation when behavior changes. + +## Validation Expectations + +- Run PHP lint on modified PHP files. +- Run the XML validation script when game configs change. +- Keep reference material untouched. + +## Good Practices + +- Preserve existing conventions unless there is a clear reason to change them. +- Use TODO markers when source evidence is incomplete. +- Keep Workshop work in the dedicated `steam_workshop` module. + +## TODO + +- Add repo-specific branching and review rules if the project adopts a formal release workflow. diff --git a/File-Management.md b/File-Management.md new file mode 100644 index 0000000..751ba4b --- /dev/null +++ b/File-Management.md @@ -0,0 +1,25 @@ +# File Management + +GSP file handling is spread across several modules. + +## Relevant Modules + +- `Panel/Panel/modules/litefm/` +- `Panel/Panel/modules/ftp/` +- `Panel/Panel/modules/editconfigfiles/` +- `Panel/Panel/modules/backup-restore/` + +## Practical Notes + +- File operations should stay within the intended game home or configuration directories. +- The Panel should not touch game home files during settings-only Workshop config copy operations. +- Blank config file paths are valid in some Workshop workflows and should skip file editing entirely. + +## Source Clues + +- `remote_readfile()` and `remote_writefile()` are used to move file contents through the agent. +- `read_server_config()` is used to read XML config files. + +## TODO + +- Add specific file-management workflows and constraints once the module-by-module audit is complete. diff --git a/Game-Server-Management.md b/Game-Server-Management.md new file mode 100644 index 0000000..bf77ea3 --- /dev/null +++ b/Game-Server-Management.md @@ -0,0 +1,27 @@ +# Game Server Management + +This page covers the user-facing server lifecycle and management flow. + +## Primary Tasks + +- start and stop servers +- restart and monitor servers +- view logs +- manage files +- manage server-specific settings + +## Main Source Areas + +- `Panel/Panel/modules/gamemanager/` +- `Panel/Panel/modules/litefm/` +- `Panel/Panel/modules/ftp/` +- `Panel/Panel/modules/steam_workshop/` + +## Workshop-Related Management + +The dedicated Workshop module is used for Workshop installs, uninstalls, and Workshop configuration management. It is separate from normal server lifecycle controls. + +## Notes + +- Server lifecycle behavior should be treated as the Panel's responsibility. +- Agents should execute requests and report results, not decide policy. diff --git a/Game-Template-XML.md b/Game-Template-XML.md new file mode 100644 index 0000000..66ce07f --- /dev/null +++ b/Game-Template-XML.md @@ -0,0 +1,137 @@ +# Game Template XML + +Game template XML defines how a game server is installed, started, queried, and customized. + +## Purpose + +The XML files in `Panel/Panel/modules/config_games/server_configs/` describe: + +- the game key +- game name +- installer type +- startup command templates +- CLI parameter definitions +- mod definitions +- file replacement rules +- custom fields +- post-install and pre-start hooks +- Workshop capability metadata + +## Current GSP Schema + +The current schema is in: + +- `Panel/Panel/modules/config_games/schema_server_config.xml` + +The schema validates with: + +- `Panel/Panel/modules/config_games/tests/validate_server_configs.php` + +## Confirmed Tags In Current GSP + +From the schema and current XML files, these tags are confirmed: + +- `game_key` +- `protocol` +- `lgsl_query_name` +- `gameq_query_name` +- `installer` +- `game_name` +- `workshop_support` +- `server_exec_name` +- `query_port` +- `cli_template` +- `cli_params` +- `reserve_ports` +- `cli_allow_chars` +- `maps_location` +- `map_list` +- `console_log` +- `exe_location` +- `max_user_amount` +- `control_protocol` +- `control_protocol_type` +- `mods` +- `replace_texts` +- `server_params` +- `custom_fields` +- `list_players_command` +- `player_info_regex` +- `player_info` +- `player_commands` +- `pre_install` +- `post_install` +- `pre_start` +- `post_start` +- `environment_variables` +- `lock_files` +- `configuration_files` + +## Workshop Support Block + +The schema includes a `workshop_support` block between `game_name` and `server_exec_name`. + +Confirmed children: + +- `enabled` +- `provider` +- `steam_app_id` +- `workshop_app_id` +- `download_method` +- `install_strategy` +- `install_path` +- `startup_param_format` +- `mod_separator` +- `mod_prefix` +- `mod_folder_format` +- `copy_keys` +- `post_install_action` + +Confirmed `copy_keys` children: + +- `source_pattern` +- `target_path` + +Confirmed install strategies in the schema: + +- `game_managed_workshop` +- `steamcmd_download_only` +- `copy_to_game_root` +- `copy_to_mod_folder` +- `dayz_mod_folder` +- `arma_mod_folder` +- `config_only` +- `custom_scripted_install` + +## Example + +The Arma 3 templates currently include a `workshop_support` block: + +```xml + + 1 + steam + 107410 + 107410 + steamcmd + arma_mod_folder + {SERVER_ROOT}/{MOD_FOLDER} + -mod={MOD_LIST} + ; + @ + + {MOD_PATH}/keys/*.bikey + {SERVER_ROOT}/keys + + +``` + +## Compare With OGP + +The OGP wiki notes in `references/OGP/OGP-Website.wiki/XML-Notes.md` describe the older XML model without the current GSP `workshop_support` block. + +## TODO / Needs Verification + +- Which older XML tags are still accepted only for legacy compatibility +- Whether any additional tags are currently parsed by code outside the schema +- Whether any module-specific XML tags were added in a commit after the current schema diff --git a/Getting-Started.md b/Getting-Started.md new file mode 100644 index 0000000..5543a40 --- /dev/null +++ b/Getting-Started.md @@ -0,0 +1,42 @@ +# Getting Started + +This wiki documents the GSP Panel as a fork of Open Game Panel and a separate product with its own current behavior. + +## First Read + +- [Home](Home.md) +- [Installation](Installation.md) +- [Configuration](Configuration.md) +- [Modules](Modules.md) + +## What GSP Is + +GSP is the control-plane web panel for game server administration. It coordinates server management, XML-based game templates, file operations, and module pages. + +## Workspace Layout + +In this workspace: + +- `Panel/Panel/` contains the current GSP Panel source tree. +- `Panel.wiki/` contains this wiki. +- `references/OGP/` contains read-only upstream reference material. + +## Recommended First Steps + +1. Read the relevant wiki page for the feature you want to change. +2. Inspect the current source file in `Panel/Panel/modules/...`. +3. Compare with `references/OGP/` when original behavior matters. +4. Make the change in GSP code, not in `references/`. +5. Run the applicable validation or syntax checks. + +## Good Starting Points + +- `Panel/Panel/modules/config_games/` for XML game templates and schema validation +- `Panel/Panel/modules/steam_workshop/` for dedicated Workshop administration and installs +- `Panel/Panel/modules/gamemanager/` for server lifecycle actions +- `Panel/Panel/modules/addonsmanager/` for server content workflows + +## Notes + +- This wiki is a first-pass operational guide. +- Pages marked with TODO or Needs Verification indicate areas where source evidence was incomplete or intentionally conservative. diff --git a/Home.md b/Home.md index 5d08b7b..f40b7c3 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,27 @@ -Welcome to the Wiki. \ No newline at end of file +# Game Server Panel Wiki + +Game Server Panel is a fork of Open Game Panel. + +Game Server Panel, or GSP, is being developed as a modernized game server control panel for managing game servers, Workshop content, server files, users, and supporting XML-driven game templates. + +Start here: + +- [Getting Started](Getting-Started.md) +- [Installation](Installation.md) +- [Configuration](Configuration.md) +- [Administration](Administration.md) +- [Game Server Management](Game-Server-Management.md) +- [Modules](Modules.md) +- [Steam and Workshop](Steam-and-Workshop.md) +- [XML Schema and Validation](XML-Schema-and-Validation.md) +- [Troubleshooting](Troubleshooting.md) + +Key reference pages: + +- [Game Template XML](Game-Template-XML.md) +- [Module Reference](Module-Reference.md) +- [Database](Database.md) +- [Remote Servers and Agents](Remote-Servers-and-Agents.md) +- [OGP Fork Notes](OGP-Fork-Notes.md) + +The upstream OGP reference material is stored in `references/OGP/` in this workspace and is read-only. Use it to compare original behavior, then document GSP behavior in this wiki. diff --git a/Installation.md b/Installation.md new file mode 100644 index 0000000..0b0b158 --- /dev/null +++ b/Installation.md @@ -0,0 +1,34 @@ +# Installation + +This page is a practical overview, not a packaging guide. + +## What To Install + +- A working web stack for the Panel +- PHP with XML support +- A database server for Panel data +- The GSP Panel source tree +- The appropriate agent repositories for server execution + +## Workspace Guidance + +- Keep `references/OGP/` read-only. +- Install or deploy from the GSP source tree, not from reference material. +- Validate XML-related changes with the bundled schema check before treating them as complete. + +## Where To Look In Source + +- `Panel/Panel/modules/config_games/tests/validate_server_configs.php` +- `Panel/Panel/modules/config_games/schema_server_config.xml` +- `Panel/Panel/modules/steam_workshop/` + +## First Checks After Installation + +1. Open the Panel home page. +2. Confirm module navigation loads. +3. Confirm XML game configs parse and validate. +4. Confirm the Workshop and game management pages open without PHP errors. + +## TODO + +- Add a full platform-specific install walkthrough once the current deployment path is finalized. diff --git a/Module-Reference.md b/Module-Reference.md new file mode 100644 index 0000000..d19e4ae --- /dev/null +++ b/Module-Reference.md @@ -0,0 +1,57 @@ +# Module Reference + +This page is a working inventory of modules discovered in the current GSP Panel tree. + +## Core Modules + +| Module | Path | Purpose | Main files | Notes | +| --- | --- | --- | --- | --- | +| TS3Admin | `Panel/Panel/modules/TS3Admin/` | TeamSpeak 3 admin integration | `module.php`, `navigation.xml` | TODO: confirm current feature scope | +| addonsmanager | `Panel/Panel/modules/addonsmanager/` | Server content workflows and legacy add-ons area | `module.php`, `addons_manager.php`, `workshop_content.php`, `workshop_action.php`, `server_content_helpers.php` | Workshop entry point should remain dedicated to `steam_workshop` | +| administration | `Panel/Panel/modules/administration/` | Admin utilities and system settings | `module.php`, page files | TODO | +| backup-restore | `Panel/Panel/modules/backup-restore/` | Backup and restore functions | `module.php` | TODO | +| billing | `Panel/Panel/modules/billing/` | Billing / storefront integration | `module.php`, admin pages, docs | Relevant DB tables exist in billing code, but not fully inventoried here | +| circular | `Panel/Panel/modules/circular/` | Small utility module | `module.php` | TODO | +| config_games | `Panel/Panel/modules/config_games/` | XML game templates, schema, and config parsing | `config_servers.php`, `server_config_parser.php`, `schema_server_config.xml`, `tests/validate_server_configs.php` | High-confidence module | +| cron | `Panel/Panel/modules/cron/` | Scheduled task handling | `module.php` | TODO | +| dashboard | `Panel/Panel/modules/dashboard/` | Home/dashboard pages | `module.php` | TODO | +| dsi | `Panel/Panel/modules/dsi/` | Game-related service integration | `module.php` | TODO | +| editconfigfiles | `Panel/Panel/modules/editconfigfiles/` | Config file editing | `module.php` | Works with file/config management flows | +| faq | `Panel/Panel/modules/faq/` | FAQ pages | `module.php` | TODO | +| fast_download | `Panel/Panel/modules/fast_download/` | Download helper paths | `module.php` | TODO | +| ftp | `Panel/Panel/modules/ftp/` | FTP-related file access | `module.php` | TODO | +| gamemanager | `Panel/Panel/modules/gamemanager/` | Server lifecycle and game monitoring | `module.php`, `mini_start.php`, `home_handling_functions.php`, `update_actions.php` | Central gameplay management module | +| lgsl_with_img_mod | `Panel/Panel/modules/lgsl_with_img_mod/` | LGSL query integration | `module.php` | TODO | +| litefm | `Panel/Panel/modules/litefm/` | File manager | `module.php` | User-facing file operations | +| lostpwd | `Panel/Panel/modules/lostpwd/` | Lost password flow | `module.php` | TODO | +| mods | `Panel/Panel/modules/mods/` | Mod definitions and mod tools | `module.php` | TODO | +| modulemanager | `Panel/Panel/modules/modulemanager/` | Module enable/disable or management | `module.php` | TODO | +| mysql | `Panel/Panel/modules/mysql/` | MySQL database tools | `module.php` | TODO | +| news | `Panel/Panel/modules/news/` | News / announcements | `module.php` | TODO | +| rcon | `Panel/Panel/modules/rcon/` | Remote console tools | `module.php` | TODO | +| register | `Panel/Panel/modules/register/` | User registration | `module.php` | TODO | +| reseller | `Panel/Panel/modules/reseller/` | Reseller admin flows | `module.php`, `navigation.xml` | Seen in Git history and navigation | +| server | `Panel/Panel/modules/server/` | Server views / server-side pages | `module.php` | TODO | +| settings | `Panel/Panel/modules/settings/` | Panel settings | `module.php` | TODO | +| steam_workshop | `Panel/Panel/modules/steam_workshop/` | Dedicated Steam Workshop module | `module.php`, `main.php`, `workshop_admin.php`, `uninstall.php`, `functions.php` | Active dedicated Workshop module | +| subusers | `Panel/Panel/modules/subusers/` | Sub-user management | `module.php` | TODO | +| support | `Panel/Panel/modules/support/` | Support pages | `module.php` | TODO | +| teamspeak3 | `Panel/Panel/modules/teamspeak3/` | TeamSpeak 3 integration | `module.php` | TODO | +| tickets | `Panel/Panel/modules/tickets/` | Ticketing / support tickets | `module.php`, `navigation.xml` | TODO | +| tshock | `Panel/Panel/modules/tshock/` | TShock / Terraria-related admin | `module.php` | TODO | +| update | `Panel/Panel/modules/update/` | Update flow | `module.php` | TODO | +| user_admin | `Panel/Panel/modules/user_admin/` | User administration | `module.php` | Admin-facing | +| user_games | `Panel/Panel/modules/user_games/` | User game server list and access | `module.php` | User-facing | +| util | `Panel/Panel/modules/util/` | Shared utilities | `module.php` | TODO | +| website | `Panel/Panel/modules/website/` | Website integration pages | `module.php` | TODO | + +## Additional Workshop-Related Files + +- `Panel/Panel/modules/steam_workshop/game_configs/` contains per-game Workshop XML profiles. +- `Panel/Panel/modules/steam_workshop/navigation.xml` exposes the dedicated pages. +- `Panel/Panel/modules/steam_workshop/simple_admin_helper.php` adds a simple admin UI helper. + +## Notes + +- Some modules may contain subpages not listed here because their behavior is still being inventoried. +- For any module not yet fully understood, treat this as a first-pass reference and add TODOs rather than assumptions. diff --git a/Modules.md b/Modules.md new file mode 100644 index 0000000..0b94e58 --- /dev/null +++ b/Modules.md @@ -0,0 +1,27 @@ +# Modules + +GSP modules are organized under `Panel/Panel/modules/`. + +## How Modules Work + +- Each module lives in its own directory. +- Most modules expose a `module.php` entry point and one or more page files. +- Many modules also provide `navigation.xml`, styles, or helper scripts. +- Module behavior is usually split between user-facing pages and admin pages. + +## Major Module Areas + +- Server management +- User and permission management +- Configuration and XML tools +- Workshop and content management +- Billing and website integration + +## Discovered Modules + +See [Module Reference](Module-Reference.md) for the current module inventory and the main files in each module. + +## Notes + +- `references/OGP/` contains upstream module documentation for comparison only. +- When a module is unclear, document it as TODO instead of inventing behavior. diff --git a/OGP-Fork-Notes.md b/OGP-Fork-Notes.md new file mode 100644 index 0000000..8d941e2 --- /dev/null +++ b/OGP-Fork-Notes.md @@ -0,0 +1,33 @@ +# OGP Fork Notes + +Game Server Panel is a fork of Open Game Panel. + +## Reference Policy + +- `references/OGP/` is read-only upstream reference material. +- Use it to understand old behavior, then implement changes in GSP source only. +- Do not edit, move, rename, or delete anything under `references/`. + +## Confirmed Differences + +- GSP has a dedicated `steam_workshop` module that is active in this workspace. +- GSP also has a schema-level `workshop_support` block for XML game templates. +- GSP has a bundled XML validation script for game configs. +- GSP's Steam Workshop handling has been rewritten multiple times in the current history, including admin profile and server-settings work. +- GSP's DayZ/Arma XML handling includes CDATA and validation cleanup that is not described in the older OGP wiki notes. + +## Likely Differences That Need More Review + +- Exactly which legacy OGP XML tags remain supported only for compatibility +- Which modules have diverged from upstream beyond naming and rebranding +- Which database schema differences are intentional versus historical leftovers + +## Useful Upstream References + +- `references/OGP/OGP-Website.wiki/XML-Notes.md` +- `references/OGP/Module-Steam_Workshop/README.md` +- `references/OGP/OGP-Website.wiki/Home.md` + +## TODO + +- Expand this page with a module-by-module diff once the source audit is complete. diff --git a/Release-Process.md b/Release-Process.md new file mode 100644 index 0000000..85914e5 --- /dev/null +++ b/Release-Process.md @@ -0,0 +1,22 @@ +# Release Process + +This is a first-pass release note, not a formal release playbook. + +## Current Practical Steps + +1. Finish the code or docs change. +2. Validate the affected files. +3. Review `git status`. +4. Commit with a clear message. +5. Review the result before pushing. + +## Suggested Checks + +- PHP syntax checks for modified PHP files +- XML validation for changed game configs +- Manual smoke testing of the affected module pages + +## Notes + +- No formal release automation was confirmed in the current source inspection. +- Add a fuller process when the team standardizes one. diff --git a/Remote-Servers-and-Agents.md b/Remote-Servers-and-Agents.md new file mode 100644 index 0000000..9bab9da --- /dev/null +++ b/Remote-Servers-and-Agents.md @@ -0,0 +1,35 @@ +# Remote Servers and Agents + +GSP uses remote communication to control game servers through agents. + +## Current Panel-Side Flow + +- Panel modules build an action. +- The Panel sends the action through its remote library. +- The agent executes the request. +- The Panel reads back status or logs. + +## Important Source Areas + +- `Panel/Panel/includes/lib_remote.php` +- `Panel/Panel/modules/gamemanager/` +- `Panel/Panel/modules/steam_workshop/` + +## Confirmed Remote Methods Used In Workshop Paths + +- `steam_cmd(...)` +- `steam_workshop(...)` +- `get_workshop_mods_info(...)` +- `remote_writefile(...)` +- `remote_readfile(...)` +- `exec(...)` + +## Agent Repositories + +The agent code lives in the separate GSP agent repositories, not in the Panel wiki or the Panel source tree. + +## Notes + +- The Panel decides policy. +- The agents execute trusted requests and report back. +- Reference material under `references/OGP/` is read-only and should only be used to compare old behavior. diff --git a/Steam-and-Workshop.md b/Steam-and-Workshop.md new file mode 100644 index 0000000..99204ef --- /dev/null +++ b/Steam-and-Workshop.md @@ -0,0 +1,41 @@ +# Steam and Workshop + +GSP keeps Steam Workshop behavior in the dedicated `steam_workshop` module. + +## Current Module Scope + +- User-facing Workshop installs and uninstalls +- Workshop search and item lookup +- Admin Workshop XML profile management +- Copying Workshop configuration settings between XML files + +## Important Paths + +- `Panel/Panel/modules/steam_workshop/` +- `Panel/Panel/modules/steam_workshop/game_configs/` +- `Panel/Panel/modules/config_games/server_configs/` + +## Confirmed Behavior + +- The dedicated Workshop module is the active Workshop path in this workspace. +- The admin copy feature copies configuration settings only. +- Installed mods, mod folders, and game server files are not copied by that feature. +- Blank `File Path` means config-file editing is skipped. + +## Workshop Config Copy Rule + +The copy source dropdown should use a safe XML filename value and the handler should validate that filename before reading from `game_configs/`. + +## GSP Game XML Support + +Current game XML includes a schema-level `workshop_support` block for Workshop-enabled templates. + +See: + +- [Game Template XML](Game-Template-XML.md) +- [XML Schema and Validation](XML-Schema-and-Validation.md) + +## Notes + +- Do not move Workshop back into `addonsmanager`. +- Treat `references/OGP/` as upstream reference code only. diff --git a/Troubleshooting.md b/Troubleshooting.md new file mode 100644 index 0000000..25f7a6a --- /dev/null +++ b/Troubleshooting.md @@ -0,0 +1,25 @@ +# Troubleshooting + +Use this page for fast triage. + +## XML Problems + +- If a game config fails to load, check `Panel/Panel/modules/config_games/schema_server_config.xml`. +- Run the XML validation script. +- Compare against `references/OGP/` only if you need upstream behavior. + +## Workshop Problems + +- If Workshop copy validation fails, verify the source is a safe XML filename under `Panel/Panel/modules/steam_workshop/game_configs/`. +- If the module complains about a missing config file, check the destination XML file and path rules. +- If blank `File Path` still tries to edit a game file, that is a bug. + +## Remote and Agent Problems + +- Confirm the agent is online. +- Confirm the remote library can reach the server. +- Confirm the requested action is still within the module's supported workflow. + +## Notes + +- When a problem seems to involve old OGP behavior, inspect the matching file under `references/OGP/` and fix the GSP code only. diff --git a/Users-and-Permissions.md b/Users-and-Permissions.md new file mode 100644 index 0000000..3d012e3 --- /dev/null +++ b/Users-and-Permissions.md @@ -0,0 +1,25 @@ +# Users and Permissions + +GSP permissions are split between admin users, regular users, and sub-users. + +## Main Areas + +- `Panel/Panel/modules/user_admin/` +- `Panel/Panel/modules/subusers/` +- `Panel/Panel/modules/register/` +- `Panel/Panel/modules/lostpwd/` +- `Panel/Panel/modules/reseller/` + +## Practical Rules + +- Admin-only pages should remain admin-only. +- Workshop admin actions are restricted to admins. +- User-facing modules should not expose reference material or privileged paths. + +## Workshop Example + +The dedicated Workshop admin page is admin-only and is used to manage Workshop XML config settings. It should not be used to expose installed mod files or reference code. + +## TODO + +- Add a fuller permission matrix once the source-side role handling is documented. diff --git a/XML-Schema-and-Validation.md b/XML-Schema-and-Validation.md new file mode 100644 index 0000000..4db2450 --- /dev/null +++ b/XML-Schema-and-Validation.md @@ -0,0 +1,55 @@ +# XML Schema and Validation + +This page explains where GSP validates XML and how to check changes safely. + +## Current Validation Path + +Primary files: + +- `Panel/Panel/modules/config_games/schema_server_config.xml` +- `Panel/Panel/modules/config_games/server_config_parser.php` +- `Panel/Panel/modules/config_games/tests/validate_server_configs.php` +- `Panel/Panel/includes/lib_remote.php` + +## How Validation Works + +- `read_server_config()` loads a game XML file and validates it against the bundled schema. +- The validation test script loads every XML file in `server_configs/` and validates each one against the same schema. +- XML parse failures and schema failures are treated as real errors, not warnings. + +## How To Validate XML Changes + +1. Edit the XML file in `Panel/Panel/modules/config_games/server_configs/`. +2. Confirm the XML is well-formed. +3. Run the bundled validation script: + +```bash +php Panel/modules/config_games/tests/validate_server_configs.php +``` + +4. Fix any schema or parse errors before merging. + +## GSP-Specific XML Findings + +Confirmed from the current source: + +- `workshop_support` is part of the schema. +- `workshop_support` is positioned after `game_name` and before `server_exec_name`. +- The schema includes explicit Workshop install strategy values. +- The validation script is part of the current Panel tree, not just a reference note. + +## Git History Notes + +Searches in the current Panel history show several XML-related changes, including: + +- `5a03946d...` `woekshop phase 1` +- `69f415ad...` `feat(steam_workshop): production rewrite with full admin profile page and server settings` +- `6d9cd28a...` `feat: Server Content Phase 2 - schema, cache mode setting, install history, manifest, requires_stop` +- `de80f896...` `fix: wrap DayZ post_install scripts in CDATA, add XML editor auto-sanitizer` +- `d564476d...` `feat: GSP 1.0 baseline - module versions, FAQ refresh, XML editor validation, Obsidian theme` + +## Needs Verification + +- The exact timeline of every XML tag addition +- Whether any non-schema XML tags are intentionally accepted by runtime code +- Whether additional validation exists in any module outside `config_games`