Documentation ¶
Index ¶
- func EnsureNoNestedPipelines(pipelinePaths []string) error
- type Issue
- func EnsureAthenaSQLTypeTasksHasDatabaseAndS3FilePath(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureDependencyExists(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureMaterializationValuesAreValid(p *pipeline.Pipeline) ([]*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 EnsureTaskNameIsUnique(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureTaskNameIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- type Linter
- type PipelineAnalysisResult
- type PipelineIssues
- type PipelineValidator
- type Printer
- type QueryValidatorRule
- type Rule
- type SimpleRule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureNoNestedPipelines ¶ added in v0.4.1
Types ¶
type Issue ¶
func EnsureMaterializationValuesAreValid ¶ added in v0.4.1
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.
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) 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) Name ¶
func (q QueryValidatorRule) Name() string
type SimpleRule ¶
type SimpleRule struct { Identifier string Validator PipelineValidator }
func (*SimpleRule) Name ¶
func (g *SimpleRule) Name() string
Click to show internal directories.
Click to hide internal directories.