Skip to content

Releases: ebogdum/konfigo

Release v1.0.4

30 Jun 07:16
f9d20f3

Choose a tag to compare

v1.0.4

🚀 New Features

  • Added: addKeySuffix transformer - 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: deleteKey transformer - 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: trim transformer - 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: replaceKey transformer - 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: changeCase transformer now supports additional case formats
    • Added: kebab case support for kebab-case conversions
    • Added: pascal case support for PascalCase conversions
    • Supported formats: upper, lower, snake, camel, kebab, pascal
  • Enhanced: Transformer Definition structure with new fields
    • Added: suffix field for addKeySuffix transformer
    • Added: pattern field for trim transformer
    • Added: target field for replaceKey transformer
    • Improved: Variable substitution now supports all new transformer fields

🐛 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 addKeySuffix transformer with examples
    • Added: Complete documentation for deleteKey transformer with use cases
    • Added: Complete documentation for trim transformer with pattern examples
    • Added: Complete documentation for replaceKey transformer with workflow examples
    • Updated: Transformation overview to include all eight available transformer types
    • Enhanced: Combined transformation examples showing new transformers in action

Release v1.0.3

30 Jun 06:45
9eb5355

Choose a tag to compare

Version v1.0.3 not found in changelog. Extracting latest changes...

Release v1.0.3

🚀 New Features

  • Added: timestamp generator - 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: random generator - 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: id generator - 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.sh before 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

🐛 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 timestamp generator with format examples
    • Added: Complete documentation for random generator with all format types
    • Added: Complete documentation for id generator with pattern examples
    • Updated: Generator overview to include all four available generator types

Release v1.0.2

26 Jun 22:48
b3eef54

Choose a tag to compare

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 from CHANGELOG.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_file configuration to use CHANGELOG.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 features
    • concat.go - Concatenation generator
    • registry.go - Generator registry
    • types.go - Generator type definitions
  • Added: input_schema/ - Input schema validation
    • loader.go - Schema loading functionality
    • validator.go - Schema validation logic
  • Added: transformer/ - Data transformation features
    • add_key_prefix.go - Key prefix transformation
    • change_case.go - Case transformation
    • registry.go - Transformer registry
    • rename_key.go - Key renaming transformation
    • set_value.go - Value setting transformation
    • types.go - Transformer type definitions
  • Added: validator/ - Validation engine
    • engine.go - Main validation engine
    • number.go - Number validation
    • numeric_validator.go - Numeric validation logic
    • registry.go - Validator registry
    • string_validator.go - String validation logic
    • type_validator.go - Type validation
    • types.go - Validator type definitions
  • Added: variables/ - Variable handling
    • resolver.go - Variable resolution logic (moved from internal/schema/vars.go)
    • substitution.go - Variable substitution
    • types.go - Variable type definitions
Core Services
  • Added: logger/logger.go - Centralized logging system
  • Added: marshaller/ - Output formatting
    • env.go - Environment file marshalling
    • json.go - JSON marshalling
    • marshaller.go - Core marshalling interface
    • registry.go - Marshaller registry
    • toml.go - TOML marshalling
    • yaml.go - YAML marshalling
  • Added: merger/merger.go - Configuration merging logic
  • Added: parser/ - Input parsing
    • detector.go - Format detection
    • env.go - Environment file parsing
    • ini.go - INI file parsing
    • json.go - JSON parsing
    • parser.go - Core parsing interface
    • registry.go - Parser registry
    • toml.go - TOML parsing
    • yaml.go - YAML parsing
  • Added: pipeline/ - Processing pipeline
    • batch.go - Batch processing pipeline
    • coordinator.go - Pipeline coordination
    • optimized.go - Optimized processing pipeline
    • pipeline.go - Core pipeline interface
    • single.go - Single file processing pipeline
  • Added: reader/ - File reading
    • discovery.go - File discovery logic (moved from internal/loader/loader.go)
    • reader.go - Core reading interface
    • stream.go - Stream reading functionality
  • Added: util/ - Utility functions
    • type_inference.go - Type inference utilities
    • util.go - General utility functions
  • Added: writer/ - Output writing
    • directory.go - Directory output writing
    • target.go - Target specification
    • writer.go - Core writing interface

Modified Schema Package (internal/schema/)

  • Removed: generator.go - Functionality moved to internal/features/generator/
  • Removed: transformer.go - Functionality moved to internal/features/transformer/
  • Removed: validator.go - Functionality moved to internal/features/validator/
  • Modified: vars.go → moved to internal/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 files
    • deployment-schema.yaml - Deployment schema configuration
    • service-schema.yaml - Service schema configuration
  • Added: expected/ - Expected output files
    • complex/ - Complex scenario outputs
    • deployments/ - Deployment scenario outputs
    • envs/ - Environment configuration outputs
    • services/ - Service configuration outputs
  • Added: input/ - Test input files
    • base-config.json - Base configuration
    • empty-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.go
    • transformer.go
    • validator.go

Moved/Refactored

  • internal/schema/vars.gointernal/features/variables/resolver.go
  • internal/loader/loader.gointernal/reader/discovery.go

🎯 Key Improvements

  1. Modular Architecture: Complete restructuring into feature-based modules
  2. Enhanced Testing: Comprehensive test suites for all major features
  3. Better Separation of Concerns: Clear separation between CLI, processing, and feature logic
  4. Improved Maintainability: Registry-based pattern for extensible functionality
  5. Robust Error Handling: Centralized error management system

Release v1.0.1

14 Jun 07:56

Choose a tag to compare

What's Changed

  • Bump github.com/BurntSushi/toml from 1.4.0 to 1.5.0 by @dependabot in #2

New Contributors

Full Changelog: v1.0.0...v1.0.1

Release v1.0.0

14 Jun 05:07
206b2ff

Choose a tag to compare