Modules Development

Note

This document describes how to develop own Modules

Overview

When choosing architecture for Modules, it was important to address the following concerns:

  • Unpredictable environments can require different runtime constraints

  • It must be as simple as possible to extend SysInspect with own custom modules, enabling unequal programming skill levels

There are two kind of purposes to call the modules:

  • System integration assertion

  • Applying a system state

One can use either of these purposes or mix them together.

Native Modules

Modules for SysInspect are essentially a standalone programs on their own, communicating via protocol in JSON format. Data exchange channel is done via STDIN/STDOUT. One can develop them in any language or scripts, as long as a Module is supporting defined communication protocol. This approach enables everyone to be as flexible and free as possible, adapting to any unpredictable environment and allowing to choose any technology one might like to.

Python support is provided through runtime modules. Python code is no longer treated as a native module type under the main shared modules tree.