Kinds of Bricks
The PixieBrix ecosystem is based on sharable/combinable components called "bricks". Each brick has a unique identifier and version
Starter Bricks
kind: extensionPoint
Starter bricks are re-usable extension points where you can attach functionality (e.g., a click handler or a body renderer)
PixieBrix currently has support for the following foundations:
- Menu Item: a menu item or a button (
kind: menuItem
) - Context Menu: a menu item available in the context menu when you right-click (
kind: contextMenu
) - Panel: a panel embedded on the page (
kind: panel
) - Sidebar Panel: a panel in the PixieBrix sidebar panel (
kind: actionPanel
) - Trigger: run on an event, e..g, page load, element appearance, click, etc. (
kind: trigger
)
Blocks
Blocks are functions that you can wire together and attach to a foundation
- Readers: read information from a document. Current Support: HTML via JQuery, EmberJS, React, window variables. Each foundation can provide a default reader.
- Effects: take an input and perform a side effect. Examples: append a row to spreadsheet, send a message to Slack, open a new tab with a Google search.
- Transforms: take an input and produce an output. Example: call an API, run a jq transform, extract data using a regular expression
- Renderers: a transform that returns HTML or a ReactJS component, e.g., to render in a sidebar panel. Examples: renderer markdown, a data table
You can also create composite blocks that behave as a single block. In YAML configuration files, these are indicated with kind: component
Integrations
kind: service
Re-usable resources and configuration that can also be used to authenticate requests to APIs. By creating a PixieBrix account, you can share service configurations with your team. Examples: an API credential, a Google Sheet
Mods
Collections of starter bricks + block combinations that a user can install together. Example: a collection of context menu definitions for running searches on different sites
A mod can also be automatically provisioned to a group(s) of users in the Admin Console (see
Input/Output Schemas
PixieBrix uses JSON Schema for specifying the shapes of inputs and outputs. In addition to serving as documentation, PixieBrix checks inputs to a brick against the schema.
If you're coming from the Javascript world, these are analogous to React's prop-types or schema validators such as Yup. In the REST API world, these are similar to an OpenAPI/Swagger specification