OpenC3/cosmos

View on GitHub
openc3/data/config/plugins.yaml

Summary

Maintainability
Test Coverage
---
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: .+