Core Components

This page contains an inventory of all the main types of component supplied via the Flobot module and core plugins:

Diagram showing how plugins/blueprints/config/services relate to each other


List of plugins

Plugins extend Flobot with functionally-related State Classes, Commands and Services etc.

Plugin Description
flobot The flobot module has a built-in plugin which provides low-level components to help get things started.
alerts Adds some alerting options to the Flobot framework
elasticsearch Adds an Elasticsearch-based search service to the Flobot framework
express Exposes the Flobot framework via an Express.js web app.
forms Adds some form capabilities to Flobot
import For extracting data from files and loading into Flobot storage
mongodb Replace Flobot's out-the-box memory storage with MongoDB

List of State Classes

Flows are built from states, and states themselves are an instance of a state class

State Class Description Plugin
deletingFlobotTasks Deletes any task documents with a key of the current Flobot elasticsearch
deletingFromSearchIndex Removes a document from an Elasticsearch index elasticsearch
findingOne Fetches a single document from storage and adds to a Flobot context flobot
formFilling Indicates which form a human needs to interact with - and waits until a response is received forms
importing Streams data from a pre-prepared directory and into storage import
logging Just logs any data sent to it to the console flobot
makingTask Creates a new Flobot that's configured to be used as a task elasticsearch
persisting Saves a document to storage flobot
producingImportFiles Takes data from raw files (e.g. CSV) and outputs a common structure for subsequent importing. import
searching Runs a query on an Elasticsearch index elasticsearch
sendingEmail For sending an emails - just a thin wrapper over Nodemailer alerts
settingSearchIndex Indexes an Elasticsearch document elasticsearch
starting An internal (automatically added) state that performs some Flobot-startup tasks flobot

List of commands

Commands allow states to be configured to access dynamic runtime values (e.g. from the Flobot context, environment variable etc.)

Command Description Plugin
env Allows a state to refer to an environment variable flobot
sprintf Derive a runtime value using a sprintf string template flobot
value Get a value from the Flobot's context flobot

List of services

After the boot-up process, Flobot will return many ready-to-use services. Most services are internal things (like caches) and are probably only of interest if you’re writing your own plugins. However, some services (like server) offer key Flobot functionality.

Service Description Plugin
auth Provides JWT-based authentication capabilities express
blueprintDocs Allows tracking of documents created via blueprints, so they don't get reverted when Flobot restarts flobot
caches Adds lru-cache-based caching to Flobot. Note defaults will be used if no caches configuration is provided. flobot
commands Service to support blueprint commands flobot
email Integrates Flobot with Nodemailer to offer email-sending capabilities alerts
expression Provides safe, Esprima-based expression evaluation flobot
flobotRest Exposes the core Flobot abilities (start, get, update and cancel) over a JWT-secured REST API express
flobots Creates Finite State Machines based on flow definitions and an API to interact with Flobots flobot
forms Exposes UI configuration (as supplied via blueprints in Schema Form format) forms
functions Adds ability to run custom logic as defined in a blueprint flobot
inventory Collates component information by scanning plugins. The results can then be used by tooling and documentation-generators flobot
rbac Provides JWT-based authentication capabilities flobot
registry Provides a mechanism for states to refer to site-specific values flobot
search For integrating Flobot with an Elasticsearch server elasticsearch
server Provides a CORS-enabled Express.js server. Includes serving of static assets as supplied via Bluepints express
states Stores and prepares State Classes, ahead of generating flows flobot
storage This is the default in-memory storage service that ships with Flobot. Useful for testing and not much else. flobot
storage Replaces the default in-memory storage solution with a MongoDB-backed alternative mongodb
tags Provides a generic mechanism to help tag/classify search results, tasks, forms etc. flobot
temp Helps configure and manage a temporary folder for Flobot to use flobot
users Adds user-management capabilities to Flobot (e.g. authorization checks, what flows/forms a user is entitled to instigate etc.) flobot