Integrate SCUM real ops workflows

This commit is contained in:
npc0-hue
2026-08-10 21:12:53 +08:00
parent 1063330710
commit a770bc6250
88 changed files with 6375 additions and 2719 deletions
@@ -271,6 +271,11 @@
"items": { "$ref": "#/$defs/gameClientBridgeQueryTemplate" },
"maxItems": 128
},
"operationTemplates": {
"type": "array",
"items": { "$ref": "#/$defs/gameClientBridgeOperationTemplate" },
"maxItems": 128
},
"commandRetentionSeconds": { "type": "integer", "minimum": 1, "maximum": 31536000 },
"maxCommands": { "type": "integer", "minimum": 1, "maximum": 100000 },
"pages": {
@@ -359,6 +364,55 @@
"timeoutSeconds": { "type": "integer", "minimum": 1, "maximum": 60 }
}
},
"gameClientBridgeOperationSafety": {
"type": "object",
"additionalProperties": false,
"properties": {
"requiresApproval": { "type": "boolean" },
"requiresOfflinePlayer": { "type": "boolean" },
"requiresMaintenanceWindow": { "type": "boolean" },
"requiresBeforeValue": { "type": "boolean" },
"requiresConfirmation": { "type": "boolean" },
"backupRequired": { "type": "boolean" }
}
},
"gameClientBridgeOperationMutation": {
"type": "object",
"required": ["fieldKey", "tableKey", "identityKey", "valueKey", "confirmationQueryKey", "allowedValueType"],
"additionalProperties": false,
"properties": {
"fieldKey": { "$ref": "#/$defs/logicalKey" },
"tableKey": { "$ref": "#/$defs/logicalKey" },
"identityKey": { "$ref": "#/$defs/logicalKey" },
"valueKey": { "$ref": "#/$defs/logicalKey" },
"confirmationQueryKey": { "$ref": "#/$defs/logicalKey" },
"allowedValueType": { "enum": ["integer", "number", "string", "boolean"] },
"minValue": { "type": "number" },
"maxValue": { "type": "number" }
}
},
"gameClientBridgeOperationTemplate": {
"type": "object",
"required": ["key", "title", "permission", "approvalLevel", "kind", "transportKey", "targetKey", "payloadSchemaRef", "timeoutSeconds", "maxPayloadBytes"],
"additionalProperties": false,
"properties": {
"key": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"permission": { "$ref": "#/$defs/pluginPermission" },
"approvalLevel": { "enum": ["operator", "platform-admin"] },
"kind": { "enum": ["rcon", "sqlite-mutation"] },
"transportKey": { "$ref": "#/$defs/logicalKey" },
"targetKey": { "$ref": "#/$defs/logicalKey" },
"payloadSchemaRef": { "$ref": "#/$defs/relativeJsonRef" },
"resultSchemaRef": { "$ref": "#/$defs/relativeJsonRef" },
"confirmationSchemaRef": { "$ref": "#/$defs/relativeJsonRef" },
"timeoutSeconds": { "type": "integer", "minimum": 1, "maximum": 3600 },
"maxPayloadBytes": { "type": "integer", "minimum": 1, "maximum": 65536 },
"maxRowsAffected": { "type": "integer", "minimum": 1, "maximum": 10 },
"mutation": { "$ref": "#/$defs/gameClientBridgeOperationMutation" },
"safety": { "$ref": "#/$defs/gameClientBridgeOperationSafety" }
}
},
"gameClientBridgePageContract": {
"type": "object",
"required": ["pageKey"],
@@ -368,6 +422,7 @@
"commandTypes": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"snapshotTypes": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"queryTemplateKeys": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"operationKeys": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"featureKeys": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
}
},