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 |
JSON Schema
{
"$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"
}
}
}
}
}