Problem
IntegrationSettings::normalize_env_value recursively parses every string as JSON. Numeric-looking string values inside Prebid bidder parameter overrides are therefore converted to JSON numbers during app-config loading and serialization.
For example, a TOML value such as:
[integrations.prebid.bid_param_overrides.example]
publisherId = "12345"
can become:
Prebid Server adapters whose schemas require string identifiers then reject the OpenRTB request.
Expected behavior
Bidder parameter override payloads are opaque JSON supplied by the operator. Their nested scalar types should survive TOML loading, config-store serialization, and runtime JSON loading unchanged. JSON environment overrides for the complete override container should still be decoded once.
Acceptance criteria
- Preserve nested scalar types under
bid_param_overrides, bid_param_zone_overrides, and bid_param_override_rules.
- Continue accepting JSON-encoded environment overrides for those fields.
- Add coverage for numeric-looking strings across the TOML → JSON → runtime round trip.
Problem
IntegrationSettings::normalize_env_valuerecursively parses every string as JSON. Numeric-looking string values inside Prebid bidder parameter overrides are therefore converted to JSON numbers during app-config loading and serialization.For example, a TOML value such as:
can become:
{"publisherId": 12345}Prebid Server adapters whose schemas require string identifiers then reject the OpenRTB request.
Expected behavior
Bidder parameter override payloads are opaque JSON supplied by the operator. Their nested scalar types should survive TOML loading, config-store serialization, and runtime JSON loading unchanged. JSON environment overrides for the complete override container should still be decoded once.
Acceptance criteria
bid_param_overrides,bid_param_zone_overrides, andbid_param_override_rules.