Releases: ebogdum/konfigo
Releases · ebogdum/konfigo
Release v1.0.4
v1.0.4
🚀 New Features
- Added:
addKeySuffixtransformer - Adds suffixes to all keys within a map object- Usage: Transforms map keys by appending specified suffix to each key name
- Fields:
type: "addKeySuffix",path: "path.to.map",suffix: "_suffix" - Example: Transform
{host: "localhost", port: 5432}→{host_prod: "localhost", port_prod: 5432}
- Added:
deleteKeytransformer - Removes specified keys from configuration- Usage: Deletes configuration keys at specified paths (useful for removing sensitive data)
- Fields:
type: "deleteKey",path: "path.to.key" - Example: Remove secrets, temporary values, or deprecated configuration keys
- Added:
trimtransformer - Trims whitespace or custom patterns from string values- Usage: Cleans up string values by removing unwanted characters from start/end
- Fields:
type: "trim",path: "path.to.string",pattern: "characters"(optional) - Default: Trims whitespace if no pattern specified
- Example:
" value "→"value"or"---token---"→"token"(with pattern: "-")
- Added:
replaceKeytransformer - Replaces value with content from another path- Usage: Takes value from target path, places it at destination path, then deletes target
- Fields:
type: "replaceKey",path: "destination.path",target: "source.path" - Example: Move temporary/staged values to their final configuration locations
🔧 Enhancements
- Enhanced:
changeCasetransformer now supports additional case formats- Added:
kebabcase support for kebab-case conversions - Added:
pascalcase support for PascalCase conversions - Supported formats: upper, lower, snake, camel, kebab, pascal
- Added:
- Enhanced: Transformer Definition structure with new fields
- Added:
suffixfield for addKeySuffix transformer - Added:
patternfield for trim transformer - Added:
targetfield for replaceKey transformer - Improved: Variable substitution now supports all new transformer fields
- Added:
🐛 Bug Fixes
- No bug fixes yet
🏗️ Internal Changes
- No internal changes yet
🧪 Tests
- Enhanced: Transformer test suite to include new transformer types
- Added: Test schemas for addKeySuffix, deleteKey, trim, and replaceKey transformers
- Added: Test cases covering all new transformer functionality and edge cases
- Added: Error handling tests for new transformers (missing paths, type mismatches)
- Added: Variable substitution tests for new transformer fields
- Updated: Test documentation to reflect new transformer coverage
📚 Documentation
- Enhanced: Transformation documentation with comprehensive coverage of new transformers
- Added: Complete documentation for
addKeySuffixtransformer with examples - Added: Complete documentation for
deleteKeytransformer with use cases - Added: Complete documentation for
trimtransformer with pattern examples - Added: Complete documentation for
replaceKeytransformer with workflow examples - Updated: Transformation overview to include all eight available transformer types
- Enhanced: Combined transformation examples showing new transformers in action
- Added: Complete documentation for
Release v1.0.3
Version v1.0.3 not found in changelog. Extracting latest changes...
Release v1.0.3
🚀 New Features
- Added:
timestampgenerator - Generates current timestamp values in various formats- Formats: unix, unixmilli, rfc3339, iso8601, and custom Go time format strings
- Usage: Perfect for adding creation timestamps, build times, or unique time-based values
- Added:
randomgenerator - Creates random values in multiple formats- Formats: int:min:max, float:min:max, string:length, bytes:length, uuid
- Usage: Ideal for generating test data, session tokens, or random configuration values
- Added:
idgenerator - Generates various types of identifiers using [a-zA-Z0-9] characters- Formats: simple:length, prefix:prefix:length, numeric:length, alpha:length, sequential, timestamp
- Usage: Creates user IDs, session counters, trace IDs, and other unique identifiers
🔧 Enhancements
- Enhanced:
release.sh- Added automated build step and changelog reset functionality- Added: Automatic execution of
builds.shbefore release process - Added: Post-release changelog reset with user confirmation
- Added:
reset_changelog()function to prepare changelog for next development cycle - Added: Automatic backup creation when resetting changelog
- Improved: Step numbering and workflow organization
- Added: Automatic execution of
🐛 Bug Fixes
- No bug fixes yet
🏗️ Internal Changes
- No internal changes yet
🧪 Tests
- Enhanced: Generator test suite to include new generator types
- Added: Test schemas for timestamp, random, and id generators
- Added: Test cases covering all new generator formats and edge cases
- Added: Documentation for new generator test coverage
📚 Documentation
- Enhanced: Generator documentation with comprehensive coverage of new generators
- Added: Complete documentation for
timestampgenerator with format examples - Added: Complete documentation for
randomgenerator with all format types - Added: Complete documentation for
idgenerator with pattern examples - Updated: Generator overview to include all four available generator types
- Added: Complete documentation for
Release v1.0.2
Version v1.0.2 not found in changelog. Extracting latest changes...
[Latest Commit] - 2025-06-27
🔧 Release Script Enhancement
Modified Files
- Enhanced:
release.sh- Integrated automatic changelog extraction for GitHub releases
New Features
- Added:
extract_changelog_for_version()function to automatically extract release notes fromCHANGELOG.md - Enhanced: Release creation process now automatically uses changelog content for GitHub releases
- Improved: Fallback mechanism when version-specific content isn't found in changelog
- Added: Automatic cleanup of temporary files during release process
Configuration Changes
- Updated: Default
notes_fileconfiguration to useCHANGELOG.md - Enhanced: Release notes extraction supports various changelog formats (with/without brackets, version prefixes)
🏗️ Internal Architecture Changes
This section documents changes to the internal and test folders between the previous and current commit.
🏗️ Internal Architecture Changes
New Packages and Modules
CLI Package (internal/cli/)
- Added:
commands.go- Command execution logic and coordination - Added:
flags.go- Flag definitions, parsing, and validation - Added:
help.go- Help text generation and display
Configuration Package (internal/config/)
- Added:
batch.go- Batch processing configuration - Added:
config.go- Core configuration structures - Added:
environment.go- Environment handling
Error Handling (internal/errors/)
- Added:
errors.go- Centralized error handling system
Features Package (internal/features/)
- Added:
generator/- Code generation featuresconcat.go- Concatenation generatorregistry.go- Generator registrytypes.go- Generator type definitions
- Added:
input_schema/- Input schema validationloader.go- Schema loading functionalityvalidator.go- Schema validation logic
- Added:
transformer/- Data transformation featuresadd_key_prefix.go- Key prefix transformationchange_case.go- Case transformationregistry.go- Transformer registryrename_key.go- Key renaming transformationset_value.go- Value setting transformationtypes.go- Transformer type definitions
- Added:
validator/- Validation engineengine.go- Main validation enginenumber.go- Number validationnumeric_validator.go- Numeric validation logicregistry.go- Validator registrystring_validator.go- String validation logictype_validator.go- Type validationtypes.go- Validator type definitions
- Added:
variables/- Variable handlingresolver.go- Variable resolution logic (moved frominternal/schema/vars.go)substitution.go- Variable substitutiontypes.go- Variable type definitions
Core Services
- Added:
logger/logger.go- Centralized logging system - Added:
marshaller/- Output formattingenv.go- Environment file marshallingjson.go- JSON marshallingmarshaller.go- Core marshalling interfaceregistry.go- Marshaller registrytoml.go- TOML marshallingyaml.go- YAML marshalling
- Added:
merger/merger.go- Configuration merging logic - Added:
parser/- Input parsingdetector.go- Format detectionenv.go- Environment file parsingini.go- INI file parsingjson.go- JSON parsingparser.go- Core parsing interfaceregistry.go- Parser registrytoml.go- TOML parsingyaml.go- YAML parsing
- Added:
pipeline/- Processing pipelinebatch.go- Batch processing pipelinecoordinator.go- Pipeline coordinationoptimized.go- Optimized processing pipelinepipeline.go- Core pipeline interfacesingle.go- Single file processing pipeline
- Added:
reader/- File readingdiscovery.go- File discovery logic (moved frominternal/loader/loader.go)reader.go- Core reading interfacestream.go- Stream reading functionality
- Added:
util/- Utility functionstype_inference.go- Type inference utilitiesutil.go- General utility functions
- Added:
writer/- Output writingdirectory.go- Directory output writingtarget.go- Target specificationwriter.go- Core writing interface
Modified Schema Package (internal/schema/)
- Removed:
generator.go- Functionality moved tointernal/features/generator/ - Removed:
transformer.go- Functionality moved tointernal/features/transformer/ - Removed:
validator.go- Functionality moved tointernal/features/validator/ - Modified:
vars.go→ moved tointernal/features/variables/resolver.go - Added:
processor.go- Schema processing logic - Modified:
schema.go- Updated schema handling
🧪 Test Infrastructure Changes
Test Documentation
- Modified:
test/README.md- Updated test documentation
Batch Processing Tests (test/batch/)
- Added:
README.md- Batch testing documentation - Added:
config/- Test configuration filesdeployment-schema.yaml- Deployment schema configurationservice-schema.yaml- Service schema configuration
- Added:
expected/- Expected output filescomplex/- Complex scenario outputsdeployments/- Deployment scenario outputsenvs/- Environment configuration outputsservices/- Service configuration outputs
- Added:
input/- Test input filesbase-config.json- Base configurationempty-base.json- Empty base configuration
- Added:
output/- Actual test outputs - Added:
test.sh- Batch test execution script - Added:
validate.sh- Batch test validation script - Added:
variables/- Variable test files- Various environment and batch configuration files
Environment Integration Tests (test/env-integration/)
- Added:
README.md- Environment integration test documentation - Added:
config/- Schema configuration files - Added:
expected/- Expected outputs for environment tests - Added:
input/- Test input files for environment scenarios - Added:
output/- Actual test outputs - Added:
test.sh- Environment integration test script - Added:
validate.sh- Environment integration validation script
Format Conversion Tests (test/format-conversion/)
- Added:
expected/- Expected outputs for format conversion - Added:
input/- Input files in various formats (env, ini, json, toml, yaml) - Added:
output/- Actual conversion outputs - Added:
test.sh- Format conversion test script - Added:
validate.sh- Format conversion validation script
Generator Tests (test/generators/)
- Added:
README.md- Generator test documentation - Added:
config/- Generator configuration files- Various schema files for testing generator functionality
- Error scenario configurations
- Added: Variable test files
Test Utilities
- Modified:
test/common_functions.sh- Updated common test functions
📋 Summary of Changes
Added
- 58 new files in
internal/package - 200+ new test files across multiple test suites
- Complete modularization of the codebase with feature-based architecture
- Comprehensive test coverage for batch processing, environment integration, format conversion, and generators
Removed
- 3 legacy files from
internal/schema/package:generator.gotransformer.govalidator.go
Moved/Refactored
internal/schema/vars.go→internal/features/variables/resolver.gointernal/loader/loader.go→internal/reader/discovery.go
🎯 Key Improvements
- Modular Architecture: Complete restructuring into feature-based modules
- Enhanced Testing: Comprehensive test suites for all major features
- Better Separation of Concerns: Clear separation between CLI, processing, and feature logic
- Improved Maintainability: Registry-based pattern for extensible functionality
- Robust Error Handling: Centralized error management system
Release v1.0.1
What's Changed
- Bump github.com/BurntSushi/toml from 1.4.0 to 1.5.0 by @dependabot in #2
New Contributors
- @dependabot made their first contribution in #2
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
Full Changelog: https://github.com/ebogdum/konfigo/commits/v1.0.0