Add SCUM file management workbench

This commit is contained in:
npc0-hue
2026-08-04 11:33:34 +08:00
parent 2921edb401
commit f028a343d7
36 changed files with 1384 additions and 158 deletions
+6 -5
View File
@@ -6,11 +6,12 @@ when a server uses `custom-command` mode and Run executes the operator-reviewed
argv-oriented command inside its local policy.
Guided or existing-server game setup is plugin-owned. Platform dispatches the
plugin-declared lifecycle action reference, such as `actions/install.json`, and
may include generic deployment context (`mode`, `profileKey`, `serverRoot`, and
`createInputs`) so the plugin action can resolve its own behavior. Platform does
not create a game-specific `serverDeploymentPlan`, and SCUM no longer requires a
`deployment.scum.v1` capability.
plugin-declared lifecycle action reference, such as `actions/install.json` or a
supervised `actions/start.json` bootstrap, and may include generic deployment
context (`mode`, `profileKey`, `serverRoot`, and `createInputs`) so the plugin
action can resolve its own behavior. Platform does not create a game-specific
`serverDeploymentPlan`, and SCUM no longer requires a `deployment.scum.v1`
capability.
## Capability and policy
+5 -5
View File
@@ -19,9 +19,9 @@ A server instance is created from one installed game management plugin and bound
### States
- `draft`: instance record exists but install job has not completed.
- `installing`: run install job is active.
- `ready`: install succeeded and the server can start.
- `draft`: instance record exists but the first bootstrap job has not completed.
- `installing`: the first plugin-owned bootstrap job is active.
- `ready`: install/bootstrap succeeded without starting a supervised process, and the server can start.
- `running`: server process is running.
- `stopped`: server process is stopped.
- `failed`: last lifecycle operation failed.
@@ -36,7 +36,7 @@ A server instance is created from one installed game management plugin and bound
## Lifecycle Actions
- `create`: validate plugin, create instance record, dispatch install job.
- `create`: validate plugin, create instance record, dispatch the plugin-owned bootstrap job.
- `start`: dispatch process start job through the bound run endpoint.
- `stop`: dispatch process stop job through the bound run endpoint.
- `restart`: dispatch stop/start or plugin-defined restart job.
@@ -48,7 +48,7 @@ A server instance is created from one installed game management plugin and bound
- `GET /api/v1/plugin-marketplace/plugins` lists plugin marketplace summaries from registry metadata with status, server type, capability, and keyword filters.
- `GET /api/v1/plugin-marketplace/plugins/{id}` returns one registry-backed marketplace detail.
- `POST /api/v1/plugin-marketplace/plugins/{id}/state` applies metadata-only `install`, `enable`, or `disable` state changes.
- `POST /api/v1/server-instances/workflows/create` validates an installed plugin, a compatible run endpoint, a non-empty idempotency key, and required lifecycle action references. It creates the instance in `installing` state and queues a `process.install` job.
- `POST /api/v1/server-instances/workflows/create` validates an installed plugin, a compatible run endpoint, a non-empty idempotency key, and required lifecycle action references. It creates the instance in `installing` state and queues either `process.install` or, for guided deployments whose selected lifecycle profile supports supervised start, `process.start` so the plugin start script can install-if-missing and stream process logs.
- `POST /api/v1/server-instances/{id}/start` validates the instance is `ready` or `stopped`, checks the expected config version, verifies the plugin start action and run endpoint `process.start` capability, and queues a start job.
- `POST /api/v1/server-instances/{id}/stop` validates the instance is `running`, checks the expected config version, verifies the plugin stop action and run endpoint `process.stop` capability, and queues a stop job.
- `GET /api/v1/server-instances/{id}/config` returns logical read-only config content for an authorized server instance with config version, format, key, source, and update timestamp metadata.