Files
fn_registry/functions/infra/config_dump.md
T
egutierrez c3b007a4e7 feat(infra): tipos ConfigError y ConfigValidation + funciones puras Go (validate, merge, dump)
- ConfigError y ConfigValidation como tipos producto con sus .md en types/infra/
- config_validate: validacion con tags required/format/min/max/oneof via reflection
- config_merge: merge no-mutante de map[string]string con precedencia de override
- config_dump: serializacion de structs a map con mascara *** para campos secret
- 17 tests unitarios, todos PASS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 02:01:43 +02:00

1.5 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
config_dump function go infra 1.0.0 pure func ConfigDump(cfg any) map[string]string Convierte una struct de configuracion a map[string]string para logging o inspeccion. Campos con tag secret:"true" aparecen como "***". Solo campos exportados de nivel superior.
config
dump
debug
logging
infra
reflect
false
fmt
reflect
name desc
cfg struct de configuracion (valor o puntero) cuyos campos exportados se van a serializar a strings
mapa string→string con cada campo exportado; valores secretos reemplazados con *** true
campos normales se incluyen como string
campos secret aparecen como tres asteriscos
campos no exportados no aparecen
puntero a struct funciona
struct con bool y float se formatean correctamente
functions/infra/config_dump_test.go functions/infra/config_dump.go

Ejemplo

type AppConfig struct {
    Host   string
    Port   int
    APIKey string `secret:"true"`
}

cfg := AppConfig{Host: "localhost", Port: 8080, APIKey: "sk-abc123"}
dump := ConfigDump(cfg)
// dump = {"Host": "localhost", "Port": "8080", "APIKey": "***"}
log.Printf("startup config: %v", dump)

Notas

Funcion pura. Usa fmt.Sprintf("%v") para formatear todos los tipos. No desciende a structs anidados. Util para logging seguro de configuracion al inicio de una app.