Skip to content

feat(rfc): parse-first config interpolation#25603

Draft
pront wants to merge 4 commits into
masterfrom
pront/rfc-parse-first-interpolation
Draft

feat(rfc): parse-first config interpolation#25603
pront wants to merge 4 commits into
masterfrom
pront/rfc-parse-first-interpolation

Conversation

@pront

@pront pront commented Jun 10, 2026

Copy link
Copy Markdown
Member

Summary

Proposes restructuring Vector's config loading pipeline from raw-text interpolation to parse-first interpolation. The config document is parsed into a value tree first, ${VAR} and SECRET[...] are substituted only on string leaves, and a JSON-Schema-driven coercion pass converts string scalars to declared types before serde runs.

Two outcomes:

  • Field-path-aware errors (unknown field at sinks.my_sink.retries) instead of serde messages with no location.
  • Decoupling parsing from interpolation, so secret backends and future per-field policies can operate on typed values.

RFC: rfcs/2026-06-09-parse-first-config-interpolation.md.

Vector configuration

N/A. Docs-only PR.

How did you test this PR?

N/A. Docs-only PR.

Change Type

  • Bug fix
  • New feature
  • Dependencies
  • Non-functional (chore, refactoring, docs)
  • Performance

Is this a breaking change?

  • Yes
  • No

Does this PR include user facing changes?

  • Yes. Please add a changelog fragment based on our guidelines.
  • No. A maintainer will apply the no-changelog label to this PR.

References

N/A

Propose moving environment-variable and SECRET[...] substitution from
the raw-text pipeline to operate on parsed value trees. Adds a
JSON-Schema-driven coercion pass that converts interpolated string
scalars to their declared types and produces field-path-aware errors
before serde is invoked.
@pront pront changed the title rfc: parse-first config interpolation feat(rfc): parse-first config interpolation Jun 10, 2026
pront added 3 commits June 9, 2026 20:32
Rewrite sentences that used `--` as an em-dash substitute so the same
information flows naturally with colons, parentheses, or separate
clauses. No design content change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant