Tutorials#
Step-by-step guides for learning scafctl features.
Getting Started#
- Getting Started — Install scafctl and run your first solution
- Solution Scaffolding Tutorial
— Create new solutions with
scafctl new solution
Core Tutorials#
- Resolver Tutorial — Master dynamic value resolution
- Run Resolver Tutorial — Debug and inspect resolver execution
- Run Provider Tutorial — Test providers in isolation
- Parameterized Calls Tutorial
— Define reusable, argument-driven provider requests with
spec.calls - Actions Tutorial — Learn how to use actions for workflow automation
- Authentication Tutorial — Set up authentication for your workflows
- Eval Tutorial — Test CEL expressions and Go templates from the CLI
- Linting Tutorial — Validate solutions, explore lint rules, and fix issues
- Refactoring Tutorial
— Rename a resolver, action, call, or function and every reference to it with
refactor rename - Language Server (LSP) Tutorial
– Run
scafctl lspfor in-editor diagnostics - CEL Expressions Tutorial — Master CEL expressions and extension functions
- Go Templates Tutorial — Generate files with Go template rendering
- Reference-Data Lookups – Look up taxonomy values from inline, file, or HTTP datasets
- Catalog Tutorial — Store and manage solutions in your local catalog
- MCP Server Tutorial — Set up AI agent integration with VS Code Copilot, Claude, Cursor, and Windsurf
- Security Hardening — Secure your solutions and workflows
- Validation Patterns Tutorial — Input constraints, runtime validation, and common regex/CEL patterns
- Snapshots Tutorial — Capture and compare execution snapshots
- Functional Testing Tutorial — Write and run automated tests for your solutions
- Dry-Run Tutorial – Preview a solution’s action plan without executing it
- Solution Diff Tutorial – Compare two solution files or snapshots
- Auto-Discovery Tutorial
– How scafctl locates a solution file without
-f - Output Directory Tutorial – Redirect file-writing actions to a target directory
- Template Directory Rendering Tutorial – Render an entire directory tree of templates in one action
Operations & Configuration#
- API Server Tutorial — Architecture and endpoint reference for the REST API
- Serve Tutorial — Start and configure the REST API server
- API Mode Authentication – Authenticate requests to the REST API server
- Configuration Tutorial — Manage application configuration
- Logging & Debugging Tutorial — Control log verbosity, format, and output
- Telemetry Tutorial — Ship traces and metrics to Jaeger / Prometheus
- Cache Tutorial — Manage cached data and reclaim disk space
- State Tutorial – Persist resolver values across executions
- Auth Profiles Tutorial – Manage multiple named authentication profiles
- Auth Handler Migration Guide – Migrate from built-in auth handlers to plugin-based ones
- GCP Custom OAuth Client Setup – Configure a custom OAuth client for GCP authentication
- Docker Credential Helper Tutorial – Use scafctl as a Docker/Podman credential helper
Reference#
- Exec Provider Tutorial — Cross-platform shell execution with embedded and external shells
- Directory Provider Tutorial — Listing, scanning, and managing directories
- File Provider Tutorial – Reading, writing, and checking files
- HCL Provider Tutorial — Parse, format, validate, and generate Terraform/OpenTofu HCL configuration files
- Message Provider Tutorial — Rich terminal output with styled messages, templates, and quiet-mode control
- Provider Output Shapes — Quick reference for provider output data shapes
- Provider Reference — Complete documentation for all built-in providers
- Provider Extraction Tutorial – Extract official providers as standalone plugin binaries
Extension Development#
- Extension Concepts — Provider vs Auth Handler vs Plugin terminology
- Provider Development Guide — Build custom providers (builtin and plugin)
- Auth Handler Development Guide — Build custom auth handlers (builtin and plugin)
- Plugin Development Guide — Plugin overview and discovery
- Plugin Auto-Fetching Tutorial — Automatically fetch plugins from catalogs at runtime
- Bundle Plugins & Built-in Providers
– Declare plugin versions in
bundle.pluginsfor reproducible builds - Plugin Lock Modes Tutorial — Control plugin version pinning with strict, constrained, and bestEffort modes
- Multi-Platform Plugin Build Tutorial — Build plugins for multiple platforms