- Add table of contents for easier navigation
- Move key features to the top
- Add comprehensive examples demonstrating all features
- Fix incorrect Get() method documentation (only supports top-level keys)
- Document authentication requirements for all cloud providers
- Add complete production-ready example with all resolvers
- Add security considerations section
- Improve clarity throughout with better organization
- Ensure all examples are accurate and tested
commit e15edaedd786254cf22c291a63a02f7cff33b119
Author: sneak <sneak@sneak.berlin>
Date: Mon Jul 21 15:17:12 2025 +0200
Implement YAML-first interpolation with type preservation
Previously, interpolations were performed during string manipulation before
YAML parsing, which caused issues with quoting and escaping. This commit
fundamentally changes the approach:
- Parse YAML first, then walk the structure to interpolate values
- Preserve types: standalone interpolations can return numbers/booleans
- Mixed content (text with embedded interpolations) always returns strings
- Users control types through YAML syntax, not our quoting logic
- Properly handle nested interpolations without quote accumulation
This gives users explicit control over output types while eliminating
the complex and error-prone manual quoting logic.
- Updated JSON resolver to use gjson library for JSON5 support (comments, trailing commas)
- Added --json flag to CLI tool for JSON output format
- Added typed getter methods: GetInt(), GetUint(), GetFloat(), GetBool(), GetBytes()
- GetBytes() supports human-readable formats like "10G", "20KiB" via go-humanize
- Fixed YAML interpolation to always quote output values for safety
- Updated README to clarify YAML-only input and automatic quoting behavior
- Added .gitignore to exclude compiled binary
- Fixed test config files to use unquoted interpolation syntax
- Updated tests to expect quoted interpolation output