This library is intended for Spring boot clients. It will automatically connect to the config service to get your configuration files.
The best way to get the client is via Maven:
<dependency>
<groupId>com.intuit.common-config.config-client</groupId>
<artifactId>spring-config-client-fallback</artifactId>
<version>{latest_jar}</version>
</dependency>
After adding the dependency, just include the following properties in your bootstrap.yml or application.yml. There is no need to instantiate the client. It will bootstrap automatically using the below properties:
spring:
application:
name: foo (Your application name/Prefix you selected while onboarding)
profiles:
active: dev (This is the profile that will be fetched)
cloud:
config:
uri: {servicePortalURL}/configserver/v1
username: {servicePortalappID}
password: {servicePortalappSecret}
Thats all that is needed to use the Spring boot client.
The client comes with a fallback mechanism which can be enabled to handle cases when there is a network outage, or if the Config service is down for maintenance. When you enable the fallback, the client adapter will "cache" the computed properties on your local filesystem. To enable the fallback, just specify the location to store the cache.
spring:
application:
name: foo (Your application name/Prefix you selected while onboarding)
profiles:
active: dev (This is the profile that will be fetched)
cloud:
config:
uri: {servicePortalURL}/configserver/v1
username: {servicePortalappID}
password: {servicePortalappSecret}
fallbackLocation: /path/to/fallback/location
If you have any sensitive properties e.g. passwords, storing it locally in clear text is a security risk. So if you do enable the fallback mechanism, and you also have some sensitive properties, the client can encrypt them for you. Just add the "Spring RSA" dependency jar to your pom.xml and specify the keystore in your bootstrap.yml. e.g.
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-rsa</artifactId>
<version>{latest_jar}</version>
</dependency>
bootstrap.yml
encrypt:
keyStore:
location: file:///path/to/keystore.jks
password: ConfigServiceIstheBest!
alias: myAlias
You can read more about about Spring RSA Encypytion here - http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_key_management
Please open an issue here on GitHub if you have a problem, suggestion, or other comment.
Pull requests are welcome and encouraged! Any contributions should include new or updated unit tests as necessary to maintain thorough test coverage.
spring-config-client-fallback is provided under the Eclipse Public License - Version 1.0