Skip to content

Block Management

Blocks are the building components of Spacelift Flows. Each block performs one function and communicates with other blocks through inputs and outputs.

  1. Choose Built-in blocks or App blocks from left sidebar
  2. Click the block type you want
  3. Click specific block variant

Adding blocks to the canvas

Connect blocks by linking sockets:

  • Drag from output socket (bottom of source block)
  • Drop onto input socket (top of destination block)
  • One output can connect to multiple inputs (parallel processing)
  • Multiple outputs can connect to one input (data merging)

Every block has defined input and output sockets:

  • Input sockets (top of blocks): Configure input settings or manually send debug events
  • Output sockets (bottom of blocks): View outgoing events or customize output data

Input socket

Output socket

Best Practice: Name blocks before connecting them. Block names become the keys you use to access their outputs in subsequent blocks.

Blocks may have two configuration types:

  • Set at block level
  • Evaluated right away, not per-event
  • Usually const, but can also reference “signals” from other blocks using ref()
  • Set at input level
  • Accesses outputs of previous blocks through outputs variable
  • Evaluated for each incoming event

When you connect blocks, Spacelift shows you the available input schema so you know what data you can access. You also have full auto-complete in the config editors.

Built-in functionality: HTTP requests, scheduling, data transformation, business logic.

From installed apps: complex integrations with external services, authentication, API interactions, low-level protocols.

Some blocks have lifecycles that manage external resources or configurations. Blocks with lifecycles handle:

  • Creation of external resources or configurations
  • Updates to those resources when block settings change
  • Deletion and cleanup when the block is removed (draining)
  • Exposing static outputs via signals that other blocks can reference

Examples of lifecycle blocks:

  • AWS S3 Bucket (creates and manages S3 bucket)
  • PagerDuty Incident Subscription (manages PagerDuty-side webhook configuration)
  • DRAFT: Being configured by the user, no resource created yet
  • IN_PROGRESS: Being created or updated
  • READY: Successfully created or updated
  • FAILED: Creation or update failed
  • DRAINING: Being deleted, cleaning up resources