Revert SCUM real data management change
This commit is contained in:
+1
-156
@@ -43,7 +43,6 @@ export type RunCapability =
|
||||
| "remote.run.process.start"
|
||||
| "remote.run.process.stop"
|
||||
| "remote.run.db.mysql.query"
|
||||
| "remote.run.db.sqlite.probe"
|
||||
| "remote.run.db.sqlite.query"
|
||||
| "remote.run.logs.transfer"
|
||||
| "remote.run.rcon.command"
|
||||
@@ -269,146 +268,6 @@ export interface GameClientBridgeQueryTemplateDeclaration {
|
||||
|
||||
export type GameClientBridgeOperationKind = "rcon" | "sqlite-mutation";
|
||||
|
||||
export type SCUMLiveDataCapability =
|
||||
| "schema-probe"
|
||||
| "players.read"
|
||||
| "player-details.read"
|
||||
| "squads.read"
|
||||
| "squad-members.read"
|
||||
| "vehicles.read"
|
||||
| "flags.read"
|
||||
| "positions.read"
|
||||
| "profile-xml.write"
|
||||
| "economy-command.write"
|
||||
| "gift-command.write";
|
||||
|
||||
export type SCUMLiveDataGateState = "disabled" | "enabled";
|
||||
export type SCUMLiveDataEvidenceStatus = "missing" | "compatible" | "incompatible" | "failed";
|
||||
|
||||
export interface SCUMLiveDataCapabilityGateDeclaration {
|
||||
capability: SCUMLiveDataCapability;
|
||||
gate: SCUMLiveDataGateState;
|
||||
adapterVersion: string;
|
||||
requiredSchemaFingerprint?: string;
|
||||
requiredAssetDigests?: `sha256:${string}`[];
|
||||
evidenceStatus: SCUMLiveDataEvidenceStatus;
|
||||
safeReason: string;
|
||||
}
|
||||
|
||||
export interface SCUMSchemaProbeBoundsDeclaration {
|
||||
maxObjects: number;
|
||||
maxColumnsPerObject: number;
|
||||
maxIndexesPerObject: number;
|
||||
maxForeignKeys: number;
|
||||
maxCardinalityReads: number;
|
||||
maxSampleRows: number;
|
||||
timeoutMs: number;
|
||||
maxResultBytes: number;
|
||||
}
|
||||
|
||||
export interface SCUMSchemaProbeDeclaration {
|
||||
capability: Extract<RunCapability, "remote.run.db.sqlite.probe">;
|
||||
targetKey: string;
|
||||
bounds: SCUMSchemaProbeBoundsDeclaration;
|
||||
}
|
||||
|
||||
export type SCUMVersionedAssetDigest = `sha256:${string}`;
|
||||
export type SCUMLiveDataReadCapability = Extract<SCUMLiveDataCapability, "players.read" | "player-details.read" | "squads.read" | "squad-members.read" | "vehicles.read" | "flags.read" | "positions.read">;
|
||||
export type SCUMLiveDataWriteCapability = Extract<SCUMLiveDataCapability, "profile-xml.write" | "economy-command.write" | "gift-command.write">;
|
||||
|
||||
export interface SCUMVersionedAssetDeclaration {
|
||||
key: string;
|
||||
adapterVersion: string;
|
||||
assetPath: string;
|
||||
digest: SCUMVersionedAssetDigest;
|
||||
}
|
||||
|
||||
export interface SCUMLoginLogParserDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
parserVersion: string;
|
||||
sourceKey: string;
|
||||
eventType: string;
|
||||
eventSchemaRef: string;
|
||||
maxLineBytes: number;
|
||||
cursorPolicy: "source-generation-sequence";
|
||||
privacy: { stripNetworkIdentifiers: true; logicalEventIdentity: "native-or-sanitized-fields" };
|
||||
}
|
||||
|
||||
export interface SCUMSQLiteQueryAssetDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
capability: SCUMLiveDataReadCapability;
|
||||
requiredSchemaFingerprint: string;
|
||||
transportKey: string;
|
||||
targetKey: string;
|
||||
parameterSchemaRef: string;
|
||||
resultSchemaRef: string;
|
||||
maxRows: number;
|
||||
timeoutMs: number;
|
||||
maxResultBytes: number;
|
||||
}
|
||||
|
||||
export interface SCUMLiveDataSyncCadenceDeclaration {
|
||||
capability: SCUMLiveDataReadCapability;
|
||||
intervalSeconds: number;
|
||||
jitterPercent: number;
|
||||
timeoutMs: number;
|
||||
maxConcurrentPerServer: number;
|
||||
}
|
||||
|
||||
export interface SCUMTypedRCONTemplateDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
capability: Extract<SCUMLiveDataWriteCapability, "economy-command.write" | "gift-command.write">;
|
||||
requiredSchemaFingerprint?: string;
|
||||
transportKey: string;
|
||||
targetKey: string;
|
||||
permission: Extract<PluginPermission, "server.game-client.command">;
|
||||
payloadSchemaRef: string;
|
||||
resultSchemaRef: string;
|
||||
confirmationSchemaRef: string;
|
||||
timeoutMs: number;
|
||||
maxPayloadBytes: number;
|
||||
}
|
||||
|
||||
export interface SCUMGuardedMutationDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
capability: Extract<SCUMLiveDataWriteCapability, "profile-xml.write">;
|
||||
requiredSchemaFingerprint: string;
|
||||
transportKey: string;
|
||||
targetKey: string;
|
||||
permission: Extract<PluginPermission, "server.game-client.maintenance">;
|
||||
payloadSchemaRef: string;
|
||||
resultSchemaRef: string;
|
||||
confirmationSchemaRef: string;
|
||||
timeoutMs: number;
|
||||
maxPayloadBytes: number;
|
||||
maxRowsAffected: 1;
|
||||
safety: { requiresExpectedChecksum: true; requiresBackupEvidence: true; requiresOfflineOrMaintenance: true; requiresReadAfterWrite: true };
|
||||
}
|
||||
|
||||
export interface SCUMMapAssetDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
requiredSchemaFingerprint: string;
|
||||
metadataSchemaRef: string;
|
||||
transformAssetPath: string;
|
||||
transformDigest: SCUMVersionedAssetDigest;
|
||||
worldBounds: { minX: number; minY: number; maxX: number; maxY: number };
|
||||
image: { width: number; height: number };
|
||||
}
|
||||
|
||||
export interface SCUMGiftCatalogDeclaration extends SCUMVersionedAssetDeclaration {
|
||||
catalogVersion: string;
|
||||
itemSchemaRef: string;
|
||||
transportTemplateKeys: string[];
|
||||
}
|
||||
|
||||
export interface SCUMLiveDataManifestDeclaration {
|
||||
schemaVersion: "1";
|
||||
probe: SCUMSchemaProbeDeclaration;
|
||||
capabilityGates: SCUMLiveDataCapabilityGateDeclaration[];
|
||||
logParsers?: SCUMLoginLogParserDeclaration[];
|
||||
sqliteQueries?: SCUMSQLiteQueryAssetDeclaration[];
|
||||
syncCadences?: SCUMLiveDataSyncCadenceDeclaration[];
|
||||
typedRconTemplates?: SCUMTypedRCONTemplateDeclaration[];
|
||||
guardedMutations?: SCUMGuardedMutationDeclaration[];
|
||||
mapAssets?: SCUMMapAssetDeclaration[];
|
||||
giftCatalogs?: SCUMGiftCatalogDeclaration[];
|
||||
}
|
||||
|
||||
export interface GameClientBridgeOperationSafety {
|
||||
requiresApproval?: boolean;
|
||||
requiresOfflinePlayer?: boolean;
|
||||
@@ -655,23 +514,11 @@ export interface RuntimeLogEventDeclaration {
|
||||
|
||||
export interface RuntimeTransportProfile {
|
||||
key: string;
|
||||
kind: "file" | "ftp" | "rsync" | "mysql" | "sqlite" | "rcon" | "program";
|
||||
kind: "file" | "ftp" | "rsync" | "mysql" | "sqlite" | "rcon";
|
||||
targetKey?: string;
|
||||
capabilities: RunCapability[];
|
||||
}
|
||||
|
||||
export interface RuntimeDataTargetDeclaration {
|
||||
key: string;
|
||||
kind: "sqlite.snapshot";
|
||||
transportKey: string;
|
||||
sourceRootKey: string;
|
||||
sourcePath: string;
|
||||
workspaceKey: string;
|
||||
refreshPolicy: "on-demand-snapshot";
|
||||
maxBytes: number;
|
||||
platforms?: RuntimePlatform[];
|
||||
}
|
||||
|
||||
export interface RuntimeClientManagerProfile {
|
||||
key: string;
|
||||
displayName?: string;
|
||||
@@ -751,7 +598,6 @@ export interface GamePluginRuntimeProfiles {
|
||||
logSources?: RuntimeLogSource[];
|
||||
logEvents?: RuntimeLogEventDeclaration[];
|
||||
transportProfiles?: RuntimeTransportProfile[];
|
||||
dataTargets?: RuntimeDataTargetDeclaration[];
|
||||
clientManagers?: RuntimeClientManagerProfile[];
|
||||
dllExtensions?: RuntimeDLLExtensionProfile[];
|
||||
}
|
||||
@@ -876,7 +722,6 @@ export interface GamePluginManifest {
|
||||
remoteAccess?: GamePluginRemoteAccess;
|
||||
runtimeProfiles?: GamePluginRuntimeProfiles;
|
||||
gameClientBridge?: GameClientBridgeManifest;
|
||||
scumLiveData?: SCUMLiveDataManifestDeclaration;
|
||||
actions?: GamePluginActions;
|
||||
assetFiles?: PluginAssetFile[];
|
||||
productionLifecycle: {
|
||||
|
||||
Reference in New Issue
Block a user