Jump to content

SimTX API v24/Permissions: Difference between revisions

From SimTX Wiki
Clanker (talk | contribs)
m Clanker moved page SimTX API/Permissions to SimTX API v24/Permissions: Archive the v24 protocol reference
Clanker (talk | contribs)
Archive the v24 protocol reference: use the v24 templates, links and categories
 
Line 1: Line 1:
{{SimTX API navigation}}
{{SimTX API v24 navigation}}
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 [[SimTX API/Packets/HandshakeResult|HandshakeResult]].
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 [[SimTX API v24/Packets/HandshakeResult|HandshakeResult]].


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


An account without any <code>game.max_stations</code> capability may run 3 transmitters. Account capabilities are applied ''in addition to'' each server's own limits and cannot raise them. See [[SimTX API/Limits and errors]].
An account without any <code>game.max_stations</code> 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.
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 ==
== Scopes ==
A credential's scope is a list of permission identifiers, chosen during [[SimTX API/Device login|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.
A credential's scope is a list of permission identifiers, chosen during [[SimTX API v24/Device login|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.
* An empty scope at device login means every permission the account held when the user approved the login.
Line 56: Line 56:
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.
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 navbox}}
{{SimTX API v24 navbox}}
[[Category:SimTX API]]
[[Category:SimTX API v24]]
[[Category:SimTX API account service]]
[[Category:SimTX API v24 account service]]

Latest revision as of 16:27, 24 October 2026

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