FBL specific terms and their definitions.
Any action that one can use in his/her flow is served by Node.js plugin with one or more associated ActionHandler classes.
In the flow file action handler can be referenced via its ID or one of the specified aliases.
Every action has access to the shared object that is called
FBL Context has a following format:
# directory path from where fbl command was executedcwd: string# non-secret values storagectx:key: value# secret values storagesecrets:key: secret# Any kind of objects that were created, updated or removed upon flow execution# and or manually assigned to corresponding fields via special actions (check default "context" plugin for more information)entities:# "registered" by convention should store all created or updated entitiesregistered:- id: string | numbertype: stringpayload:# unregistered by convention should store all removed entitiesunregistered: # only entities that were created, same entities should also exist in "registered" listcreated: # only entities that were updated, same entities should also exist in "registered" listupdated: # only entities that were deleted, same entities should also exist in "unregistered" listdeleted: # Summary records that will be printed in the end of execution in a nice ASCII table for user# Generally used to present tests results or simple tracing reports for usersummary:- title: Count to 5status: SUCCESSduration: 5mspayload:additional: information
One or more actions combined into together with defined order of execution.
Dynamic value processing and assignment inside the flow is handled by EJS template.
FBL uses its own concept of referencing paths to read from and write to context fields. And generally have a following look
Path should always start with
$ defines root field. It can be either context or some other target based on the context of usage.
. is used to define relationship between parent and child fields. Where parent is always goes first.
Path should be read from left to right. Where left represent parent fields and right - their nested ones.
Path can not reference array elements. Path traveling is only possible to the deepest nested object or first found field with basic type value (number, boolean, string) or array.
Parameters is additional shared object like context, but it is not shared across all actions, but only with ones where parameters are defined and all nested ones (if any). Generally parameters are used to isolate specific values from global scope.
Embedded or external Node.js module that has specific structure and exposes action handlers, template utility functions or custom reporters.