For the complete documentation index, see llms.txt. This page is also available as Markdown.

Private plugins

This feature requires an Enterprise license. Please contact sales@ubidots.com to enable the developer console on your account.

Private plugins, unlike their public counterparts, are developed, maintained, and deployed by Ubidots users to meet requirements that the platform does not address natively.

A private plugin is structured around a specific set of files. These files not only determine the plugin type but also define its logic and overall functionality. The typical file structure for a plugin, regardless of its type, is outlined below:

├── src
│   ├── some_files_or_folders    
├── LICENSE
├── README.md
├── manifest.toml 

src directory

The src directory holds the primary components of the plugin. This is where the core logic, main functionality, and some configuration files are defined.

For more details about the contents of this directory, refer to the dedicated section for each plugin type:

CronWebhookWidgetDevice

manifest.toml

In broad terms, the manifest file defines the plugin's identity and behavior. It outlines:

  • The plugin type

  • The current plugin version

  • The plugin price

  • Environment variables

This file contains both shared components that apply to all plugin types and unique components that are specific to each plugin type.

The typical manifest file common to all plugins is composed of:

Section
Key
Value
Description
Example

[-]

manifest_version

A valid manifest version. Currently 2.0 is the only one supported.

Manifest version.

[settings]

version

Any number, according to your versioning system.

Plugin's current version.

[settings]

plugin_type

cron, webhook, device, widget.

Type of plugin

[settings]

license_name

A valid license name.

The name for your plugin's license.

[pricing]

price*

A float number.

This is the price that the developer wants to set for the plugin.

[environment]

Any variable name*

Any value for the variable.

Allows to set environment variables within the plugin.

UBIDOTS_URL = "https://industrial.api.ubidots.com"

With that in mind, a manifest file that is common to all plugins, regardless of their type, looks like this:

For detailed information about the specific manifest file components particular to each plugin type, refer to their dedicated pages.

Manifest file keys marked with a * are optional.

Runtimes

Python

The plugin's Python runtime is based on Python 3.11. Use python3.11 in the manifest.toml file. It includes the following libraries:

Library
Version

requests

2.32.3

pytz

2024.1

msgpack

1.0.8

httpx

0.27.0

aiohttp

3.9.5

lxml

5.2.2

numpy

2.0.0

pandas

2.2.2

python-aqi

0.6.1

NodeJS

The plugin's NodeJS runtime is based on NodeJS 20. Use nodejs:20 in the manifest.toml file. It includes the following libraries:

Library
Version

axios

1.5.1

License

The LICENSE file provides information about the licensing terms under which the plugin is distributed.

Typically, a license file looks like this:

README

This file is as important as the src directory because it guides plugin users. This file must be written in Markdown.

Last updated

Was this helpful?