diff --git a/internal/cli/common/manager.go b/internal/cli/common/manager.go index aaaceba6f9..eebf4901fe 100644 --- a/internal/cli/common/manager.go +++ b/internal/cli/common/manager.go @@ -76,7 +76,11 @@ func CreateManager( sanitConf := docs.NewSanitiseConfig(bundle.GlobalEnvironment) sanitConf.RemoveTypeField = true sanitConf.ScrubSecrets = true - err = config.Spec().SanitiseYAML(&sanitNode, sanitConf) + sanitSpec := config.Spec() + if streamsMode { + sanitSpec = config.SpecWithoutStream() + } + err = sanitSpec.SanitiseYAML(&sanitNode, sanitConf) } if err != nil { err = fmt.Errorf("failed to generate sanitised config: %w", err) diff --git a/internal/config/reader.go b/internal/config/reader.go index f7f12a8270..ec47ef47b4 100644 --- a/internal/config/reader.go +++ b/internal/config/reader.go @@ -311,7 +311,7 @@ func (r *Reader) readMain(mainPath string) (conf Type, lints []string, err error if r.streamsMode { // Spec is limited to just non-stream fields when in streams mode (no // input, output, etc) - confSpec = r.specStreamOnly + confSpec = r.specObservability } if err = applyOverrides(confSpec, rawNode, r.overrides...); err != nil { return diff --git a/internal/config/stream_reader_test.go b/internal/config/stream_reader_test.go index 0e8148764f..0928ba6c39 100644 --- a/internal/config/stream_reader_test.go +++ b/internal/config/stream_reader_test.go @@ -18,6 +18,12 @@ import ( func TestStreamsLints(t *testing.T) { dir := t.TempDir() + generalConfPath := filepath.Join(dir, "main.yaml") + require.NoError(t, os.WriteFile(generalConfPath, []byte(` +logger: + level: ALL +`), 0o644)) + streamOnePath := filepath.Join(dir, "first.yaml") require.NoError(t, os.WriteFile(streamOnePath, []byte(` input: @@ -42,7 +48,7 @@ cache_resources: ttl: 13 `), 0o644)) - rdr := config.NewReader("", nil, config.OptSetStreamPaths(streamOnePath, streamTwoPath)) + rdr := config.NewReader(generalConfPath, nil, config.OptSetStreamPaths(streamOnePath, streamTwoPath)) _, lints, err := rdr.Read() require.NoError(t, err)