Documentation
¶
Index ¶
- Variables
- func Load(ctx context.Context, nameOrPath string, opts ...LoadOption) (*core.DAG, error)
- func LoadBaseConfig(ctx BuildContext, file string) (*core.DAG, error)
- func LoadYAML(ctx context.Context, data []byte, opts ...LoadOption) (*core.DAG, error)
- func LoadYAMLWithOpts(ctx context.Context, data []byte, opts BuildOpts) (*core.DAG, error)
- func TypedUnionDecodeHook() mapstructure.DecodeHookFunc
- type BuildContext
- type BuildFlag
- type BuildOpts
- type LoadOption
- func OnlyMetadata() LoadOption
- func SkipSchemaValidation() LoadOption
- func WithAllowBuildErrors() LoadOption
- func WithBaseConfig(baseDAG string) LoadOption
- func WithDAGsDir(dagsDir string) LoadOption
- func WithDefaultWorkingDir(defaultWorkingDir string) LoadOption
- func WithName(name string) LoadOption
- func WithParams(params any) LoadOption
- func WithSkipBaseHandlers() LoadOption
- func WithoutEval() LoadOption
- type LoadOptions
- type StepBuildContext
- type Transformer
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidSchedule = errors.New("invalid schedule") ErrScheduleMustBeStringOrArray = errors.New("schedule must be a string or an array of strings") ErrInvalidScheduleType = errors.New("invalid schedule type") ErrDotEnvMustBeStringOrArray = errors.New("dotenv must be a string or an array of strings") ErrPreconditionValueMustBeString = errors.New("precondition value must be a string") ErrPreconditionNegateMustBeBool = errors.New("precondition negate must be a boolean") ErrPreconditionHasInvalidKey = errors.New("precondition has invalid key") ErrPreconditionMustBeArrayOrString = errors.New("precondition must be a string or an array of strings") ErrInvalidStepData = errors.New("invalid step data") ErrStepsMustBeArrayOrMap = errors.New("steps must be an array or a map") ErrContinueOnExitCodeMustBeIntOrArray = errors.New("continueOn.exitCode must be an int or an array of ints") ErrContinueOnOutputMustBeStringOrArray = errors.New("continueOn.output must be a string or an array of strings") ErrContinueOnMustBeStringOrMap = errors.New("continueOn must be a string ('skipped' or 'failed') or an object") ErrContinueOnInvalidStringValue = errors.New("continueOn string value must be 'skipped' or 'failed'") ErrContinueOnFieldMustBeBool = errors.New("value must be a boolean") ErrInvalidSignal = errors.New("invalid signal") ErrDependsMustBeStringOrArray = errors.New("depends must be a string or an array of strings") ErrExecutorTypeMustBeString = errors.New("executor.type value must be string") ErrExecutorConfigValueMustBeMap = errors.New("executor.config value must be a map") ErrExecutorHasInvalidKey = errors.New("executor has invalid key") ErrExecutorConfigMustBeStringOrMap = errors.New("executor config must be string or map") ErrInvalidEnvValue = errors.New("env config should be map of strings or array of key=value formatted string") ErrInvalidParamValue = errors.New("invalid parameter value") ErrStepCommandIsEmpty = errors.New("step command is empty") ErrStepCommandMustBeArrayOrString = errors.New("step command must be an array of strings or a string") ErrTimeoutSecMustBeNonNegative = errors.New("timeoutSec must be >= 0") ErrExecutorDoesNotSupportMultipleCmd = errors.New("executor does not support multiple commands") )
var ( ErrNameOrPathRequired = errors.New("name or path is required") ErrInvalidJSONFile = errors.New("invalid JSON file") )
Errors for loading DAGs
Functions ¶
func Load ¶
Load loads a Directed Acyclic Graph (core.DAG) from a file path or name with the given options.
The function handles different input formats:
1. Absolute paths:
- YAML files (.yaml/.yml): Processed with dynamic evaluation, including base configs, parameters, and environment variables
2. Relative paths or filenames:
- Resolved against the DAGsDir specified in options
- If DAGsDir is not provided, the current working directory is used
- For YAML files, the extension is optional
This approach provides a flexible way to load core.DAG definitions from multiple sources while supporting customization through the LoadOptions.
func LoadBaseConfig ¶
func LoadBaseConfig(ctx BuildContext, file string) (*core.DAG, error)
LoadBaseConfig loads the global configuration from the given file. The global configuration can be overridden by the core.DAG configuration.
func LoadYAMLWithOpts ¶
LoadYAMLWithOpts loads the core.DAG configuration from YAML data.
func TypedUnionDecodeHook ¶ added in v1.28.0
func TypedUnionDecodeHook() mapstructure.DecodeHookFunc
TypedUnionDecodeHook returns a decode hook that handles our typed union types. It converts raw map[string]any values to the appropriate typed values.
Types ¶
type BuildContext ¶
type BuildContext struct {
// contains filtered or unexported fields
}
BuildContext is the context for building a DAG.
func (BuildContext) WithFile ¶
func (c BuildContext) WithFile(file string) BuildContext
func (BuildContext) WithOpts ¶
func (c BuildContext) WithOpts(opts BuildOpts) BuildContext
type BuildFlag ¶ added in v1.24.1
type BuildFlag uint32
BuildFlag represents a bitmask option that influences DAG building behaviour.
type BuildOpts ¶
type BuildOpts struct {
// Base specifies the Base configuration file for the DAG.
Base string
// Parameters specifies the Parameters to the DAG.
// Parameters are used to override the default Parameters in the DAG.
Parameters string
// ParametersList specifies the parameters to the DAG.
ParametersList []string
// Name of the core.DAG if it's not defined in the spec
Name string
// DAGsDir is the directory containing the core.DAG files.
DAGsDir string
// DefaultWorkingDir is the default working directory for DAGs without explicit workingDir.
// This is used for sub-DAG execution to inherit the parent's working directory.
DefaultWorkingDir string
// Flags stores all boolean options controlling build behaviour.
Flags BuildFlag
}
BuildOpts is used to control the behavior of the builder.
type LoadOption ¶
type LoadOption func(*LoadOptions)
LoadOption is a function type for setting LoadOptions.
func OnlyMetadata ¶
func OnlyMetadata() LoadOption
OnlyMetadata sets the flag to load only metadata.
func SkipSchemaValidation ¶ added in v1.24.1
func SkipSchemaValidation() LoadOption
SkipSchemaValidation disables schema resolution/validation during build.
func WithAllowBuildErrors ¶
func WithAllowBuildErrors() LoadOption
WithAllowBuildErrors allows build errors to be ignored during core.DAG loading. This is required for loading DAGs that may have errors in their definitions, such as missing steps or invalid configurations. When this option is set, the loader will return a core.DAG with the errors included in the DAG's `BuildErrors` field, and will not fail the loading process.
func WithBaseConfig ¶
func WithBaseConfig(baseDAG string) LoadOption
WithBaseConfig sets the base core.DAG configuration file.
func WithDAGsDir ¶
func WithDAGsDir(dagsDir string) LoadOption
WithDAGsDir sets the directory containing the core.DAG files. This directory is used as the base path for resolving relative core.DAG file paths. When a core.DAG is loaded by name rather than absolute path, the system will look for the core.DAG file in this directory. If not specified, the current working directory is used as the default.
func WithDefaultWorkingDir ¶ added in v1.26.0
func WithDefaultWorkingDir(defaultWorkingDir string) LoadOption
WithDefaultWorkingDir sets the default working directory for DAGs without explicit workingDir. This is used for sub-DAG execution to inherit the parent's working directory.
func WithParams ¶
func WithParams(params any) LoadOption
WithParams sets the parameters for the DAG.
func WithSkipBaseHandlers ¶ added in v1.26.0
func WithSkipBaseHandlers() LoadOption
WithSkipBaseHandlers skips merging handlerOn from base config. This is used for sub-DAG runs to prevent handler inheritance from base config. Sub-DAGs should have their own handlers defined explicitly if needed.
func WithoutEval ¶
func WithoutEval() LoadOption
WithoutEval disables the evaluation of dynamic fields.
type LoadOptions ¶
type LoadOptions struct {
// contains filtered or unexported fields
}
LoadOptions contains options for loading a DAG.
type StepBuildContext ¶
type StepBuildContext struct {
BuildContext
// contains filtered or unexported fields
}
StepBuildContext is the context for building a step.