deploy-gate@0.3
Deployment authorization for CI/CD pipelines
Execution Paths
| Path | Description | Required Domains |
|---|---|---|
deploy-prod-canary | Canary deployment to production (limited rollout) | engineering |
deploy-prod-full | Full deployment to production (immediate rollout) | engineeringrelease_management |
deploy-prod-user-facing | User-facing feature deployment | engineeringmarketing |
deploy-prod-security | Security-sensitive deployment | engineeringsecurity |
Frame Schema
| Field | Type | Required | Description |
|---|---|---|---|
repo | string | Yes | Repository URL (full URL) |
sha | string | Yes | Git commit SHA (40 hex characters) |
profile | string | Yes | Profile identifier with version |
path | string | Yes | Execution path identifier |
Key order: repo, sha, profile, path
Gate Questions
problem: What problem are you solving?required
objective: What outcome do you want?required
tradeoffs: What are you willing to sacrifice?required
Full Definition
{
"id": "deploy-gate@0.3",
"version": "0.3",
"description": "Deployment authorization for CI/CD pipelines",
"frameSchema": {
"keyOrder": [
"repo",
"sha",
"profile",
"path"
],
"fields": {
"repo": {
"type": "string",
"required": true,
"description": "Repository URL (full URL)"
},
"sha": {
"type": "string",
"required": true,
"description": "Git commit SHA (40 hex characters)"
},
"profile": {
"type": "string",
"required": true,
"description": "Profile identifier with version"
},
"path": {
"type": "string",
"required": true,
"description": "Execution path identifier"
}
}
},
"executionContextSchema": {
"fields": {
"profile": {
"source": "declared",
"description": "Profile identifier",
"required": true
},
"execution_path": {
"source": "declared",
"description": "Governance level",
"required": true
},
"repo": {
"source": "declared",
"description": "Repository URL",
"required": true
},
"sha": {
"source": "declared",
"description": "Head commit SHA",
"required": true
},
"base_sha": {
"source": "declared",
"description": "Base commit SHA (for diff computation)",
"required": true
}
}
},
"executionPaths": {
"deploy-prod-canary": {
"description": "Canary deployment to production (limited rollout)",
"requiredDomains": [
"engineering"
]
},
"deploy-prod-full": {
"description": "Full deployment to production (immediate rollout)",
"requiredDomains": [
"engineering",
"release_management"
]
},
"deploy-prod-user-facing": {
"description": "User-facing feature deployment",
"requiredDomains": [
"engineering",
"marketing"
]
},
"deploy-prod-security": {
"description": "Security-sensitive deployment",
"requiredDomains": [
"engineering",
"security"
]
}
},
"requiredGates": [
"frame",
"problem",
"objective",
"tradeoff",
"commitment",
"decision_owner"
],
"gateQuestions": {
"problem": {
"question": "What problem are you solving?",
"required": true
},
"objective": {
"question": "What outcome do you want?",
"required": true
},
"tradeoffs": {
"question": "What are you willing to sacrifice?",
"required": true
}
},
"ttl": {
"default": 3600,
"max": 86400
},
"retention_minimum": 7776000
}