PDServer settings that survive updates (appsettings.local.json)

Skip to main content

PDServer settings that survive updates (appsettings.local.json)

PDServer settings that survive updates

PDServer ships a settings file, appsettings.json, in its installation folder. Every PDServer update replaces the installation folder, so anything you edit in that file is lost the next time the server updates.

From 2.5.14.17 and 2.5.15, PDServer also reads a site-owned override file that updates never touch:

C:\ProgramData\Blue Swift Software\Print Director\PDServer\appsettings.local.json

Put installation-specific values there. The file has the same shape as appsettings.json, but you include only the keys you want to override. It is optional: when it does not exist, the shipped defaults apply. PDServer re-reads it when it changes, so settings that are consulted per use (for example the direct-send setting below) apply without a service restart. Settings read only at startup, such as the Kestrel certificate keys, need a service restart.

From 2.5.15.1 the PDServer log records at every startup whether the file was found:

Site appsettings override in effect: C:\ProgramData\Blue Swift Software\Print Director\PDServer\appsettings.local.json (layered over appsettings.json; kept across updates).

or, when there is no such file:

No site appsettings override at C:\ProgramData\Blue Swift Software\Print Director\PDServer\appsettings.local.json: the shipped appsettings.json applies.

Earlier versions do not write either line at the default log levels, so its absence there says nothing about the file. A file that cannot be read (for example malformed JSON) is ignored and logged as a Warning naming the file, and the shipped values apply.

From 2.5.15.1 the log also records each time the PDServer reads the file again after an edit, with the settings that changed, whatever the log level:

Site appsettings override C:\ProgramData\Blue Swift Software\Print Director\PDServer\appsettings.local.json was read again: KmReleasePacing:DelayAfterGateMs: 2000 -> 1500. A setting read when it is used (KM release pacing among them) applies from its next use; one read at the start applies after PDServerService restarts.

Comments (keys starting with _) are not listed, and the value of a key whose name contains a word such as Password, Secret or Token is shown as (hidden). A save that changed nothing writes no line.

Hosted or off-site PDServer: skip the direct send

A PDServer hosted away from the printers (a cloud or data-centre server) can never open a connection to a site printer. Jobs held on such a server are delivered through a Print Director agent on the site LAN. By default the server still tries the printer directly first and only relays after that attempt times out, which adds several seconds to every release.

Tell the server it must never send directly in the override file:

{
  "ServerStoredRelease": {
    "DirectSendFromThisServer": false
  }
}

With this set:

  • A release goes straight to a site agent, with no direct connection attempt.
  • The agent installed on the server itself is never used to relay, since it has the same network position as the server.
  • If no site agent is connected, the release is refused with a message naming this setting, and the job stays waiting for the next attempt.

Leave the setting at its default (true) on any server that is on the same network as its printers.

 

Document revision date: 2026/10/29
Software version: 2.5.15.3

PDServer settings that survive updates (appsettings.local.json)