Omit empty fields from bootstrap config output
probod-bootstrap was writing empty strings and stub blocks such as
`esign: {}` into generated YAML. The post-marshal prune pass caused
part of that by stripping empty leaf strings while leaving empty
parent maps behind.
Drop the prune round-trip in WriteConfig and rely on struct-level
omitzero/omitempty tags plus custom IsZero() helpers on probodconfig.
Only include LLM providers when an API key is set, use a nil map for
extra API headers, and extend the dev-config Makefile recipe with the
local dev defaults already documented in .env.example.
Config loading is unchanged: omitted keys still decode to Go zero
values.
Signed-off-by: Ludovic Vielle <ludovic@probo.com>
This commit is contained in:
@@ -15,11 +15,19 @@
|
||||
package probodconfig
|
||||
|
||||
type CorsConfig struct {
|
||||
AllowedOrigins []string `json:"allowed-origins"`
|
||||
AllowedOrigins []string `json:"allowed-origins,omitzero,omitempty"`
|
||||
}
|
||||
|
||||
func (c CorsConfig) IsZero() bool {
|
||||
return len(c.AllowedOrigins) == 0
|
||||
}
|
||||
|
||||
type ProxyProtocolConfig struct {
|
||||
TrustedProxies []string `json:"trusted-proxies"`
|
||||
TrustedProxies []string `json:"trusted-proxies,omitzero,omitempty"`
|
||||
}
|
||||
|
||||
func (c ProxyProtocolConfig) IsZero() bool {
|
||||
return len(c.TrustedProxies) == 0
|
||||
}
|
||||
|
||||
type GraphQLConfig struct {
|
||||
@@ -30,9 +38,9 @@ type GraphQLConfig struct {
|
||||
}
|
||||
|
||||
type APIConfig struct {
|
||||
Addr string `json:"addr"`
|
||||
ProxyProtocol ProxyProtocolConfig `json:"proxy-protocol"`
|
||||
Cors CorsConfig `json:"cors"`
|
||||
ExtraHeaderFields map[string]string `json:"extra-header-fields"`
|
||||
GraphQL GraphQLConfig `json:"graphql"`
|
||||
Addr string `json:"addr,omitempty"`
|
||||
ProxyProtocol ProxyProtocolConfig `json:"proxy-protocol,omitzero"`
|
||||
Cors CorsConfig `json:"cors,omitzero"`
|
||||
ExtraHeaderFields map[string]string `json:"extra-header-fields,omitzero,omitempty"`
|
||||
GraphQL GraphQLConfig `json:"graphql,omitzero"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user