Links

Private Plugins

This feature requires Enterprise License and above. Please contact [email protected] 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:
├── src
│ ├── some_files_or_folders
├── LICENSE
├── README.md
├── manifest.toml
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:

License file

The LICENSE file provides information about the licensing terms under which the plugin is distributed.
Typically, a license file looks like:
Copyright (c) 2021 Ubidots
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
This file can't be empty.

Readme

This is equally important as the srcdirectory, since these are the instructions that will guide the plugin's user. especificar markdown, mostrar screenshot
This file can't be empty.

Manifest.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
manifest_version = 2.0
[settings]
version
Any number according to your versioning system
Plugin's current version
version = "1.1.1"
[settings]
plugin_type
cron, webhook, device, widget
Plugin type
plugin_type = "widget"
[settings]
license_name
A valid license name
The name for your plugin's license
license_name = "MIT license"
[pricing]
price*
A float number
This is the price that the developer wants to set for the plugin
price = 10
[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:
manifest_version = 2.0
[settings]
version = "1.1.1"
plugin_type = "cron" | "webhook" | "device" | "widget"
license_name = "MIT license"
[pricing]
price = 10
[environment]
UBIDOTS_URL = "https://industrial.api.ubidots.com"
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.
Last modified 5mo ago