The SCUM 用户管理 list stayed empty because the typed scum_user and scum_vehicle tables had no producer: the run ingest endpoint is signed-run only, and the previously registered plugin templates asked for a Run database capability the endpoint never advertises. The plugin now declares bounded, read-only SQLite projections for players and vehicles (sql/scum-db-v57/*.sql with query schemas), and the platform dispatches those templates as durable remote.run.db.sqlite.query jobs on run heartbeat and page open, then projects the returned rows into the typed SCUM tables through the same shared ingest path used by signed run facts.
40 lines
1.7 KiB
JSON
40 lines
1.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "ScumDatabasePlayersResult",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["rows"],
|
|
"properties": {
|
|
"rows": {
|
|
"type": "array",
|
|
"maxItems": 500,
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["steamId"],
|
|
"properties": {
|
|
"steamId": { "type": "string", "minLength": 1, "maxLength": 32 },
|
|
"displayName": { "type": ["string", "null"], "maxLength": 80 },
|
|
"lastLoginIp": { "type": ["string", "null"], "maxLength": 64 },
|
|
"userProfileId": { "type": ["string", "null"], "maxLength": 32 },
|
|
"gamePlayerId": { "type": ["string", "null"], "maxLength": 32 },
|
|
"squadId": { "type": ["string", "null"], "maxLength": 32 },
|
|
"squadName": { "type": ["string", "null"], "maxLength": 80 },
|
|
"riddenGameVehicleId": { "type": ["string", "null"], "maxLength": 32 },
|
|
"x": { "type": ["number", "null"] },
|
|
"y": { "type": ["number", "null"] },
|
|
"z": { "type": ["number", "null"] },
|
|
"moneyBalance": { "type": ["integer", "null"] },
|
|
"normalBalance": { "type": ["integer", "null"] },
|
|
"goldBalance": { "type": ["integer", "null"] },
|
|
"lastLoginTime": { "type": ["string", "null"], "maxLength": 64 },
|
|
"lastLogoutTime": { "type": ["string", "null"], "maxLength": 64 },
|
|
"lastSaveTime": { "type": ["string", "null"], "maxLength": 64 },
|
|
"online": { "type": ["integer", "null"], "enum": [0, 1, null] },
|
|
"freshLogin": { "type": ["integer", "null"], "enum": [0, 1, null] }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|