Jump to content

SimTX API v24/Permissions

From SimTX Wiki
This page documents protocol v24, which current servers no longer accept. See SimTX API for v25.

SimTX authorisation uses one set of permission identifiers (also called capabilities). An account gains them from its roles and from direct grants. A credential's scope can narrow them further, and an account restriction can remove them. Game servers receive the resulting set in the HandshakeResult.

Boolean permissions[edit | edit source]

A boolean permission authorises an action.

Identifier Grants Relevant to
game.transmit Opening transmitter sessions (roles 2 and 3). SimTX API v24/Transmitter session
catalog.publish Uploading to and deleting from the extension catalog. Also required to obtain a control game ticket. SimTX API v24/Extension catalog protocol
session.queue_skip Never waiting in the transmitter queue. When the server is full, such a request is rejected instead of queued. TxQueue
tx.pa_override The amplifier's nominal power follows the requested power instead of the simulated equipment's rating. TransmitterSessionRequest
monitor.any Monitoring any transmitter, solo receivers, and client addresses in health reports. SimTX API v24/Moderation session
moderation.manage The moderation role: kicks, bans, banners, stations with addresses. SimTX API v24/Moderation session
proxy.forward_client_ip Sending ForwardedClientAddress on behalf of proxied receivers. SimTX API v24/Receiver session
accounts.admin, awards.manage Administration of the account service. Not used by game servers.

Which of these an account holds depends on its roles. The HandshakeResult of an authenticated connection lists them.

Numeric capabilities[edit | edit source]

A numeric capability encodes a limit in its last segment. When several roles grant values from the same family, the largest value applies.

Family Example Meaning Range
game.max_stations.N game.max_stations.8 At most N simultaneous transmitters for the account. 1–10,000
game.max_receivers.N game.max_receivers.4 At most N simultaneous authenticated receivers. 1–10,000
game.max_sessions.N game.max_sessions.12 At most N simultaneous authenticated receiver and transmitter sessions in total. 1–10,000
tx.pa_limit.N tx.pa_limit.400 Transmitter power is capped at N watts, both in the request and in live updates. 1–1,000,000

An account without any game.max_stations capability may run 3 transmitters. Account capabilities are applied in addition to each server's own limits and cannot raise them. See SimTX API v24/Limits and errors.

Client software should read these values from the HandshakeResult and show them, for example as the maximum of a power slider, rather than letting users discover them by trial.

Scopes[edit | edit source]

A credential's scope is a list of permission identifiers, chosen during device login or when creating a personal credential. A scope never adds permissions. When a game ticket is requested, the service uses the permissions that are both in the credential's scope and held by the account on that server.

  • An empty scope at device login means every permission the account held when the user approved the login.
  • Unknown identifiers are rejected with 400 scope_invalid. Numeric capabilities are accepted in scopes if they are well formed and within range.
  • Request the minimum. A transmitter needs game.transmit; a catalog publishing tool needs catalog.publish; a receiver needs no credential at all.

Server-specific grants[edit | edit source]

Roles and grants can be limited to a single server. They take effect only in tickets for that server, and appear only in the HandshakeResult of connections to it.

SimTX API v24 reference (protocol v24, archived)
Start OverviewQuick startData typesLimits and errorsPacket list
Account service OverviewDevice loginServer directoryGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeReceiver sessionTransmitter sessionControl sessionCatalogModeration
Handshake HandshakeHandshakeResult
Receiver ReceiverSessionRequestReceiverRetuneForwardedClientAddressIqStreamDescriptorIqBlockTimedIqBlock
Transmitter TransmitterSessionRequestSampleBlockTxModeInfoTxUpdateTxQueueTxAcceptTxRejectTxKickTxTelemetryTxUpdateAck
Control ControlAckBannerListStationsStationListServerHealthRequestServerHealthReportCoverageMapRequestCoverageMapResponseWeatherMapRequestWeatherMapResponseStartMonitorStopMonitorMonitorBlockMonitorEnd
Catalog CatalogListRequestCatalogListCatalogFetchCatalogEntryCatalogUploadCatalogUploadResultCatalogDeleteCatalogDeleteResult
Moderation KickRequestKickResultIpModerationRequestIpModerationResultBroadcastBannerModerationErrorStationImpactList
Current Protocol v25 reference