Complete platform management workflows

This commit is contained in:
npc0-hue
2026-07-14 16:39:37 +08:00
parent 7e05d0a4e7
commit 4f33f761a3
106 changed files with 11313 additions and 460 deletions
+346 -11
View File
@@ -5,11 +5,19 @@
"description": "First-party local SCUM game server management plugin for platform-mediated lifecycle proof.",
"version": "0.1.0",
"kind": "game-plugin",
"tags": ["scum", "survival", "dedicated-server", "local-proof"],
"tags": [
"scum",
"survival",
"dedicated-server",
"local-proof"
],
"server": {
"type": "scum",
"displayName": "SCUM Dedicated Server",
"supportedOS": ["windows", "linux"],
"supportedOS": [
"windows",
"linux"
],
"createFormSchema": "schemas/create-form.schema.json"
},
"capabilities": [
@@ -22,10 +30,45 @@
"files.read",
"files.patch",
"logs.read",
"remote.ftp.read",
"remote.ftp.write",
"remote.rsync.read",
"remote.rsync.write",
"remote.run.files.read",
"remote.run.files.write",
"remote.run.process.start",
"remote.run.process.stop",
"remote.run.db.mysql.query",
"remote.run.db.sqlite.query",
"remote.run.logs.transfer",
"remote.run.rcon.command",
"artifacts.read",
"artifacts.write",
"ai.invoke"
],
"remoteAccess": {
"methods": [
"ftp",
"rsync",
"run"
],
"runCapabilities": [
"remote.run.files.read",
"remote.run.files.write",
"remote.run.process.start",
"remote.run.process.stop",
"remote.run.db.mysql.query",
"remote.run.db.sqlite.query",
"remote.run.logs.transfer",
"remote.run.rcon.command"
],
"databaseEngines": [
"mysql",
"sqlite"
],
"rcon": true,
"logTransfer": true
},
"bridge": {
"actions": [
"server.instances.read",
@@ -33,7 +76,12 @@
"logs.query",
"artifacts.open",
"files.request",
"ai.invoke"
"remote.access.request",
"ai.invoke",
"run.distribution.request",
"dependencies.request",
"logs.backfill.request",
"client-manager.request"
]
},
"permissions": [
@@ -45,7 +93,11 @@
"server.logs.read",
"server.artifacts.read",
"server.artifacts.write",
"ai.invoke"
"server.remote.access",
"ai.invoke",
"server.run.distribution",
"server.dependencies.manage",
"server.client-manager.manage"
],
"actions": {
"install": "actions/install.json",
@@ -59,25 +111,308 @@
"key": "overview",
"title": "SCUM 概览",
"path": "/overview",
"permissions": ["server.read", "server.lifecycle"],
"bridgeActions": ["server.instances.read", "jobs.dispatch"]
"permissions": [
"server.read",
"server.lifecycle"
],
"bridgeActions": [
"server.instances.read",
"jobs.dispatch"
]
},
{
"key": "config",
"title": "SCUM 配置",
"path": "/config",
"permissions": ["server.files.read", "server.files.write", "ai.invoke"],
"bridgeActions": ["files.request", "ai.invoke"]
"permissions": [
"server.files.read",
"server.files.write",
"ai.invoke"
],
"bridgeActions": [
"files.request",
"ai.invoke"
]
},
{
"key": "logs",
"title": "SCUM 日志",
"path": "/logs",
"permissions": ["server.logs.read", "server.artifacts.read", "ai.invoke"],
"bridgeActions": ["logs.query", "artifacts.open", "ai.invoke"]
"permissions": [
"server.logs.read",
"server.artifacts.read",
"server.remote.access",
"ai.invoke"
],
"bridgeActions": [
"logs.query",
"artifacts.open",
"remote.access.request",
"ai.invoke"
]
},
{
"key": "remote",
"title": "SCUM 远程",
"path": "/remote",
"permissions": [
"server.remote.access",
"server.files.read",
"server.files.write",
"server.lifecycle"
],
"bridgeActions": [
"remote.access.request",
"files.request",
"jobs.dispatch"
]
}
],
"ai": {
"purposes": ["config.suggest", "logs.diagnose"]
"purposes": [
"config.suggest",
"logs.diagnose"
]
},
"runtimeProfiles": {
"discovery": [
{
"key": "steamcmd",
"kind": "command.version",
"targetKey": "steamcmd",
"required": true
},
{
"key": "scum-install",
"kind": "file.exists",
"targetKey": "server/install-root",
"required": true,
"platforms": [
"windows"
]
}
],
"lifecycleProfiles": [
{
"key": "run-local",
"mode": "local-process",
"capabilities": [
"process.install",
"process.start",
"process.stop",
"process.restart",
"process.status",
"remote.run.process.start",
"remote.run.process.stop"
],
"actionRefs": {
"install": "actions/install.json",
"start": "actions/start.json",
"stop": "actions/stop.json",
"restart": "actions/restart.json",
"status": "actions/status.json"
},
"transportKeys": [
"server-files",
"sqlite-db",
"mysql-db",
"rcon"
],
"platforms": [
"windows"
]
},
{
"key": "hosted-ftp",
"mode": "hosted-ftp-rcon",
"capabilities": [
"remote.ftp.read",
"remote.ftp.write",
"remote.run.logs.transfer",
"remote.run.rcon.command"
],
"transportKeys": [
"ftp",
"rcon"
],
"platforms": [
"windows",
"linux"
]
},
{
"key": "scum-client",
"mode": "custom-client",
"capabilities": [
"remote.run.rcon.command",
"remote.run.logs.transfer"
],
"transportKeys": [
"client-rcon"
],
"clientManagerRef": "scum-client-manager",
"platforms": [
"windows"
]
}
],
"dependencyProbes": [
{
"key": "steamcmd",
"kind": "command.version",
"targetKey": "steamcmd",
"required": true,
"platforms": [
"windows",
"linux"
]
},
{
"key": "sqlite",
"kind": "package.installed",
"targetKey": "sqlite-driver",
"required": false,
"platforms": [
"windows",
"linux"
]
}
],
"installPlans": [
{
"key": "install-steamcmd-linux",
"title": "Install SteamCMD",
"platforms": [
"linux"
],
"steps": [
{
"type": "package",
"targetKey": "steamcmd",
"packageManager": "apt",
"packageName": "steamcmd"
}
]
}
],
"logSources": [
{
"key": "chat-log",
"kind": "ftp.poll",
"targetKey": "logs/chat",
"streamKey": "chat",
"cursorKind": "ftp-listing",
"retentionDays": 90
},
{
"key": "server-log",
"kind": "file.tail",
"targetKey": "logs/server",
"streamKey": "server",
"cursorKind": "fingerprint",
"retentionDays": 90
},
{
"key": "client-manager",
"kind": "client-manager",
"targetKey": "scum-client-manager",
"streamKey": "client-manager",
"cursorKind": "sequence",
"retentionDays": 30
}
],
"transportProfiles": [
{
"key": "server-files",
"kind": "file",
"targetKey": "server-root",
"capabilities": [
"remote.run.files.read",
"remote.run.files.write"
]
},
{
"key": "ftp",
"kind": "ftp",
"targetKey": "ftp-root",
"capabilities": [
"remote.ftp.read",
"remote.ftp.write"
]
},
{
"key": "rsync",
"kind": "rsync",
"targetKey": "rsync-root",
"capabilities": [
"remote.rsync.read",
"remote.rsync.write"
]
},
{
"key": "sqlite-db",
"kind": "sqlite",
"targetKey": "db/sqlite",
"capabilities": [
"remote.run.db.sqlite.query"
]
},
{
"key": "mysql-db",
"kind": "mysql",
"targetKey": "db/mysql",
"capabilities": [
"remote.run.db.mysql.query"
]
},
{
"key": "rcon",
"kind": "rcon",
"targetKey": "rcon",
"capabilities": [
"remote.run.rcon.command"
]
},
{
"key": "client-rcon",
"kind": "rcon",
"targetKey": "client/rcon",
"capabilities": [
"remote.run.rcon.command"
]
}
],
"clientManagers": [
{
"key": "scum-client-manager",
"displayName": "SCUM Client Manager",
"repository": {
"url": "https://github.com/F88888/scum_client.git",
"revisionPolicy": "branch",
"branch": "main"
},
"supportedTargets": [
{
"os": "windows",
"arch": "amd64"
}
],
"build": {
"system": "go",
"workspaceRef": "scum_client",
"entryRef": "main.go"
},
"configTemplates": [
{
"key": "client-config",
"templateRef": "configs/client.template.json",
"outputRef": "config.json"
}
],
"outputArtifacts": [
"scum_client.exe"
]
}
]
}
}