Server Information Structure¶
A Server Information structure is returned from getServerInfo().
- allowRemoteControl¶
This indicates whether the server accepts API connections from remote hosts. If this is false, API connections are only accepted from localhost.
- apiControlPort¶
The port number on which the server will accept API connections.
- APITokensAvailable¶
This indicates whether the server supports creation and use of API tokens. See
createAPIToken().- apiVersion¶
The API compatibility version for the connected server. API methods are aware of the server version required, and will report an error if the API versions do not match.
- authRequired¶
Always
True. Every API connection must authenticate: callauth()orauthAsync()after callingconnect().- bandwidthLimits¶
- certificateValidation¶
A message about the server’s TLS certificate. For example:
"Server certificate will expire in 42 days", or"Server certificate is expired or not yet valid".- configuration¶
Server Configuration Structure. Note that this key only exists for superusers. See
superuser().- eventLogAvailable¶
This indicates whether the server’s event log is active. If active, the
getEventLogcommand may be used to retrieve the server’s event history.- hostName¶
The name of the machine host that is running the server. This is different from the
serverName, which is assigned to the JetStream server itself.- license¶
- multiplexAvailable¶
Always
False. The server no longer uses one port for both sending and receiving traffic.- publicKey¶
A server’s public key, used for encrypted connections.
- receiver¶
- revision¶
An integer representing revision (version) of the server.
- serverExternalAddress¶
Hostname and port, as specified by the
--external-addressoption at server start.- serverId¶
A string that uniquely identifies a server instance. This ID is regenerated every time a server is launched.
- serverName¶
A friendly name assigned to a server.
- serverPlatform¶
A string that represents the OS running the server. One of
windows,linux, ormacOS.- serverTime¶
A timestamp indicating the current time on this server. See Timestamps.
- serverUid¶
A string that uniquely identifies a server. This ID is generated once, and stored in the server’s persistent state.
The branding in effect for web share pages:
path(Nonefor the built-in document),logoPath,faviconPath,activeThemeandvalues, a map of template slot names to their values.Totals for the web share tier: unlocks, web links, active downloads, bytes served, connections, queue depths, cache counters and download-count ledger counters. No value names a recipient. Present only when
--web-share-portis set.The public HTTPS address that a browser recipient opens for a web share.
Nonewhen the server was started without--web-share-url.The share size, in bytes, above which JetStream tells recipients and sharers that a browser download cannot continue after an interruption. It is a message only, not a limit. Set it with
--web-share-warn-size.This indicates whether the server supports creation and use of shared tokens. See
createSharedToken().- user¶
- version¶
A string representing the version of the server.
Changed in version 1.5.0: Added version and revision keys.
Changed in version 1.6.0: Added bandwidthLimits.
Changed in version 3.0.0: (API 47) Added budgetSource, budgetInForce, budgetOverride, minTransferRate and budgetEstimateEnabled to bandwidthLimits. These report the server’s transfer scheduler, which since this version limits how many transfers run at once rather than only how fast they run. Unlike the other rates in this structure, these are in megabits-per-second.
Changed in version 3.0.0: (API 62) Added maxConcurrentTransfers to bandwidthLimits: the most transfers the server runs at once, a count rather than a rate.
Changed in version 3.0.0: (API 63) Removed minTransferRate and pathsIdle from bandwidthLimits. Admission is maxConcurrentTransfers alone, in every regime; a budget of any source is a ceiling on the total rate and decides nothing about how many transfers run.
Changed in version 1.7.0: Added certificateValidation.
Changed in version 2.4.0: Added APITokensAvailable.
Receiver Server Information Structure¶
A Receiver Server Information structure is returned as part of the Server Information Structure.
- authRequired¶
Trueif the server required a username and password for transfers.- onlyAuthorizedClientsAllowed¶
Indicates whether this receiving server allows only pre-authenticated clients. Clients may be pre-authenticated using the
addAuthorizedClientAsync()command.- receiverIP¶
The IP for the receiver connection. An IP of 0.0.0.0 is a wildcard that means the server is listening for connections from any IP.
- receiverPort¶
The port for the receiver connection.
- receiverPorts¶
A list of the receive ports of every receiver on this server.
- registrations¶
The connections this receiver holds open to other servers, from
addRegistration()or fromjetstream server --recv-relay-host. A registration is how a receiver behind a NAT stays reachable: it connects out to that server and holds the connection open, and the server sends to it through that connection.Each item has:
address— the server it connects to. Give this toremoveRegistration()to stop it.registered—Trueif that server can reach this receiver now. This is the question to ask when a transfer to this machine does not start.gaveUp—Trueif the receiver stopped trying. This happens only for a failure that a retry cannot correct, such as a key the far server does not authorize.lastStatus— the last answer the far server gave.persistent—Trueif this registration comes back after a restart. A registration from the command-line option comes back from the option instead, and isFalsehere.
This is not the same as
relayRegistered, which reports only the one relay thatjetstream server --recv-relay-hostnames.Added in version 3.0.0.
- relayIP¶
The IP for the relay server, if using a relay. Will be
Noneif not using a relay.- relayPort¶
The port for the relay server, if using a relay. Will be
Noneif not using a relay.- relayRegistered¶
Trueif the receiver can be reached through the relay thatjetstream server --recv-relay-hostnames, at this moment.- socketRecvBufferSize¶
The size of the buffer allocated for receiving data.
- socketSendBufferSize¶
The size of the buffer allocated for sending data.
- tcpDataPort¶
The TCP port that a sender dials for a TCP transfer to this receiver.
0when this server has no TCP data plane.- udpRecvDrops¶
The number of datagrams that the operating system discarded from a full UDP receive buffer since the receiver started.
Noneon a platform that cannot measure it.- udpRecvDropsScope¶
What
udpRecvDropscounts:socket(Linux, this port only) orhost(macOS, the whole machine).Nonetogether withudpRecvDrops.
Server Bandwidth Limits Structure¶
A Bandwidth Limits structure is returned as part of the Server Information Structure.
- borrowIncoming¶
If both incoming and outgoing rate limits are active, add unused incoming bandwidth to the outgoing rate limit.
- borrowOutgoing¶
If both incoming and outgoing rate limits are active, add unused outgoing bandwidth to the incoming rate limit.
- budgetEstimateEnabled¶
Whether the server is allowed to estimate a budget from its own measurements when no limit is configured.
Falsewhen the server was started with--disable-budget-estimate.Read this before drawing a conclusion from
budgetSource: noneon a busy server: with estimation turned off,nonemeans “no limit was configured”, not “nothing has been measured yet”.- budgetInForce¶
The budget the server is actually scheduling against, in megabits-per-second, or
NonewhenbudgetSourceisnone.This is not the same number as
outgoingRateLimit: that is what an operator asked for, while this is what is in force after the server reserves capacity for acknowledgement traffic — or, on a server with no configured limit, a measurement of the link.Note
This field and the one below it are in megabits-per-second, while
incomingRateLimitandoutgoingRateLimitin the same structure are in kilobits-per-second. The scheduler’s values match the units you set them in withupdateSchedulerParams(), so that a value never means one thing when you set it and another when you read it back.- budgetOverride¶
The budget an administrator set on the running server, in megabits-per-second, or
Noneif none is set.Reported separately from
budgetSourcebecause the two answer different questions.budgetSourcesays what the last scheduling decision used, and scheduling decisions only happen while the server is sending; this says what was set. On an idle server an override is in effect but not yet in force.- budgetSource¶
Where the outgoing bandwidth budget the server is scheduling against came from. Read-only; there is no way to set it. One of:
overrideA value an administrator set on the running server with
updateSchedulerParams(). This outranks a configured limit and behaves the same way. It is never saved, so it is gone after a restart.configuredAn explicit
outgoingRateLimit. This is policy: it is enforced as a ceiling on the server’s total outgoing rate. It does not decide how many transfers run at once – since API 63 that ismaxConcurrentTransfersalone – and it does not cap any one transfer at a share: admitted transfers draw from one shared ceiling.estimatedDerived from the transport’s own measurement of what the network can carry, reported when no limit is configured. Since API 63 it is reported and nothing more – it does not decide how many transfers run, never pauses a running transfer, and never caps a rate. (It used to bound admission; that was a feedback loop, because the measurement is formed from the transfers admission had already allowed.)
noneNo limit is configured and nothing has been measured yet, or measurement is turned off. Admission is unaffected either way: in every case it is
maxConcurrentTransfers.
- incomingLimitActive¶
Whether incoming limits are applied.
- incomingMaxConnections¶
The maximum number of incoming connections.
- incomingRateLimit¶
The maximum incoming data rate, in kilobits-per-second.
- maxConcurrentTransfers¶
The most transfers the server runs at once, set with
--max-concurrent-transfers.0means no limit. A transfer that reportswaitingwaits on this number or onmaxTransfersPerDestination.- maxConcurrentWeblinks¶
The most browser downloads from web shares that the server runs at once, set with
--max-concurrent-weblinks.0means no limit. This count is separate frommaxConcurrentTransfers.- maxTransfersPerDestination¶
The most transfers to one destination that the server runs at once, set with
--max-transfers-per-destination.0means no limit.- maxWeblinksPerDestination¶
The most browser downloads to one recipient that the server runs at once, set with
--max-weblinks-per-destination.0means no limit.- outgoingLimitActive¶
Whether outgoing limits are applied.
- outgoingRateLimit¶
The maximum outgoing data rate, in kilobits-per-second.
Server Configuration Structure¶
A Configuration structure is returned as part of the Server Information Structure. It holds data about how the server is configured and is only available to a superuser. See superuser().
- cloudFileCache¶
- garbageCollect¶
- persistentStateDir¶
The path to which the server will save its encryption key files. If this directory is specified at launch, the server will provide a consistent public key for its encryption interfaces.
- triggersAvailable¶
This indicates whether the server’s trigger system is active. If active, any triggers found in the
triggersDirwill be executed in response to their associated events.- triggersDir¶
The directory in which the server looks for triggers.
Changed in version 1.8.0: Added fileCache and garbageCollect keys.
Changed in version 2.6.0: Renamed fileCache to cloudFileCache.
Cloud File Cache Structure¶
A Cloud File Cache structure is returned as part of the Server Configuration Structure. It holds the server’s cloud file cache information.
- highWatermark¶
The size, in bytes, of memory allocated to cloud file cache.
- maximumSize¶
Maximum size, in bytes, of the cloud file cache. This can be defined at server startup using
--max-cloud-cache-size
Garbage Collection Structure¶
A Garbage Collection structure is returned as part of the Server Configuration Structure. It holds the server’s garbage collection configuration.
- intervalSeconds¶
The time, in seconds, between each garbage collection.
- timeLimitSeconds¶
The grace period, in seconds, to allow for items that are ready to be garbage collected.
See also
Server License Structure¶
A License structure is returned as part of the Server Information Structure.
- clientAddress¶
The address of this server as the license server saw it.
- errorMessage¶
If a license is invalid, a message indicating the reason.
- expiry¶
The date on which the JetStream license expires for this server.
- maxSyncFolders¶
The most watch folders that the license allows.
- valid¶
This indicates whether the license is currently valid (
True) or invalid (False).
Server User Structure¶
A User structure is returned as part of the Server Information Structure.
- authed¶
This indicates whether authentication has been performed on the current API connection.
- permissions¶
Permissions granted to this user. See
PERMISSIONS- sandboxed¶
This indicates whether the user is restricted to a sandbox directory, instead of full filesystem access. Returns
Nonewhen not authenticated.- superuser¶
This indicates whether the authenticated user is a superuser. If not authenticated, this will be
False.- token¶
The token of the currently authenticated user. If not authenticated or user name auth was used, this will be
None.- tokenSession¶
The token session of the currently authenticated user. If not authenticated or user name auth was used, this will be
None.- userId¶
The ID of the currently authenticated user. For token authentication, this is the token.
- userName¶
The name of the currently authenticated user. If not authenticated or if token auth was used, this will be
None.- wrangler¶
This indicates whether the authenticated user has wrangler privileges on this connection. A wrangler can access and modify all data. See
wrangler().
Changed in version 1.5.0: Renamed username to userName.
Changed in version 2.4.0: Added permissions.