scafctl

module
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: Apache-2.0

README

scafctl

Go Report Card License Release CI codecov Documentation

Alpha — scafctl is under active development. APIs and CLI commands may change between releases. Breaking changes are documented in release notes. Questions? Open an issue or start a Discussion.

Define, discover, and deliver configuration as code using CEL-powered solutions.

scafctl is a CLI tool that lets you declaratively gather data from any source (APIs, files, environment, Git, and more), transform it with CEL expressions, and execute side-effect workflows — all defined in a single Solution file.

Core Concepts
  • Solution — A YAML file that declares what data to gather and what work to do. Solutions are versionable, composable, and shareable via OCI registries.
  • Resolver — A named unit that gathers or computes a value using one or more providers. Resolvers can depend on each other and execute in parallel when possible.
  • Action — A side-effect operation (run a command, call an API, write a file) organized into a dependency graph with support for parallelism, retries, conditions, and forEach loops.
  • Provider — A pluggable backend that does the actual work (e.g. http, exec, file, cel). scafctl ships with 16 built-in providers and supports external plugins.

Installation

Homebrew (macOS / Linux)
brew install oakwood-commons/tap/scafctl
From Release Binaries

Download the latest binary for your platform from the GitHub Releases page.

macOS / Linux
# Download (replace VERSION and OS/ARCH as needed)
curl -LO https://github.com/oakwood-commons/scafctl/releases/latest/download/scafctl_VERSION_OS_ARCH.tar.gz
tar xzf scafctl_*.tar.gz
sudo mv scafctl /usr/local/bin/

macOS note: You may need to remove the quarantine attribute before running:

xattr -dr 'com.apple.quarantine' /usr/local/bin/scafctl
Windows

Download the .zip archive for your architecture from GitHub Releases, extract it, and add the directory to your PATH.

From Source
go install github.com/oakwood-commons/scafctl/cmd/scafctl@latest
Shell Completion

Generate completions for your shell and add them to your profile:

# Bash
scafctl completion bash > /usr/local/etc/bash_completion.d/scafctl

# Zsh
scafctl completion zsh > "${fpath[1]}/_scafctl"

# Fish
scafctl completion fish > ~/.config/fish/completions/scafctl.fish

# PowerShell
scafctl completion powershell | Out-String | Invoke-Expression

Restart your shell (or source the file) for completions to take effect. Zsh users must have compinit loaded before the completion file is sourced.

Features

  • Resolvers: Gather and transform configuration data from multiple sources
  • Actions: Execute side-effect operations as a declarative action graph
  • CEL Integration: Use Common Expression Language for dynamic evaluation
  • Providers: 16 built-in providers (HTTP, exec, file, directory, git, CEL, and more)
  • Catalog: Publish, version, and share reusable solutions via OCI registries
  • Secrets: Encrypted secrets management with OS keyring integration
  • Plugins: Extend scafctl with custom providers via a plugin system
  • Snapshots: Capture and diff resolver output over time
  • Linting: Validate solution files for correctness before execution
  • Logging: Quiet by default with user-controlled verbosity, format, and file output

Quick Start

Resolvers: Compute Data

Resolvers gather and transform configuration data:

apiVersion: scafctl.io/v1
kind: Solution
metadata:
  name: my-config
  version: 1.0.0

spec:
  resolvers:
    environment:
      type: string
      resolve:
        with:
          - provider: env
            inputs:
              name: ENVIRONMENT
              default: development

Run: scafctl run solution -f config.yaml

Actions: Execute Work

Actions perform side-effect operations based on resolver data:

apiVersion: scafctl.io/v1
kind: Solution
metadata:
  name: deploy-workflow
  version: 1.0.0

spec:
  resolvers:
    targets:
      type: array
      resolve:
        with:
          - provider: static
            inputs:
              value: ["server1", "server2"]

  workflow:
    actions:
      deploy:
        provider: exec
        forEach:
          in:
            expr: "_.targets"
        inputs:
          command:
            expr: "'deploy.sh ' + __item"

Run: scafctl run solution -f deploy.yaml

Built-in Providers

scafctl ships with 16 providers. Use scafctl explain provider <name> to see full schema and examples.

Provider Description
cel Evaluate CEL expressions
debug Log debug information during execution
directory List, create, remove, and copy directories
env Read environment variables
exec Execute shell commands
file Read and write files
git Query Git repository metadata
go-template Render Go templates
http Make HTTP requests
identity Pass input through unchanged
parameter Access CLI-provided parameters
secret Read encrypted secrets
sleep Pause execution for a duration
solution Compose sub-solutions recursively
static Return static values
validation Validate values against rules

See the Provider Reference and Provider Development tutorials.

Documentation

Tutorials
Design Documents

Architecture and design decisions are documented in docs/design/.

Examples

Authentication

scafctl supports secure authentication for accessing protected APIs. Currently supported:

  • Microsoft Entra ID (Azure AD) - Device code flow and Service Principal
Quick Auth Setup
# Interactive: Authenticate with Entra ID (device code)
scafctl auth login entra

# CI/CD: Authenticate with service principal
export AZURE_CLIENT_ID="..."
export AZURE_TENANT_ID="..."
export AZURE_CLIENT_SECRET="..."
scafctl auth login entra --flow service-principal

# Check authentication status
scafctl auth status

# Use authenticated HTTP requests
scafctl run solution -f my-solution.yaml
Authenticated HTTP Requests

Use the authProvider and scope properties in HTTP providers:

spec:
  resolvers:
    me:
      type: object
      resolve:
        with:
          - provider: http
            inputs:
              url: "https://graph.microsoft.com/v1.0/me"
              method: GET
              authProvider: entra
              scope: "https://graph.microsoft.com/.default"

See the Authentication Tutorial for more details.

Catalog

The catalog system lets you publish, version, and share solutions using OCI-compatible registries:

# Build a solution into an OCI artifact
scafctl build solution -f solution.yaml

# Push to a registry
scafctl catalog push my-solution@1.0.0 --catalog ghcr.io/myorg

# Pull from a configured catalog
scafctl catalog pull my-solution@1.0.0 --catalog my-registry
scafctl catalog inspect my-solution@1.0.0

# List local catalog entries
scafctl catalog list

See the Catalog Tutorial and Catalog Design.

Configuration

scafctl stores its configuration in XDG-compliant paths. Use the config command to manage settings:

# Initialize default config
scafctl config init

# View current config
scafctl config show

# Set / get / unset values
scafctl config set defaultOutput json
scafctl config get defaultOutput
scafctl config unset defaultOutput

# Manage catalog registries
scafctl catalog remote add my-registry --type oci --url oci://ghcr.io/myorg
scafctl catalog remote remove my-registry

See the Configuration Tutorial.

Logging

By default, scafctl produces no structured log output — only styled user messages (errors, warnings, success). This keeps the CLI clean for human users and pipe-friendly for scripts.

Quick Reference
# Default: no logs, just styled errors/warnings
scafctl run solution -f solution.yaml

# Enable debug logging (human-readable console format)
scafctl run solution -f solution.yaml --debug
scafctl run solution -f solution.yaml --log-level debug

# JSON structured logs (for log aggregation / piping)
scafctl run solution -f solution.yaml --log-level info --log-format json

# Write logs to a file instead of stderr
scafctl run solution -f solution.yaml --debug --log-file /tmp/scafctl.log

# Environment variables (useful for CI/CD)
export SCAFCTL_DEBUG=1             # Enable debug logging
export SCAFCTL_LOG_LEVEL=info      # Set specific level
export SCAFCTL_LOG_FORMAT=json     # Set format
export SCAFCTL_LOG_PATH=/tmp/scafctl.log  # Log to file
Log Levels
Level Description
none No log output (default)
error Errors only
warn Warnings and errors
info Informational messages
debug Verbose debugging (V-level 1)
trace Very verbose (V-level 2)
1-3 Numeric V-levels for fine-grained control
Precedence

Flag (--log-level) > --debug > environment variable > config file > default (none)

See the Logging Tutorial for detailed examples.

Secrets

scafctl provides encrypted secrets management backed by the OS keyring or the SCAFCTL_SECRET_KEY environment variable:

# Store a secret
scafctl secrets set my-api-key

# Retrieve / check / list
scafctl secrets get my-api-key
scafctl secrets exists my-api-key
scafctl secrets list

# Include internal secrets (e.g. auth tokens)
scafctl secrets list --all
scafctl secrets get scafctl.auth.entra.metadata --all

# Rotate encryption key
scafctl secrets rotate

# Import / export for migration
scafctl secrets export --file secrets.enc
scafctl secrets import --file secrets.enc

Use the secret provider to access secrets in solutions:

spec:
  resolvers:
    api_key:
      type: string
      resolve:
        with:
          - provider: secret
            inputs:
              name: my-api-key

Plugins

scafctl supports external plugins that extend the provider and auth handler systems. Plugins are standalone executables that communicate via gRPC.

See the Plugin Design, Provider Development Guide, and Auth Handler Development Guide.

Actions Overview

The Actions system enables executing operations as a declarative dependency graph:

Key Features
  • Dependencies: Actions can depend on other actions
  • Parallel Execution: Independent actions run in parallel
  • ForEach: Iterate over arrays with concurrency control
  • Conditions: Skip actions based on conditions
  • Error Handling: Continue or fail on errors
  • Retry: Automatic retry with backoff strategies
  • Timeouts: Per-action timeout limits
  • Finally: Cleanup actions that always run
Example: CI/CD Pipeline
workflow:
  actions:
    build:
      provider: exec
      inputs:
        command: "go build ./..."

    test:
      provider: exec
      dependsOn: [build]
      inputs:
        command: "go test ./..."

    deploy:
      provider: exec
      dependsOn: [test]
      forEach:
        in:
          expr: "_.servers"
        concurrency: 2
      inputs:
        command:
          expr: "'deploy.sh ' + __item"

  finally:
    notify:
      provider: http
      inputs:
        url: "https://slack.webhook/..."

CLI Commands

scafctl is organized into command groups. Run scafctl <command> --help for details on any command.

# Run a solution (resolvers + actions)
scafctl run solution -f config.yaml
scafctl run solution -f config.yaml -o json      # JSON output
scafctl run solution -f config.yaml --dry-run     # Dry run
scafctl run solution -f config.yaml --progress    # Progress output

# Run resolvers only (debugging and inspection)
scafctl run resolver -f config.yaml
scafctl run resolver db config -f config.yaml     # Specific resolvers
scafctl run resolver --verbose -f config.yaml     # Verbose mode

# Render solution to structured output
scafctl render solution -f config.yaml -o json
scafctl render solution -f config.yaml -o yaml

# Build and bundle solutions
scafctl build solution -f solution.yaml

# Catalog operations
scafctl catalog list
scafctl catalog push my-solution@1.0.0
scafctl catalog pull my-solution@1.0.0
scafctl catalog inspect my-solution@1.0.0

# Bundle verification and diffing
scafctl bundle verify my-solution@1.0.0
scafctl bundle diff my-solution@1.0.0 my-solution@2.0.0
scafctl bundle extract my-solution@1.0.0

# Inspect providers and solutions
scafctl explain provider http
scafctl explain solution -f solution.yaml
scafctl get provider
scafctl get resolver -f solution.yaml

# Lint and validate
scafctl lint -f solution.yaml

# Snapshots
scafctl snapshot save -f solution.yaml --name baseline
scafctl snapshot show --name baseline
scafctl snapshot diff --from baseline --to current

# Resolver dependency graph
scafctl run resolver -f solution.yaml --graph

# Configuration and secrets
scafctl config show
scafctl secrets list
scafctl secrets list --all  # include auth tokens

# Authentication
scafctl auth login entra
scafctl auth status

# Dependency vendoring
scafctl vendor update -f solution.yaml

# Cache management
scafctl cache info
scafctl cache clear

# Version
scafctl version

Contributing

Contributions are welcome! Please see:

Have a question? Start a GitHub Discussion.

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

Directories

Path Synopsis
cmd
scafctl command
examples
plugins/echo command
pkg
action
Package action provides types and execution logic for the Actions system.
Package action provides types and execution logic for the Actions system.
api
Package api provides a chi+Huma REST API server for scafctl.
Package api provides a chi+Huma REST API server for scafctl.
auth
Package auth provides authentication handler interfaces and utilities for scafctl.
Package auth provides authentication handler interfaces and utilities for scafctl.
auth/diagnose
Package diagnose provides reusable auth diagnostic checks.
Package diagnose provides reusable auth diagnostic checks.
auth/entra
Package entra provides Microsoft Entra ID (formerly Azure AD) authentication for scafctl using the OAuth 2.0 device authorization flow.
Package entra provides Microsoft Entra ID (formerly Azure AD) authentication for scafctl using the OAuth 2.0 device authorization flow.
auth/gcp
Package gcp provides Google Cloud Platform authentication for scafctl.
Package gcp provides Google Cloud Platform authentication for scafctl.
auth/github
Package github provides GitHub authentication for scafctl.
Package github provides GitHub authentication for scafctl.
auth/oauth
Package oauth provides shared OAuth 2.0 utilities used by multiple auth handlers, including PKCE code generation, browser launching, and local callback servers.
Package oauth provides shared OAuth 2.0 utilities used by multiple auth handlers, including PKCE code generation, browser launching, and local callback servers.
auth/oauth2
Package oauth2 implements a generic configurable OAuth2 auth handler.
Package oauth2 implements a generic configurable OAuth2 auth handler.
cache
Package cache provides domain logic for cache management operations including clearing directories, gathering cache information, and formatting byte sizes.
Package cache provides domain logic for cache management operations including clearing directories, gathering cache information, and formatting byte sizes.
catalog
Package catalog provides artifact storage and retrieval for scafctl.
Package catalog provides artifact storage and retrieval for scafctl.
catalog/search
Package search provides catalog search and discovery functionality.
Package search provides catalog search and discovery functionality.
celexp/detail
Package detail provides functions for building structured output representations of CEL extension functions.
Package detail provides functions for building structured output representations of CEL extension functions.
cmd/flags
Package flags provides shared flag helpers for scafctl commands.
Package flags provides shared flag helpers for scafctl commands.
cmd/scafctl/auth
Package auth provides CLI commands for authentication management.
Package auth provides CLI commands for authentication management.
cmd/scafctl/build
Package build provides the build command for packaging artifacts into the local catalog.
Package build provides the build command for packaging artifacts into the local catalog.
cmd/scafctl/bundle
Package bundle provides CLI commands for inspecting, verifying, and extracting solution bundles built by 'scafctl build solution'.
Package bundle provides CLI commands for inspecting, verifying, and extracting solution bundles built by 'scafctl build solution'.
cmd/scafctl/cache
Package cache provides commands for managing the scafctl cache.
Package cache provides commands for managing the scafctl cache.
cmd/scafctl/catalog
Package catalog provides commands for inspecting and managing the local catalog.
Package catalog provides commands for inspecting and managing the local catalog.
cmd/scafctl/config
Package config provides commands for managing scafctl configuration.
Package config provides commands for managing scafctl configuration.
cmd/scafctl/credentialhelper
Package credentialhelper implements the scafctl credential-helper CLI commands, exposing scafctl's encrypted credential store via the Docker credential helper protocol.
Package credentialhelper implements the scafctl credential-helper CLI commands, exposing scafctl's encrypted credential store via the Docker credential helper protocol.
cmd/scafctl/eval
Package eval provides commands for evaluating and validating CEL expressions and Go templates.
Package eval provides commands for evaluating and validating CEL expressions and Go templates.
cmd/scafctl/examples
Package examples provides commands for browsing and retrieving embedded scafctl examples.
Package examples provides commands for browsing and retrieving embedded scafctl examples.
cmd/scafctl/explain
Package explain provides the CLI explain commands.
Package explain provides the CLI explain commands.
cmd/scafctl/lint
Package lint provides the lint command for validating solutions.
Package lint provides the lint command for validating solutions.
cmd/scafctl/new
Package newcmd provides commands for creating new scafctl resources.
Package newcmd provides commands for creating new scafctl resources.
cmd/scafctl/plugins
Package plugins provides commands for managing scafctl plugins.
Package plugins provides commands for managing scafctl plugins.
cmd/scafctl/run
Package run provides the CLI run commands.
Package run provides the CLI run commands.
cmd/scafctl/secrets
Package secrets provides commands for managing scafctl secrets.
Package secrets provides commands for managing scafctl secrets.
cmd/scafctl/vendor
Package vendor provides CLI commands for managing vendored solution dependencies.
Package vendor provides CLI commands for managing vendored solution dependencies.
cmdinfo
Package cmdinfo collects structured information about CLI commands for kvx-powered discovery and exploration.
Package cmdinfo collects structured information about CLI commands for kvx-powered discovery and exploration.
concepts
Package concepts provides a registry of scafctl domain concepts with concise explanations, examples, and cross-references.
Package concepts provides a registry of scafctl domain concepts with concise explanations, examples, and cross-references.
config
Package config provides application configuration management using Viper.
Package config provides application configuration management using Viper.
credentialhelper
Package credentialhelper implements the Docker credential helper protocol, exposing scafctl's encrypted credential store to Docker, Podman, Buildah, and any OCI client.
Package credentialhelper implements the Docker credential helper protocol, exposing scafctl's encrypted credential store to Docker, Podman, Buildah, and any OCI client.
dag
dryrun
Package dryrun provides structured WhatIf report generation for scafctl solutions.
Package dryrun provides structured WhatIf report generation for scafctl solutions.
duration
Package duration provides a Duration type that supports string-based and numeric YAML/JSON marshalling.
Package duration provides a Duration type that supports string-based and numeric YAML/JSON marshalling.
errexplain
Package errexplain provides structured error explanation and pattern matching for scafctl errors.
Package errexplain provides structured error explanation and pattern matching for scafctl errors.
examples
Package examples provides access to embedded scafctl example files.
Package examples provides access to embedded scafctl example files.
exitcode
Package exitcode provides centralized exit codes for CLI commands.
Package exitcode provides centralized exit codes for CLI commands.
flags/example command
Package main provides an example of using pkg/flags for key-value parsing with validation.
Package main provides an example of using pkg/flags for key-value parsing with validation.
flags/resolve
Package resolve provides resolution and fetching of key-value flag values based on URI scheme prefixes.
Package resolve provides resolution and fetching of key-value flag values based on URI scheme prefixes.
flags/validate
Package validate provides validation for key-value flag values based on URI scheme prefixes.
Package validate provides validation for key-value flag values based on URI scheme prefixes.
fs
gotmpl/detail
Package detail provides functions for building structured output representations of Go template extension functions.
Package detail provides functions for building structured output representations of Go template extension functions.
gotmpl/ext
Package ext provides the Go template extension function registry.
Package ext provides the Go template extension function registry.
gotmpl/ext/celeval
Package celeval provides a Go template extension function for evaluating CEL (Common Expression Language) expressions inline within Go templates.
Package celeval provides a Go template extension function for evaluating CEL (Common Expression Language) expressions inline within Go templates.
gotmpl/ext/collections
Package collections provides Go template extension functions for filtering and projecting lists of maps, enabling common data transformation patterns directly within Go templates.
Package collections provides Go template extension functions for filtering and projecting lists of maps, enabling common data transformation patterns directly within Go templates.
gotmpl/ext/dns
Package dns provides Go template extension functions for converting arbitrary strings into DNS-safe label format (RFC 1123).
Package dns provides Go template extension functions for converting arbitrary strings into DNS-safe label format (RFC 1123).
gotmpl/ext/hcl
Package hcl provides a Go template extension function for converting Go objects into HCL (HashiCorp Configuration Language) format.
Package hcl provides a Go template extension function for converting Go objects into HCL (HashiCorp Configuration Language) format.
gotmpl/ext/yaml
Package yaml provides Go template extension functions for YAML serialization and deserialization.
Package yaml provides Go template extension functions for YAML serialization and deserialization.
httpc
Package httpc is a thin adapter over the standalone github.com/oakwood-commons/httpc library, adding scafctl-specific defaults (XDG cache paths, app-name-based cache key prefix) and bridging application-level concerns (OTel metrics, config.FromContext, etc.).
Package httpc is a thin adapter over the standalone github.com/oakwood-commons/httpc library, adding scafctl-specific defaults (XDG cache paths, app-name-based cache key prefix) and bridging application-level concerns (OTel metrics, config.FromContext, etc.).
lint
Package lint provides business logic for validating solution files.
Package lint provides business logic for validating solution files.
mcp
metrics
Package metrics provides OpenTelemetry metric instruments for the scafctl application.
Package metrics provides OpenTelemetry metric instruments for the scafctl application.
paths
Package paths provides centralized path resolution for scafctl using the XDG Base Directory Specification (https://specifications.freedesktop.org/basedir/latest/).
Package paths provides centralized path resolution for scafctl using the XDG Base Directory Specification (https://specifications.freedesktop.org/basedir/latest/).
provider/builtin/githubprovider
Package githubprovider implements a provider for GitHub API operations.
Package githubprovider implements a provider for GitHub API operations.
provider/builtin/identityprovider
Package identityprovider provides authentication identity information from auth handlers.
Package identityprovider provides authentication identity information from auth handlers.
provider/builtin/secretprovider
Package secretprovider implements a resolver provider for accessing encrypted secrets.
Package secretprovider implements a resolver provider for accessing encrypted secrets.
provider/detail
Package detail provides shared business logic for building structured provider information.
Package detail provides shared business logic for building structured provider information.
provider/schemahelper
Package schemahelper provides ergonomic builder functions for constructing jsonschema.Schema objects used in provider descriptors.
Package schemahelper provides ergonomic builder functions for constructing jsonschema.Schema objects used in provider descriptors.
resolver
Package resolver provides type coercion utilities.
Package resolver provides type coercion utilities.
resolver/refs
Package refs provides functions for extracting resolver references from Go templates and CEL expressions.
Package refs provides functions for extracting resolver references from Go templates and CEL expressions.
sbom
Package sbom generates SPDX SBOM documents for scafctl catalog artifacts.
Package sbom generates SPDX SBOM documents for scafctl catalog artifacts.
scaffold
Package scaffold provides solution scaffolding logic for generating skeleton solution YAML files from parameters.
Package scaffold provides solution scaffolding logic for generating skeleton solution YAML files from parameters.
schema
Package schema provides reflection-based struct introspection for generating kubectl explain-style documentation from Go struct tags.
Package schema provides reflection-based struct introspection for generating kubectl explain-style documentation from Go struct tags.
secrets
Package secrets provides secure secret storage operations using AES-256-GCM encryption with OS keychain integration for master key management.
Package secrets provides secure secret storage operations using AES-256-GCM encryption with OS keychain integration for master key management.
secrets/secretcrypto
Package secretcrypto provides password-based encryption and decryption for secret export/import operations using PBKDF2 key derivation and AES-256-GCM.
Package secretcrypto provides password-based encryption and decryption for secret export/import operations using PBKDF2 key derivation and AES-256-GCM.
shellexec
Package shellexec provides cross-platform shell command execution.
Package shellexec provides cross-platform shell command execution.
soldiff
Package soldiff provides structural comparison of two solutions.
Package soldiff provides structural comparison of two solutions.
solution/builder
Package builder provides the build pipeline for composing, discovering, vendoring, and bundling solution artifacts.
Package builder provides the build pipeline for composing, discovering, vendoring, and bundling solution artifacts.
solution/execute
Package execute provides business logic for validating and executing solutions.
Package execute provides business logic for validating and executing solutions.
solution/inspect
Package inspect provides business logic for inspecting and explaining solutions.
Package inspect provides business logic for inspecting and explaining solutions.
solution/prepare
Package prepare provides a standalone function for loading and preparing a solution for execution.
Package prepare provides a standalone function for loading and preparing a solution for execution.
solution/render
Package render provides domain logic for rendering solutions, including resolver execution, registry adapters, and configuration merging.
Package render provides domain logic for rendering solutions, including resolver execution, registry adapters, and configuration merging.
solution/soltesting
Package soltesting provides types and utilities for functional testing of solutions.
Package soltesting provides types and utilities for functional testing of solutions.
solution/soltesting/mockexec
Package mockexec provides a configurable mock for shell command execution in functional tests.
Package mockexec provides a configurable mock for shell command execution in functional tests.
solution/soltesting/mockserver
Package mockserver provides a configurable HTTP mock server for functional testing.
Package mockserver provides a configurable HTTP mock server for functional testing.
solution/walk
Package walk provides a visitor/walker pattern for traversing solution structures.
Package walk provides a visitor/walker pattern for traversing solution structures.
sourcepos
Package sourcepos provides source-location-aware parsing for YAML files.
Package sourcepos provides source-location-aware parsing for YAML files.
telemetry
Package telemetry owns all OpenTelemetry provider construction and is the single place in the binary that imports otel/sdk/* packages.
Package telemetry owns all OpenTelemetry provider construction and is the single place in the binary that imports otel/sdk/* packages.
terminal/format
Package format provides human-readable formatting utilities for bytes and durations.
Package format provides human-readable formatting utilities for bytes and durations.
terminal/input
Package input provides interactive user input functionality for the terminal.
Package input provides interactive user input functionality for the terminal.
terminal/kvx
Package kvx provides integration with the kvx data viewer library for scafctl.
Package kvx provides integration with the kvx data viewer library for scafctl.
terminal/output
Package output provides output formatting utilities for scafctl commands.
Package output provides output formatting utilities for scafctl commands.
terminal/writer
Package writer provides a centralized CLI output writer for scafctl.
Package writer provides a centralized CLI output writer for scafctl.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL