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
etl A collection of states for helping with Extract, Transform and Load tasks.
express Exposes the Flobot framework via an Express.js web app.
forms Adds some form capabilities to Flobot
pg Replace Flobot's out-the-box memory storage with PostgreSQL

List of State Classes

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

State Class Description Plugin
exportingCsvDeltaFile Outputs change-only-update CSV files (or “delta” files) that contain all the necessary actions required to re-synchronize rows in a cloned table - just a thin wrapper over pg-delta-file pg
findingById Fetches a single document by its primary key values from storage and adds to a Flobot context flobot
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
importingCsvFiles Takes a specifically-named directory structure of CSV files and conjures bulk insert, update and delete statements and applies them to a PostgreSQL database - just a thin wrapper over Supercopy pg
logging Just logs any data sent to it to the console flobot
processingCsvFiles Smash CSV files into more manageable files based on column values - just a thin wrapper over Smithereens etl
sendingEmail For sending an emails - just a thin wrapper over Nodemailer alerts
starting An internal (automatically added) state that performs some Flobot-startup tasks flobot
synchronizingTable Takes the contents of one PostgreSQL table, applies a transformation function to each row and ensures a target table is kept in sync - just a thin wrapper over pg-telepods pg
upserting Saves a document to storage 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
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 pg
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