DMS Data Objects

The DMS manages its tasks using data objects that include:

Products

In the DMS, a product groups devices that share identical software. The object that represents the product is a virtual container, holding firmware bundles and files common to all the devices activated to the product. The device is an instance of the product.

Think of a product as a model number, the TOASTER-3000 for example, and a device as the actual physical toaster that sits on your kitchen bench.

After creating a product on the DMS, firmware bundles and files can be uploaded to the product. Any number of devices can be activated to the product and can download software available for the product. Device activation is authorized on a per user basis.

There are two ways to create products depending on which kind of app you are building:

Product Properties

A product has associated bundles - the files a device receives when it OTAs.

A ZentriOS edition for a particular platform is a product. For example: ZENTRI-AMW106_ZAP is ZentriOS-WZ for the AMW106 platform. ZENTRI-OM13086SCCK_ZAP is ZentriOS-WZ for the NXP-SCCK platform.

A device can be activated to only one product at a time. Activating a device to a product means associating the device with that product. When device performs an OTA update, it downloads and installs the product.

A product is (locked/unlocked) unclaimable/claimable. If a product is claimable, a device activated to that product is claimable.

Only one version of a product can be tagged with a particular tag, such as Release or Beta.

A device activated to a product receives the Release version of the product, by default, when it runs the OTA command.

A device tagged Beta receives the Beta version of the product, by default, when it runs the OTA command. If no Beta version is available, it receives the Release version.

When a bundle is tagged, you cannot change the state of the bundle. To change the state you have to move the tag, by tagging a different bundle with that tag.

Product Code: The code that appears as a prefix in the product code is either the developer name or the product owner name.

To publish a product, you associate a customer/product owner with the product.

Description: this is the marketing information for the product. This appears in the ZAP store. It's what people read when they are considering activating their devices to the product.

Bundles

A bundle is a collection of files, and has some additional properties.

The bundle lifecycle moves through the states: preview -> published -> archive.

There is also a trash state for discarded bundles.

While a product is under development it is in the preview state.

Only the developer sees the preview. When you publish, the bundle is visible to others.

When a bundle is superseded, it can be moved to the archive state.

A bundle has a particular version of firmware.

In a bundle tagged as alpha, beta or release some properties, such as version number, cannot be changed. To change a tag or change a property, first set the bundle's current tag to a different bundle.

When you OTA a version of the product to a device, the bundle associated with that version, and the associated ZentriOS version is downloaded and installed on the device.

Bundle Properties

Bundle File Properties

Each file has the following properties:

Devices

Device Properties

Origin product is the firmware bundle with which the device is originally shipped. When a device is claimed, it reverts to its origin product.

A device can be locked or unlocked.

If it's unlocked, a user can claim it by issuing the command. It reverts to its origin product, and previous logs and history become unavailable to the user who has claimed the product.

If it's locked, it is not claimable.

Device Files

Drag a file and drop to add it to the Cloud FS (FileSystem) associated with the device. Using ZentriOS Native API Cloud FS APIs, the device can upload and download files to its Cloud FS. See group-api-dms-file

Product Assets

Assets are Cloud FS files, like Device Files, but they are available to all the devices activated to a product. They provide a way to incrementally change a product, without creating a new release bundle.

Customer - Product Owner

A customer is a company with a product or products on a large group of devices.

When a customer has a release that's ready to go, they do a work order for manufacturing.

Typically when a fleet of devices is released with a product, they are locked.

This means they are owned by the product owner, that is, the customer, not by the device owner, the user who has physical ownership of the device.

The device owner does not have to claim the device to OTA. It's already in the DMA, activated to the product. The OTA process is typically transparent, i.e. invisible, to the device owner.

Logs

Devices, products, have associated logs. Logs have a standard format, with the properties:

DMS Connectors

Connectors listen to log events and send selected events to an end point for data analysis. Data can include telemetry, sensor data, geolocation data, and so on. Telemetry in this sense includes data such as device signal strength, number of hard faults, how much memory is available.

The connector subcribes to a pattern in the logs, determined by the Object setting and the Actions setting. It takes any log lines matching the pattern and sends them to the endpoint specified in the connector.

Connector Properties