Complete SCUM controlled deployment lifecycle
This commit is contained in:
@@ -109,6 +109,12 @@
|
||||
"items": { "$ref": "#/$defs/runtimeInstallPlan" },
|
||||
"uniqueItems": true
|
||||
},
|
||||
"serverDeployments": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/runtimeServerDeploymentProfile" },
|
||||
"uniqueItems": true,
|
||||
"maxItems": 8
|
||||
},
|
||||
"logSources": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/runtimeLogSource" },
|
||||
@@ -329,6 +335,8 @@
|
||||
"process.stop",
|
||||
"process.restart",
|
||||
"process.status",
|
||||
"deployment.plan.v1",
|
||||
"deployment.scum.v1",
|
||||
"config.write",
|
||||
"files.list",
|
||||
"files.read",
|
||||
@@ -518,6 +526,58 @@
|
||||
"steps": { "type": "array", "items": { "$ref": "#/$defs/runtimeInstallStep" }, "minItems": 1, "maxItems": 64 }
|
||||
}
|
||||
},
|
||||
"runtimeServerConfigMapping": {
|
||||
"type": "object",
|
||||
"required": ["fieldKey", "configKey", "valueType"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"fieldKey": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9._/-]*$", "maxLength": 80 },
|
||||
"configKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"valueType": { "enum": ["text", "integer", "number", "boolean", "port"] },
|
||||
"required": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"runtimeServerDiscoveryMarker": {
|
||||
"type": "object",
|
||||
"required": ["key", "kind", "targetKey"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"key": { "$ref": "#/$defs/logicalKey" },
|
||||
"kind": { "enum": ["file.exists", "command.version", "port.open", "steam.app"] },
|
||||
"targetKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"expected": { "type": "string", "maxLength": 120 },
|
||||
"required": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"runtimeServerVerificationCheck": {
|
||||
"type": "object",
|
||||
"required": ["key", "kind", "targetKey"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"key": { "$ref": "#/$defs/logicalKey" },
|
||||
"kind": { "enum": ["executable.present", "version.matches", "port.bound", "config.readable", "process.healthy"] },
|
||||
"targetKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"required": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"runtimeServerDeploymentProfile": {
|
||||
"type": "object",
|
||||
"required": ["key", "version", "supportedTargets", "steamAppId", "executableKey", "installRootKey", "configKey", "configFormat", "configMappings", "discoveryMarkers", "verificationChecks"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"key": { "$ref": "#/$defs/logicalKey" },
|
||||
"version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?$" },
|
||||
"supportedTargets": { "type": "array", "items": { "$ref": "#/$defs/runtimeTarget" }, "minItems": 1, "uniqueItems": true },
|
||||
"steamAppId": { "type": "string", "pattern": "^[0-9]{1,12}$" },
|
||||
"executableKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"installRootKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"configKey": { "$ref": "#/$defs/logicalKey" },
|
||||
"configFormat": { "enum": ["ini", "json", "yaml", "properties"] },
|
||||
"configMappings": { "type": "array", "items": { "$ref": "#/$defs/runtimeServerConfigMapping" }, "minItems": 1, "maxItems": 32, "uniqueItems": true },
|
||||
"discoveryMarkers": { "type": "array", "items": { "$ref": "#/$defs/runtimeServerDiscoveryMarker" }, "minItems": 1, "maxItems": 32, "uniqueItems": true },
|
||||
"verificationChecks": { "type": "array", "items": { "$ref": "#/$defs/runtimeServerVerificationCheck" }, "minItems": 5, "maxItems": 16, "uniqueItems": true }
|
||||
}
|
||||
},
|
||||
"runtimeLogSource": {
|
||||
"type": "object",
|
||||
"required": ["key", "kind", "streamKey"],
|
||||
|
||||
Reference in New Issue
Block a user