Skip to content

Glossary

Adam Hooper edited this page Nov 9, 2020 · 12 revisions

User-facing terms:

  • Workflow: A sort of document/project: contains all steps and renders as a whole.
  • Step: Unit of computation. Its input is a Table and its output is a Table. It holds a module, parameters and secrets.
  • Module: Function used in a Step. (It's a big block of Python code.) Each module accepts a certain set of parameters.
  • Params: Parameters to a module, stored on a Step. (We store them as JSON.)
  • Secrets: Special parameters that are as restrictive as possible while fulfilling the module's purpose. The workflow owner can set secrets. Other workflow viewers can see minimal identifying information ("logged in as [email protected]"). The module can see barely enough information to make API calls on behalf of the user -- in the case of OAuth2, the module sees client ID (for the module), client secret (for the module), and recent user access token (but not refresh token).
  • Tab: A visual helper for organizing steps.
  • Table: The data before and after each step.
  • Report: Sequence of blocks
  • Block: One element of a report. A block can be a Chart Block, Table Block or Text Block.

Developer-facing terms:

  • Delta: Database row containing a valid command -- one that can be applied that will change the workflow. Users create (and apply) Deltas using API methods. Everything the user can "undo" is stored in a Delta.
  • Command: A Delta's underlying logic. (Each Delta refers to a Command -- for instance, "Add Step".) Commands are used to validate and create a Delta, and to apply its "forward" (do) and "backward" (undo) logic.
  • Update: Package sent by the server that modifies all clients' Workflow state.
  • Mutation: Client-side representation of a Command. The server ignores mutations; but the client uses them to make assumptions about what the server will soon do. (This mechanism lets the user update a Workflow optimistically.)