From b16f01a0ac36d6d6b394f4c1c8a9b576e2c3accb Mon Sep 17 00:00:00 2001 From: Ashley Jeffs Date: Mon, 29 Jan 2024 20:47:35 +0000 Subject: [PATCH] Fix streams mode main config reader --- internal/cli/common/manager.go | 6 +++++- internal/config/reader.go | 2 +- internal/config/stream_reader_test.go | 8 +++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/cli/common/manager.go b/internal/cli/common/manager.go index aaaceba6f..eebf4901f 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 f7f12a827..ec47ef47b 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 0e8148764..0928ba6c3 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)