Plugin repository for the Netzo WoT Platform, an open Web of Things platform to interconnect IoT devices, platforms and services over the web.
This repository is still a Work in Progress. In the meantime, feel free to reach out at hello@netzo.io for more information on the Netzo WoT Platform. If you feel like contributing, do let us know!
This repository lists all officially supported plugins listed on netzo.io and used by the Netzo WoT Platform.
We review all plugins before they are published. This means that it may take some time before we can review your plugin.
To submit a plugin for review:
- Fork this repository
- Copy a starting template from
/_templates
into/plugins
- Develop your plugin by modifying the copied files accordingly
- Add the URL of the
plugin.json
file toplugins.json
- Create a pull request
To be valid, a plugin.json
file must validate against the plugin.schema.json JSON Schema. You can use a tool like JSON Schema Validator for quickly testing your plugin.json
files. The following table summarizes the fields in a plugin.json
file.
Property | Type | Requried | Description |
---|---|---|---|
uid |
String | true | A unique ID (camel-case) prefixed by the initials of its the plugin type (ti- , tm- or wi ) |
type |
String | true | Plugin type, one of thing-importer , thing-model , or widget |
version |
String | true | Plugin version in semantic version format |
status |
String | true | Marks the current development status of the plugin. One of stable , beta , requested , deprecated |
category |
String | true | Marks the category of the plugin. One of official , community , enterprise , deprecated |
name |
String | true | A human-friendly display name for the plugin |
description |
String | true | A brief description of the plugin |
keywords |
String[] | false | An array of relevant keywords (camel-case) |
authors |
String[] | false | An array of emails of plugin authors or owners (e.g. mailto:first.last@sample.com ) |
license |
String | false | A string indicating licensing information (e.g. MIT ) |
main |
String | false | URL to the plugin's main entry point (e.g. @netzoio/plugins/plugins/widgets/wi-p-button-toggle/src/index.js ) |
display |
Display | true | A Display object specifying relevant details for rendering the plugin in the UI |
links |
Link[] | false | An array of link relations to related web resources |
form |
Form | false | A Form object specifiying the model , schema and options to be used in the plugin settings form by the UI |
Property | Type | Requried | Description |
---|---|---|---|
imageUrl |
String | true | URL to the plugin's display image (used as logo) |
color |
Object | false | String of color in hexadecimal format used by UI in certain places. If none is specified a default will be applied |
screenshots |
Image[] | false | Array of image resource objects specifying sample screenshots of the plugin in action |
Property | Type | Requried | Description |
---|---|---|---|
label |
String | false | The accessible name for the associated image |
sizes |
String | false | Specifies which image is most suitable for each display context |
type |
String | false | The image MIME type for the image resource (e.g. image/png , image/svg , image/jpg ) |
src |
String | true | URL from wich the image can be fetched from the internet |
Property | Type | Requried | Description |
---|---|---|---|
rel |
String | false | The link relation (see possible values here) |
name |
String | false | The human-friendly display name |
href |
String | true | URL to the link resource in the internet |
Property | Type | Requried | Description |
---|---|---|---|
model |
String | false | Specifies default values for the plugin settings form in the UI |
schema |
String | false | Specifies the expected data format for the plugin settings form in the UI |
options |
String | true | Specifies options for the plugin settings form in the UI |
The UI uses @koumoul/vjsf for UI form generation from static JSON schema definitions. For examples and documentation you can look at the
plugin.json
of other plugins or directly in the library documentation.
Here's a reduced example of a plugin.json
file. You can also always have a look at other plugins for further reference.
{
"uid": "wi-p-button-toggle",
"type": "widget",
"version": "1.0.0",
"status": "beta",
"category": "official",
"name": "Button",
"description": "Button widget for Netzo",
"keywords": ["button"],
"authors": ["mailto:miguel.romero@netzo.io@netzo.io"],
"license": "MIT",
"main": "@netzoio/plugins/plugins/widgets/wi-p-button-toggle/src/index.js",
"display": {
"imageUrl": "https://raw.githubusercontent.com/netzoio/plugins/main/plugins/widgets/wi-p-button-toggle/src/assets/icon.svg",
"color": "",
"screenshots": []
},
"links": [],
"form": {
"model": {},
"schema": {},
"options": {}
}
}
Copyright (c) 2021 Asterisc GmbH
Licensed under the MIT license