Panel/docs/modules/SERVER_CONTENT_MANAGER.md

93 lines
2.6 KiB
Markdown

# Server Content Manager
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
## Current State
`Panel/modules/addonsmanager` is the current home of GSP's Server Content / Add-ons work.
The module title has already been moved toward `Server Content Manager`, but the schema and some folder names remain backward-compatible.
Important files:
- `Panel/modules/addonsmanager/module.php`
- `Panel/modules/addonsmanager/addons_manager.php`
- `Panel/modules/addonsmanager/user_addons.php`
- `Panel/modules/addonsmanager/server_content_helpers.php`
- `Panel/modules/addonsmanager/server_content_categories.php`
## Database Tables
Known tables used by the module:
- `addons`
- `server_content_workshop`
- `server_content_workshop_catalog`
- `server_content_manifest`
- `server_content_install_history`
## What It Already Does
The module can already represent several content types, including:
- downloads/extracted packages
- post-script driven installs
- config packs
- server-side applications with lifecycle hooks
- future profile-type content
Steam Workshop is no longer a user-facing Server Content category. Workshop access belongs to the dedicated `steam_workshop` module.
## Server-Side Applications
`Server-side Application` content writes an agent-readable hook manifest under
the target game home:
```text
_gsp_content/hooks/<app>.json
```
The agents generate runtime watchdog scripts in `_gsp_content/generated/` and
track side-application PIDs in `_gsp_content/runtime/server_content.pids`.
Use this type for companion applications such as BEC, Big Brother Bot, Discord
bridges, RCON tools, and log watchers. The application files themselves may
still be installed wherever the game requires them.
Detailed lifecycle documentation:
- `docs/features/SERVER_CONTENT_APPLICATION_HOOKS.md`
## Current Limitations
- Cache and cleanup policy need a clearer product design.
## Where To Start Reading
1. `Panel/modules/addonsmanager/module.php`
2. `Panel/modules/addonsmanager/addons_manager.php`
3. `Panel/modules/addonsmanager/user_addons.php`
4. `Panel/modules/addonsmanager/server_content_categories.php`
## Important Concept
This module is the right place for:
- mods
- add-ons
- config packs
- script-driven installs
- server-side companion application hooks
- server content manifests
- install history
## Validation
Relevant smoke tests:
```bash
php Panel/modules/addonsmanager/tests/workshop_helpers_test.php
php Panel/modules/config_games/tests/validate_server_configs.php
```
`validate_server_configs.php` validates every XML file under `Panel/modules/config_games/server_configs/` against `schema_server_config.xml`.