diff --git a/generator/recipe.yaml b/generator/recipe.yaml index bc7731595..305944591 100644 --- a/generator/recipe.yaml +++ b/generator/recipe.yaml @@ -3,7 +3,9 @@ version: {{.Version}} source: {{- with .Source }} name: {{.Name}} + {{- if .Scope}} scope: {{.Scope}} + {{- end}} config: {{.SampleConfig | rawfmt | indent 4}} {{- end }} {{- if ne (len .Sinks) 0 }} diff --git a/plugins/base_extractor.go b/plugins/base_extractor.go index 4b72305c0..50fdb0269 100644 --- a/plugins/base_extractor.go +++ b/plugins/base_extractor.go @@ -3,6 +3,7 @@ package plugins import "context" type BaseExtractor struct { + ScopeNotRequired bool BasePlugin } @@ -14,7 +15,7 @@ func NewBaseExtractor(info Info, configRef interface{}) BaseExtractor { // Validate checks if the given options is valid for the plugin. func (p *BaseExtractor) Validate(config Config) error { - if config.URNScope == "" { + if config.URNScope == "" && !p.ScopeNotRequired { return ErrEmptyURNScope } diff --git a/plugins/extractors/bigquery/bigquery.go b/plugins/extractors/bigquery/bigquery.go index df8d4c3ed..f02ba7449 100644 --- a/plugins/extractors/bigquery/bigquery.go +++ b/plugins/extractors/bigquery/bigquery.go @@ -83,6 +83,7 @@ func New(logger log.Logger) *Extractor { galClient: galc, } e.BaseExtractor = plugins.NewBaseExtractor(info, &e.config) + e.ScopeNotRequired = true return e } diff --git a/plugins/extractors/bigtable/bigtable.go b/plugins/extractors/bigtable/bigtable.go index 830c799c5..bfb0f2720 100644 --- a/plugins/extractors/bigtable/bigtable.go +++ b/plugins/extractors/bigtable/bigtable.go @@ -61,6 +61,7 @@ func New(logger log.Logger) *Extractor { logger: logger, } e.BaseExtractor = plugins.NewBaseExtractor(info, &e.config) + e.ScopeNotRequired = true return e } diff --git a/plugins/extractors/gcs/gcs.go b/plugins/extractors/gcs/gcs.go index c21297291..8f8fbfc97 100644 --- a/plugins/extractors/gcs/gcs.go +++ b/plugins/extractors/gcs/gcs.go @@ -68,6 +68,7 @@ func New(logger log.Logger) *Extractor { logger: logger, } e.BaseExtractor = plugins.NewBaseExtractor(info, &e.config) + e.ScopeNotRequired = true return e } diff --git a/plugins/extractors/redshift/redshift.go b/plugins/extractors/redshift/redshift.go index cee95c011..87cd793c9 100644 --- a/plugins/extractors/redshift/redshift.go +++ b/plugins/extractors/redshift/redshift.go @@ -69,6 +69,8 @@ func New(logger log.Logger, opts ...Option) *Extractor { logger: logger, } e.BaseExtractor = plugins.NewBaseExtractor(info, &e.config) + e.ScopeNotRequired = true + for _, opt := range opts { opt(e) }