The B-Deploy server allows for automated provisioning of BrightSign players over the Internet. This page outlines how to develop an application and file server (FS) that will integrate with the BrightSign B-Deploy server.
To integrate with the B-Deploy server, you will need to create two components:
- Application: The application registers player serial numbers and setup files with the B-Deploy server.
- File Server: The HTTP file server hosts presentation packages for distribution to players. Each presentation package is a ZIP file named autorun.zip, which contains presentation files along with an autozip.brs boilerplate script. In most cases, the boilerplate script will not need to be modified.
- The user uploads one or more presentation packages to the file server (FS) and records the download URL for each package.
- The user creates a device setup using an API, which sends a JSON payload containing device setup parameters to the B-Deploy server. The device setup contains the download URL for the presentation package.
- Using an API, the user registers device serial numbers that should be associated with the device setup. These serial numbers are also communicated to the B-Deploy server.
- The user inserts a blank storage device (e.g. a microSD card) into the player and powers it on.
The player boots up and, lacking an autorun.brs or autorun.zip file on the storage device, launches on-screen Device Setup.
The user should avoid interacting with the Device Setup screen, which may prevent automated provisioning.
When on-screen Device Setup times out, the player queries the B-Deploy server (unless the local network infrastructure is configured for provisioning via the B-Deploy Appliance or DHCP Option 43).
- The B-Deploy server responds with a provisioning script URL if the player serial number in the request matches a serial number in the database. If the B-Deploy server does not recognize the serial number, it will return status code 204.
- The player reboots, downloads the provisioning script, and runs it. The provisioning script directs the player to download the device-setup package from B-Deploy.
- The player reboots and runs device setup, which sets the recovery URL to a handler on B-Deploy.
- The player reboots, downloads a recovery script from the recovery URL, and runs it. The recovery script instructs the player to download the presentation package from the file server.
- The player reboots and runs the presentation.
The Credentials object is used to validate the REST client in the
/authenticate POST call for the B-Deploy server. It returns an AuthToken string that must be passed into all subsequent API calls. The token is valid for one hour, after which a new token must be obtained.
The credentials are provided by BrightSign.
The Device object is used for
/device GET and POST calls on the B-Deploy server. POST calls to the
/device endpoint can contain a single Device object or an array of Device objects if adding multiple devices simultaneously.
Device Setup Object
The Device Setup object is used for
/setup GET and POST calls on the PSS server.
Most parameters in the Device Setup object are optional. The following parameters are required:
"_id": Not required for multi-setup POST, PUT, and GET calls.
"username": Queries the device-setup list for a user.
"Wired"/"Wireless": One of these fields needs to be specified. If the "UseDHCP" parameter is set to true, it is the only required parameter. If the "UseDHCP" parameter is set to false, then the following manual IP parameters need to be specified: "IpAddress", "SubnetMask", "DefaultGateway", "DNS1"/"DNS2"/"DNS3".
The following are attributes of the B-Deploy API:
- GET requests for multiple items support pageNum and pageSize query-string parameters. A status code of 400 is returned in case of an error in the parameters.
- If pageNum (starting at 1) is supplied, the corresponding page is returned (starting at 1). If pageNum is omitted, the first page is returned.
- The maximum pageSize is 100. If pageSize is omitted, the maximum is returned. The response object also contains "total" and "match" properties, which correspond to the total number of records and the number of records returned on a given page, respectively.
- GET responses are JSON objects. The content-type is "application/json".
- Request bodies are JSON objects. The content-type must be "application/json".
- A token is required for all API calls except to the
/authenticateendpoint. Contact BrightSign Support to obtain credentials. The token must be provided as a header in the HTTP request:
Authorization: Bearer <token>
Query String Parameters
Body: auth token
Headers: Expiries (in RFC 1123 date format)
[pageNum] [pageSize] [serial] [username]
[account] [setupId] [model]
Device | Device
Body: Device | Device
_id | _id
[id] [pageNum] [pageSize] [username] [account]
DeviceSetup | DeviceSetup
Body: DeviceSetup |
_id | _id
[pageNum] [pageSize] [username] [account]