fix(website): reduce example config validation failures from 48 to 10#25936
Merged
Conversation
- Skip numeric defaults that exceed Number.MAX_SAFE_INTEGER — these are i64::MAX sentinel values that serde_yaml rejects as too-large integers - Strip null values from CUE-generated object examples before use, so keepalive fields with null defaults don't produce YAML null keys - Filter null values from p.items subObj and array-wrap correctly when topType is "array", fixing metrics/timers fields that were generated as plain objects instead of arrays - Handle sources with named outputs (e.g. opentelemetry .logs/.metrics/.traces) by wiring a blackhole sink per output instead of the default single sink
kafka(advanced), demo_logs(advanced), file(advanced), kubernetes_logs(advanced), and opentelemetry(minimal/advanced) all pass validation after the generator and validator fixes in the previous commit.
The handwritten pulsar.cue defined topics as type: string, but the Rust struct uses Vec<String>. The generated/pulsar.cue already had the correct type: array definition, but it was shadowed by the handwritten override. Fixed by matching the actual implementation.
The route transform produces named outputs keyed by route name, not a default output. Wire a blackhole sink per route key so vector validate can resolve all outputs.
pulsar(minimal/advanced) pass after the CUE type fix; route(advanced) passes after the per-route sink wiring fix.
…rator - Handle condition-typed fields in the generator by using the VRL syntax example; restrict to required fields to avoid including mutually exclusive optional condition pairs (e.g. reduce ends_when/starts_when) - Add examples for throttle.threshold, throttle.window_secs, and delay.delay_ms via CUE overrides so the generator can produce valid minimal configs for these transforms
delay(min/adv), filter(min/adv), window(min/adv), throttle(min/adv) all pass validation after adding condition type handling and CUE example fixes.
throttle(min/adv) now pass after adding threshold and window_secs examples.
- Add CUE example overrides for required fields that had no examples: sinks/amqp (exchange), aws_sns (topic_arn via correct generated config), gcp_stackdriver_logs (resource.type, project_id, log_id), gcp_stackdriver_metrics (project_id), mqtt (topic), postgres (endpoint, table), splunk_hec_logs (default_token), sources/vector (address), sources/static_metrics (metrics name/value), transforms/log_to_metric (metrics.field) - Fix aws_sns.cue to use generated.components.sinks.aws_sns.configuration instead of aws_sqs (which lacked topic_arn) - Generator: return false as fallback for required bool fields with no examples - Generator: fix if(value) guard to if(value != null) to allow false through - Generator: fall back to items.type.object.examples when options yield nothing (fixes exclusive_route routes generation) - Validator: handle exclusive_route's routes array for named output wiring
…list Allowlist drops from 31 to 10 entries. Remaining 10 failures are due to docs/runtime mismatches (labels, tags, route required but CUE says optional), untagged enum deserialization (fluent, lua), and mutual exclusion of config fields (remap source/file, sample rate/ratio) that need upstream Rust fixes.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e7d4199181
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
thomasqueirozb
approved these changes
Jul 23, 2026
pront
enabled auto-merge
July 23, 2026 20:19
maycmlee
approved these changes
Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Example configs shown on vector.dev should be valid — users copy them and expect them to work. This reduces the known-failing example config validation allowlist from 48 to 10 entries.
Fixes span CUE schema overrides (missing examples for required fields), the example generator, and the validator topology wiring.
The remaining 10 failures require Rust annotation changes to resolve (CUE docs disagree with runtime enforcement, or mutually exclusive fields can't be disambiguated by the generator).
How did you test this PR?
Change Type
Is this a breaking change?
Does this PR include user facing changes?
no-changeloglabel to this PR.