Skip to main content
Osmedeus can be used as a Go library to embed workflow execution capabilities in your own applications.

Installation

Quick Start

Core Components

Configuration

Load Osmedeus configuration from the default location (~/osmedeus-base/osm-settings.yaml):

Workflow Parser

Parse and validate workflow YAML files:

Workflow Loader

Load workflows by name with caching:

Executor

Execute workflows programmatically:

Execution Parameters

Handling Results

Template Engine

Render template strings with variable interpolation:

Secondary Variables (for loops)

Use [[variable]] syntax for loop variables to avoid conflicts:

Generator Functions

Execute generator functions in templates:

Function Registry

Execute utility functions programmatically:

Available Functions

Execution Context

Manage workflow execution state:

Database Access

Connect to the Osmedeus database:

Database Models

Core Types

Workflow Types

Step Result

Workflow Result

Creating Custom Workflows

Build workflows programmatically:

Workflow Linting

Validate workflows with the linter:

Best Practices

  1. Always validate workflows before execution
  2. Use context cancellation for long-running workflows
  3. Handle errors from each step appropriately
  4. Use the loader for flow execution (required for module resolution)
  5. Set appropriate timeouts for network operations
  6. Use dry-run mode for testing workflow logic

Complete Example

Next Steps