Complete platform management workflows
This commit is contained in:
@@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user