openc3/data/config/plugins.yaml
---
VARIABLE:
summary: Define a configurable variable for the plugin
description: The VARIABLE keyword defines a variable that will be requested for the user to enter during plugin installation. Variables can be used to handle details of targets that are user defined such as specific IP addresses and ports. Variables should also be used to allow users to rename targets to whatever name they want and support multiple installations of the same target with different names.
Variables can be used later in plugin.txt or in any other configuration file included in a plugin using Ruby ERB syntax. The variables are assigned to accessible local variables in the file.
At a high level, ERB allows you to run Ruby code in configuration files.
parameters:
- name: Variable Name
required: true
description: The name of the variable
values: .+
- name: Default Value
required: true
description: Default value of the variable
values: .+
NEEDS_DEPENDENCIES:
summary: Indicates the plugin needs dependencies and sets the GEM_HOME environment variable
description: If the plugin has a top level lib folder or lists runtime dependencies in the gemspec,
NEEDS_DEPENDENCIES is effectively already set. Note that in Enterprise Edition, having
NEEDS_DEPENDENCIES adds the NFS volume mount to the Kubernetes pod.
since: 5.5.0
INTERFACE:
modifiers:
<%= MetaConfigParser.load('interface_modifiers.yaml').to_meta_config_yaml(4) %>
summary: Defines a connection to a physical target
description: Interfaces are what OpenC3 uses to talk to a particular piece
of hardware. Interfaces require a Ruby or Python file which implements all the interface
methods necessary to talk to the hardware. OpenC3 defines many built in interfaces
or you can define your own as long as it implements the interface protocol.
parameters:
- name: Interface Name
required: true
description: Name of the interface. This name will appear in the
Interfaces tab of the Server and is also referenced by other keywords.
The OpenC3 convention is to name interfaces after their targets with
'_INT' appended to the name, e.g. INST_INT for the INST target.
values: \D\S*
- name: Filename
required: true
description: Ruby or Python file to use when instantiating the interface.
values:
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
documentation: Additional parameters are required. Please see the [Interfaces](../configuration/interfaces.md)
documentation for more details.
ROUTER:
modifiers:
<%= MetaConfigParser.load('interface_modifiers.yaml').to_meta_config_yaml(4) %>
summary: Create router to receive commands and output telemetry packets from one or more interfaces
description: Creates an router which receives command packets from
their remote clients and sends them to associated interfaces. They receive telemetry
packets from their interfaces and send them to their remote clients. This allows
routers to be intermediaries between an external client and an actual device.
parameters:
- name: Name
required: true
description: Name of the router
values: .+
- name: Filename
required: true
description: Ruby or Python file to use when instantiating the interface.
values:
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
documentation: Additional parameters are required. Please see the [Interfaces](../configuration/interfaces.md)
documentation for more details.
<%= MetaConfigParser.load('target.yaml').to_meta_config_yaml() %>
<%= MetaConfigParser.load('microservice.yaml').to_meta_config_yaml() %>
<%= MetaConfigParser.load('tool.yaml').to_meta_config_yaml() %>
WIDGET:
summary: Define a custom widget
example: WIDGET HELLOWORLD
description: Defines a custom widget that can be used in Telemetry Viewer screens.
parameters:
- name: Widget Name
description: The name of the widget will be used to build a path to the widget implementation. For example, `WIDGET HELLOWORLD` will find the as-built file tools/widgets/HelloworldWidget/HelloworldWidget.umd.min.js. See the [Custom Widgets](../guides/custom-widgets.md)
guide for more details.
required: true
values: .+
- name: Label
description: The label for the widget that will appear in the Data Viewer component drop down
required: false
values: .+
modifiers:
DISABLE_ERB:
summary: Disable ERB processing
description: Disable ERB processing for the entire widget or a set of regular expressions over its filenames
since: 5.12.0
parameters:
- name: Regex
required: false
description: Regex to match against filenames. If match, then no ERB processing
values: .+