server content fix
This commit is contained in:
parent
8a56ddc83c
commit
67022a3846
9 changed files with 589 additions and 740 deletions
|
|
@ -26,22 +26,31 @@ Known tables used by the module:
|
|||
- `server_content_manifest`
|
||||
- `server_content_install_history`
|
||||
|
||||
## What It Already Does
|
||||
## Current Model
|
||||
|
||||
The module can already represent several content types, including:
|
||||
All server content installs through the scripted installer workflow.
|
||||
|
||||
- downloads/extracted packages
|
||||
- post-script driven installs
|
||||
- config packs
|
||||
- server-side applications with lifecycle hooks
|
||||
- future profile-type content
|
||||
`addon_type` is now treated as a category used for sorting and filtering only.
|
||||
Examples:
|
||||
|
||||
- `Server Content`
|
||||
- `Mod`
|
||||
- `Map`
|
||||
- `Config`
|
||||
- `Bot`
|
||||
- `Admin Tool`
|
||||
- `DayZ Mod`
|
||||
- `Minecraft Version`
|
||||
- `Steam Workshop Collection`
|
||||
- `Server-side Application`
|
||||
|
||||
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:
|
||||
`Server-side Application` is a category plus optional startup-hook metadata.
|
||||
Any content item with startup-hook metadata enabled writes an agent-readable
|
||||
hook manifest under the target game home:
|
||||
|
||||
```text
|
||||
_gsp_content/hooks/<app>.json
|
||||
|
|
@ -50,17 +59,31 @@ _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.
|
||||
Use this category and hook metadata 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
|
||||
## Installer Fields
|
||||
|
||||
- Cache and cleanup policy need a clearer product design.
|
||||
Every content item may use:
|
||||
|
||||
- install script
|
||||
- optional download URL
|
||||
- optional target path
|
||||
- optional extract path
|
||||
- version
|
||||
- description
|
||||
- stop server before install
|
||||
- backup target path before install
|
||||
- restart server after install
|
||||
- cacheable flag
|
||||
|
||||
The install script is the source of truth. Helper fields can be used to
|
||||
generate a basic scripted installer when a full script is not supplied.
|
||||
|
||||
## Where To Start Reading
|
||||
|
||||
|
|
@ -81,6 +104,15 @@ This module is the right place for:
|
|||
- server content manifests
|
||||
- install history
|
||||
|
||||
## Migration
|
||||
|
||||
Older category values are migrated or normalized as follows:
|
||||
|
||||
- `Downloadable Mod` / `file_download` / `plugin` -> `Mod`
|
||||
- `Configuration Package` / `config_edit` / `config` -> `Config`
|
||||
- `Scripted Installer` / `scripted_installer` -> `Server Content`
|
||||
- `Server-side Application` / `server_app` -> `Server-side Application`
|
||||
|
||||
## Validation
|
||||
|
||||
Relevant smoke tests:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue