Skip to main content

Core Concepts

Understand the key concepts and terminology used in Sluice.

Core Concepts

Before diving deep into Sluice, it helps to understand the core concepts that make up the platform.

Pipelines

A Pipeline is the central object in Sluice. It defines the complete workflow for building, testing, and deploying your application. Each pipeline consists of:

  • Configuration: The YAML/JSON definition of your stages
  • Versions: Snapshots of your configuration over time
  • Runs: Individual executions of a pipeline version

Pipelines are scoped to a tenant and can be triggered manually or via webhooks.

Stages

A Stage is a single step within a pipeline. Stages run sequentially in the order they are defined. Sluice supports several stage types:

TypeDescription
sourceFetches code from a Git repository
buildBuilds a container image using Docker
testRuns tests (unit, integration, etc.)
deployDeploys to Kubernetes or other targets
approvePauses for manual approval before continuing

Each stage has its own configuration options. See Stage Types for details.

Versions

A Version is an immutable snapshot of your pipeline configuration. When you modify a pipeline, a new version is created automatically. This provides:

  • Auditability: See exactly what configuration was used for each run
  • Rollback: Easily revert to a previous configuration
  • Comparison: Compare versions to see what changed

Runs

A Run is a single execution of a pipeline version. Runs can be:

  • Manual: Triggered by clicking “Run Pipeline” in the UI
  • Webhook: Triggered automatically by a Git push or pull request
  • Scheduled: Triggered on a cron schedule (coming soon)

Each run tracks:

  • The stages that were executed
  • The status of each stage (pending, running, success, failed)
  • Logs and artifacts from each stage
  • The duration of the entire run

Webhooks

Webhooks enable automatic pipeline triggers from external events. Sluice can receive webhooks from:

  • GitHub: Push events, pull request events
  • GitLab: Push events, merge request events
  • Custom: Any HTTP POST with a valid payload

When a webhook is received, Sluice:

  1. Validates the request signature
  2. Extracts relevant metadata (branch, commit, etc.)
  3. Triggers the appropriate pipeline
  4. Returns a run ID for tracking

Tenants

A Tenant represents an organization or team in Sluice. All resources (pipelines, runs, settings) are scoped to a tenant. This enables:

  • Multi-tenancy: Multiple teams can use Sluice independently
  • Isolation: Each tenant’s data is separate and secure
  • Access Control: Users belong to one or more tenants

Environment Variables

Environment Variables allow you to parameterize your pipeline configuration. Variables can be:

  • Pipeline-scoped: Available to all stages in a pipeline
  • Stage-scoped: Available only to a specific stage
  • Secret: Encrypted and masked in logs

See Variables for more details.

Next Steps

Now that you understand the core concepts: