Configuration File Distribution

This use case lets an end customer capture a fully-configured device's settings as a profile file, then distribute that file to other devices of the same model — one device, or many at once. No settings are re-entered by hand, and no partner involvement is needed per device.

It relies on two supported commands you define on the model, backed by the device Files channel:

  • Download Profile — reads the device's current settings, serializes them to a JSON file, and uploads that file to the platform so it appears under Device → Files.
  • Apply Profile — takes a profile file as a parameter, and writes those settings back onto the device.

Because a profile is just a JSON file, a customer can capture it once, tweak it if needed, and push it to a single device or to a whole fleet.

Define the two commands on your model

Add both as Supported Commands on the device model (Partner Portal → Models → Commands):

CommandParametersWhat the firmware does
Download ProfilenoneReads local settings, builds a JSON profile, uploads it via the Send Dump API
Apply Profileone file parameter of type profile (required)Downloads the profile file and applies each setting locally

Download Profile

When the device receives Download Profile, the firmware:

  1. Reads its current local configuration.
  2. Serializes it to a JSON document.
  3. Uploads the document with the Send Dump API.

Send Dump is POST /v1/devices/{deviceId}/dumps/{mime-type}/{filename} — the raw JSON goes in the request body, and the file name and MIME type are carried in the path (URL-encode the slash in the MIME type):

POST /v1/devices/{deviceId}/dumps/application%2Fjson/profile.json
Authorization: <device access key>
Content-Type: text/plain

{"display":{"brightness":80,"input":"HDMI1"},"network":{"dhcp":true}}

On success the endpoint returns 201 with the new file id, and the file appears under Device → Files, where the customer can download it.

📘

Name the file predictably

Use a stable, human-readable filename (e.g. profile.json) so customers can find it easily in the Files list.

Apply Profile

Give Apply Profile a single required file parameter of type profile. When the command runs, the customer supplies a profile file (see the flow below), the platform delivers it to the device, and the firmware reads the JSON and applies each setting locally.

End-customer experience

Once both commands are published, the flow for a customer is:

  1. Configure one device the way every device of that model should be set up.
  2. Send Download Profile to that device.
  3. Open Device → Files and download the generated profile file.
  4. Edit the file if anything needs to change (optional).
  5. Open another device of the same model and send Apply Profile.
  6. Choose Custom File, upload the file from step 4, and give it a name / version / details.
  7. To roll it out widely, use the Devices view to send Apply Profile to many devices at once — choose Custom File and pick one of the profiles uploaded earlier.
📘

Profiles are reusable

A profile uploaded in step 6 is saved, so later Apply Profile runs (step 7) can select it from the list instead of re-uploading.