About this project

Spring Config Contract is an open-source developer tool designed to detect configuration drift in Spring Boot applications before deployment. It compares the configuration an application requires (from @ConfigurationProperties, @Value, and application.yml) against what a deployment environment provides (from .env.example and Docker Compose files), reporting missing and unused configuration keys. The project is in early development targeting v0.1.0. The repository currently contains development infrastructure, module scaffolding, and documentation; product functionality is not yet generally available. Planned v0.1.0 scope includes Spring-side input discovery, deployment-side parsing of .env.example and Docker Compose, contract findings (missing/unused config, required/optional behavior, default-value-aware comparison), and a Gradle plugin with a configContractCheck task. The Gradle plugin (io.github.inryeok-office.config-contract) is implemented on main but not yet published; it can only be used from a source build. The task compiles the main source set, discovers requirements, reads deployment files, and prints findings ordered by key. It fails on any MISSING or UNUSED finding but is not attached to the check task. The codebase is organized into modules: config-contract-core (framework-independent domain models and comparison rules), config-contract-spring (Spring-specific discovery), config-contract-deployment (deployment-format parsers), config-contract-gradle-plugin (Gradle integration), and config-contract-test (shared fixtures). JDK 21 is required. Licensed under Apache 2.0.