Documentation ¶
Index ¶
- func EnsureNoNestedPipelines(pipelinePaths []string) error
- type AssetValidator
- type Issue
- func EnsureDependencyExists(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureDependencyExistsForASingleAsset(ctx context.Context, p *pipeline.Pipeline, task *pipeline.Asset) ([]*Issue, error)
- func EnsureMaterializationValuesAreValid(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureMaterializationValuesAreValidForSingleAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- func EnsureOnlyAcceptedTaskTypesAreThere(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineHasNoCycles(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineNameIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineScheduleIsValidCron(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureSlackFieldInPipelineIsValid(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureSnowflakeSensorHasQueryParameter(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureSnowflakeSensorHasQueryParameterForASingleAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- func EnsureTaskNameIsUnique(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureTaskNameIsUniqueForASingleAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- func EnsureTaskNameIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- func EnsureTaskNameIsValidForASingleAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- func EnsureTypeIsCorrectForASingleAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- type Level
- type Linter
- func (l *Linter) Lint(rootPath, pipelineDefinitionFileName string) (*PipelineAnalysisResult, error)
- func (l *Linter) LintAsset(rootPath, pipelineDefinitionFileName, assetNameOrPath string) (*PipelineAnalysisResult, error)
- func (l *Linter) LintPipeline(p *pipeline.Pipeline) (*PipelineIssues, error)
- func (l *Linter) LintPipelines(pipelines []*pipeline.Pipeline) (*PipelineAnalysisResult, error)
- type PipelineAnalysisResult
- type PipelineIssues
- type PipelineValidator
- type Printer
- type QueryValidatorRule
- func (q *QueryValidatorRule) GetApplicableLevels() []Level
- func (q *QueryValidatorRule) Name() string
- func (q *QueryValidatorRule) Validate(p *pipeline.Pipeline) ([]*Issue, error)
- func (q *QueryValidatorRule) ValidateAsset(ctx context.Context, p *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
- type Rule
- type SimpleRule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureNoNestedPipelines ¶ added in v0.4.1
Types ¶
type AssetValidator ¶ added in v0.5.6
type AssetValidator func(ctx context.Context, pipeline *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error)
func EnsureExecutableFileIsValidForASingleAsset ¶ added in v0.5.6
func EnsureExecutableFileIsValidForASingleAsset(fs afero.Fs) AssetValidator
type Issue ¶
func EnsureDependencyExistsForASingleAsset ¶ added in v0.5.6
func EnsureMaterializationValuesAreValid ¶ added in v0.4.1
func EnsureMaterializationValuesAreValidForSingleAsset ¶ added in v0.5.6
func EnsurePipelineHasNoCycles ¶
EnsurePipelineHasNoCycles ensures that the pipeline is a DAG, and contains no cycles. Since the pipelines are directed graphs, strongly connected components mean cycles, therefore they would be considered invalid for our pipelines. Strong connectivity wouldn't work for tasks that depend on themselves, therefore there's a specific check for that.
func EnsureSnowflakeSensorHasQueryParameter ¶ added in v0.4.7
func EnsureSnowflakeSensorHasQueryParameterForASingleAsset ¶ added in v0.5.6
func EnsureTaskNameIsUniqueForASingleAsset ¶ added in v0.5.6
func EnsureTaskNameIsValid ¶
func EnsureTaskNameIsValidForASingleAsset ¶ added in v0.5.6
type Linter ¶
type Linter struct {
// contains filtered or unexported fields
}
func NewLinter ¶
func NewLinter(findPipelines pipelineFinder, builder pipelineBuilder, rules []Rule, logger *zap.SugaredLogger) *Linter
func (*Linter) Lint ¶
func (l *Linter) Lint(rootPath, pipelineDefinitionFileName string) (*PipelineAnalysisResult, error)
func (*Linter) LintAsset ¶ added in v0.5.6
func (l *Linter) LintAsset(rootPath, pipelineDefinitionFileName, assetNameOrPath string) (*PipelineAnalysisResult, error)
func (*Linter) LintPipeline ¶ added in v0.4.1
func (l *Linter) LintPipeline(p *pipeline.Pipeline) (*PipelineIssues, error)
func (*Linter) LintPipelines ¶
func (l *Linter) LintPipelines(pipelines []*pipeline.Pipeline) (*PipelineAnalysisResult, error)
type PipelineAnalysisResult ¶
type PipelineAnalysisResult struct {
Pipelines []*PipelineIssues
}
func (*PipelineAnalysisResult) ErrorCount ¶
func (p *PipelineAnalysisResult) ErrorCount() int
ErrorCount returns the number of errors found in an analysis result.
type PipelineIssues ¶
func RunLintRulesOnPipeline ¶ added in v0.4.1
func RunLintRulesOnPipeline(p *pipeline.Pipeline, rules []Rule) (*PipelineIssues, error)
type PipelineValidator ¶
func EnsureExecutableFileIsValid ¶
func EnsureExecutableFileIsValid(fs afero.Fs) PipelineValidator
type Printer ¶
type Printer struct {
RootCheckPath string
}
func (*Printer) PrintIssues ¶
func (l *Printer) PrintIssues(analysis *PipelineAnalysisResult)
type QueryValidatorRule ¶
type QueryValidatorRule struct { Identifier string TaskType pipeline.AssetType Connections connectionManager Extractor queryExtractor WorkerCount int Logger *zap.SugaredLogger }
func (*QueryValidatorRule) GetApplicableLevels ¶ added in v0.5.6
func (q *QueryValidatorRule) GetApplicableLevels() []Level
func (*QueryValidatorRule) Name ¶
func (q *QueryValidatorRule) Name() string
type Rule ¶
type Rule interface { Name() string Validate(pipeline *pipeline.Pipeline) ([]*Issue, error) ValidateAsset(ctx context.Context, pipeline *pipeline.Pipeline, asset *pipeline.Asset) ([]*Issue, error) GetApplicableLevels() []Level }
func FilterRulesByLevel ¶ added in v0.5.6
type SimpleRule ¶
type SimpleRule struct { Identifier string Validator PipelineValidator AssetValidator AssetValidator ApplicableLevels []Level }
func (*SimpleRule) GetApplicableLevels ¶ added in v0.5.6
func (g *SimpleRule) GetApplicableLevels() []Level
func (*SimpleRule) Name ¶
func (g *SimpleRule) Name() string
Click to show internal directories.
Click to hide internal directories.