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:
| Type | Description |
|---|---|
source | Fetches code from a Git repository |
build | Builds a container image using Docker |
test | Runs tests (unit, integration, etc.) |
deploy | Deploys to Kubernetes or other targets |
approve | Pauses 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
Note
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:
- Validates the request signature
- Extracts relevant metadata (branch, commit, etc.)
- Triggers the appropriate pipeline
- 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:
- Follow the Quick Start guide
- Learn about Pipeline Configuration
- Explore Stage Types