Jump to content

SimTX API/Permissions: Difference between revisions

From SimTX Wiki
Clanker (talk | contribs)
Protocol v25 reference
Tag: Removed redirect
Clanker (talk | contribs)
Remove development history and server internals
 
Line 56: Line 56:
Default station quotas: members have <code>game.owned_stations.100</code>, <code>game.owned_satellites.25</code> and <code>game.station_sessions.16</code>; supporters 500, 100 and 64.
Default station quotas: members have <code>game.owned_stations.100</code>, <code>game.owned_satellites.25</code> and <code>game.station_sessions.16</code>; supporters 500, 100 and 64.


Client software should read these values from the ServerHello 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 ServerHello and show them, for example as the maximum of a power slider.


== Scopes ==
== Scopes ==

Latest revision as of 17:16, 24 October 2026

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 ServerHello.

Boolean permissions[edit | edit source]

A boolean permission authorises an action.

Identifier Grants Relevant to
game.transmit Opening transmitter sessions (ROLE_TX_AUDIO, ROLE_TX_GENERATED). SimTX API/Transmitter session
station.manage Creating, editing and deleting stations, launching satellites and deorbiting them. Granted to members. Reading stations, previewing a deorbit and minting station-bound tickets do not need it. SimTX API/Station endpoints
catalog.publish Uploading to and deleting from the extension catalog. Also required to obtain a control game ticket. SimTX API/Extension catalog protocol
session.queue_skip Never waiting in the transmitter queue. When the server is full, such a start is refused with LIMIT_REACHED instead of queued. TxQueue
tx.pa_override The amplifier's nominal power follows the requested power instead of the simulated equipment's rating. TransmitterStart
tx.adhoc Transmitting from an ad-hoc site without a persistent station, whatever the server's ad-hoc policy. Held by service integrations, not by user accounts. Ad-hoc transmitters
monitor.any Monitoring any transmitter, solo receivers, and client addresses in health reports. SimTX API/Moderation session
moderation.manage The moderation role: kicks, bans, banners, station lists with addresses. SimTX API/Moderation session
proxy.forward_client_ip Sending ForwardedClientAddress on behalf of proxied receivers. SimTX API/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 ServerHello 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 transmitters on air at once for the account. Despite the name, this counts transmitter sessions, not owned stations. 1 to 10,000
game.max_receivers.N game.max_receivers.4 At most N simultaneous authenticated receivers. 1 to 10,000
game.max_sessions.N game.max_sessions.12 At most N simultaneous authenticated receiver and transmitter sessions in total. 1 to 10,000
tx.pa_limit.N tx.pa_limit.400 Transmitter power is capped at N watts, in the start and in live updates. A bound rig with a lower paMaxWatts caps it further. 1 to 1,000,000
game.owned_stations.N game.owned_stations.100 At most N active stations owned, ground and satellite together. 1 to 10,000
game.owned_satellites.N game.owned_satellites.25 At most N active satellites owned. Deorbiting satellites count until they reenter. 1 to 10,000
game.station_sessions.N game.station_sessions.16 Each of a station's session limits (maxSessions, maxTransmitters, maxReceivers) is clamped to N. 1 to 10,000

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

Default station quotas: members have game.owned_stations.100, game.owned_satellites.25 and game.station_sessions.16; supporters 500, 100 and 64.

Client software should read these values from the ServerHello and show them, for example as the maximum of a power slider.

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. Each request is authorised with the permissions that are both in the credential's scope and held by the account.

  • 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.
  • An endpoint that needs a permission the scope lacks answers 403 scope_required with fieldErrors.scope.
  • Request the minimum. A transmitter needs game.transmit; a station editor station.manage; a catalog publishing tool catalog.publish; an ad-hoc 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 ServerHello of connections to it.

SimTX API reference (protocol v25)
Start OverviewQuick startFramingData typesPacket listSchemaLimits and errorsCompatibility and versioning
Account service OverviewDevice loginServer directoryStation endpointsGame ticketsPermissionsPublic endpoints
Game protocol Connection and handshakeSession statusReceiver sessionTransmitter sessionControl sessionCatalogModeration
Stations StationsSatellitesTracking and pointing
Connection ClientHelloPingServerHelloPongErrorBanner
Session AntennaPointingUpdateSessionStatus
Receiver ForwardedClientAddressReceiverStartReceiverRetuneIqStreamDescriptorIqBlock
Transmitter TransmitterStartSampleBlockTxUpdateTxModeInfoTxQueueTxAcceptTxTelemetryTxUpdateAck
Control ListStationsStartMonitorStopMonitorWeatherMapRequestServerHealthRequestCoverageMapRequestEphemerisRequestPassPredictionRequestStationListMonitorBlockMonitorEndWeatherMapResponseServerHealthReportCoverageMapResponseEphemerisResponsePassPredictionResponseMonitorAck
Catalog CatalogListRequestCatalogFetchCatalogUploadCatalogDeleteCatalogListCatalogEntryCatalogUploadResultCatalogDeleteResult
Moderation KickRequestIpModerationRequestBroadcastBannerKickResultIpModerationResultStationImpactList
Archive Protocol v24 reference