Private Plugins
This feature requires Enterprise License and above. Please contact sales@ubidots.com to enable the Developer console on your account.
Private plugins, unlike their public counterpart, are developed, maintained and deployed by Ubidots users, in order to meet requirements that are not natively addressed by the platform.
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:
Adhering to this file structure and including all the mentioned files is mandatory for the plugin to function correctly and be able to be deployed.
src directory
the src
directory holds the primary components of the plugin. This is where the core logic, main functionalities and some configuration files are defined.
For more specific details about the contents of this directory, please refer to the dedicated section for each different plugin type:
CronWebhookWidgetDevicemanifest.toml
In a broad sense, the manifest file defines the plugin's identity and behavior, that is, it outlines:
Plugin type
Plugin's current version
Plugin's price
Environmental 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 by:
Section | Key | Value | Description | Example |
---|---|---|---|---|
[-] | manifest_version | A valid manifest version. Currently 2.0 is the only supported | manifest version | |
[settings] | version | Any number according to your versioning system | Plugin's current version | |
[settings] | plugin_type | cron, webhook, device, widget | Plugin type | |
[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 |
|
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, please refer its dedicated page within their respective section.
Manifest's file keys marked with a * means that its not a mandatory key.
Runtimes
Python
Plugin's python runtime is based on python3.11. You can use it in the manifest.toml
file as python3.11
. It contains 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
Plugin's NodeJS runtime is based on NodeJS 20. You can use it in the manifest.toml
file as nodejs:20
It contains 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 file can't be empty.
Readme
This is equally important as the src
directory, since these are the instructions that will guide the plugin's user. especificar markdown, mostrar screenshot
This file can't be empty.
Last updated