Spacelift · Schema

Spacelift Stack

Schema for a Spacelift infrastructure stack — the central entity connecting a source code repository to an IaC tool deployment target

Infrastructure as CodeFinOpsDevOpsPlatform EngineeringTerraformGitOps

Properties

Name Type Description
id string Unique identifier for the stack
name string Human-readable display name for the stack
description string Optional description of the stack's purpose
createdAt string ISO 8601 timestamp when the stack was created
administrative boolean Whether the stack has administrative privileges over the Spacelift account
labels array Labels attached to the stack for organization and policy targeting
repository string Source control repository connected to this stack
branch string Git branch tracked by this stack
projectRoot string Root directory within the repository for this stack's IaC code
provider string VCS provider type (GITHUB, GITLAB, BITBUCKET, etc.)
vendorConfig object IaC vendor-specific configuration
state string Current state of the stack
space string The Spacelift space this stack belongs to
workerPool string Worker pool used for stack runs (null = public workers)
driftDetection boolean Whether drift detection is enabled for this stack
autoApply boolean Whether approved plans are automatically applied
lockedAt string Timestamp when the stack was locked (null if unlocked)
lockedBy string Login of the user who locked the stack
View JSON Schema on GitHub

JSON Schema

spacelift-stack-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/spacelift/refs/heads/main/json-schema/spacelift-stack-schema.json",
  "title": "Spacelift Stack",
  "description": "Schema for a Spacelift infrastructure stack — the central entity connecting a source code repository to an IaC tool deployment target",
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique identifier for the stack",
      "type": "string",
      "example": "my-terraform-stack"
    },
    "name": {
      "description": "Human-readable display name for the stack",
      "type": "string",
      "example": "My Terraform Stack"
    },
    "description": {
      "description": "Optional description of the stack's purpose",
      "type": "string"
    },
    "createdAt": {
      "description": "ISO 8601 timestamp when the stack was created",
      "type": "string",
      "format": "date-time"
    },
    "administrative": {
      "description": "Whether the stack has administrative privileges over the Spacelift account",
      "type": "boolean"
    },
    "labels": {
      "description": "Labels attached to the stack for organization and policy targeting",
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": ["production", "networking"]
    },
    "repository": {
      "description": "Source control repository connected to this stack",
      "type": "string",
      "example": "org/infrastructure-repo"
    },
    "branch": {
      "description": "Git branch tracked by this stack",
      "type": "string",
      "example": "main"
    },
    "projectRoot": {
      "description": "Root directory within the repository for this stack's IaC code",
      "type": "string"
    },
    "provider": {
      "description": "VCS provider type (GITHUB, GITLAB, BITBUCKET, etc.)",
      "type": "string",
      "enum": ["GITHUB", "GITLAB", "BITBUCKET", "GITHUB_ENTERPRISE", "AZURE_DEVOPS"]
    },
    "vendorConfig": {
      "description": "IaC vendor-specific configuration",
      "$ref": "#/definitions/VendorConfig"
    },
    "state": {
      "description": "Current state of the stack",
      "type": "string",
      "enum": ["CONFIRMED", "DISCARDED", "FAILED", "FINISHED", "INITIALIZING", "NONE", "PERFORMING", "PLANNING", "PREPARING", "QUEUED", "READY", "RESTARTING", "STOPPED", "UNCONFIRMED"]
    },
    "space": {
      "description": "The Spacelift space this stack belongs to",
      "type": "string"
    },
    "workerPool": {
      "description": "Worker pool used for stack runs (null = public workers)",
      "type": "string",
      "nullable": true
    },
    "driftDetection": {
      "description": "Whether drift detection is enabled for this stack",
      "type": "boolean"
    },
    "autoApply": {
      "description": "Whether approved plans are automatically applied",
      "type": "boolean"
    },
    "lockedAt": {
      "description": "Timestamp when the stack was locked (null if unlocked)",
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "lockedBy": {
      "description": "Login of the user who locked the stack",
      "type": "string",
      "nullable": true
    }
  },
  "definitions": {
    "VendorConfig": {
      "title": "Vendor Config",
      "description": "IaC tool-specific configuration for a stack",
      "type": "object",
      "properties": {
        "terraform": {
          "$ref": "#/definitions/TerraformConfig"
        },
        "pulumi": {
          "$ref": "#/definitions/PulumiConfig"
        },
        "cloudFormation": {
          "$ref": "#/definitions/CloudFormationConfig"
        }
      }
    },
    "TerraformConfig": {
      "title": "Terraform Config",
      "description": "Terraform-specific stack configuration",
      "type": "object",
      "properties": {
        "version": {
          "description": "Terraform version to use",
          "type": "string",
          "example": "1.6.0"
        },
        "workspace": {
          "description": "Terraform workspace name",
          "type": "string"
        },
        "useSmartSanitization": {
          "description": "Whether to use smart sanitization for plan output",
          "type": "boolean"
        }
      }
    },
    "PulumiConfig": {
      "title": "Pulumi Config",
      "description": "Pulumi-specific stack configuration",
      "type": "object",
      "properties": {
        "loginURL": {
          "description": "Pulumi backend login URL",
          "type": "string"
        },
        "stackName": {
          "description": "Pulumi stack name",
          "type": "string"
        }
      }
    },
    "CloudFormationConfig": {
      "title": "Cloud Formation Config",
      "description": "AWS CloudFormation-specific stack configuration",
      "type": "object",
      "properties": {
        "entryTemplateFile": {
          "description": "Path to the CloudFormation entry template file",
          "type": "string"
        },
        "region": {
          "description": "AWS region for CloudFormation deployment",
          "type": "string"
        },
        "stackName": {
          "description": "CloudFormation stack name",
          "type": "string"
        }
      }
    }
  }
}