https://github.com/piszmog/cloud-config-client-autoconfig
Auto Configuration for creating Config Clients
https://github.com/piszmog/cloud-config-client-autoconfig
cloud config-server file json
Last synced: 8 months ago
JSON representation
Auto Configuration for creating Config Clients
- Host: GitHub
- URL: https://github.com/piszmog/cloud-config-client-autoconfig
- Owner: Piszmog
- License: mit
- Created: 2018-04-16T01:18:50.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-24T03:44:56.000Z (over 1 year ago)
- Last Synced: 2024-10-24T18:20:52.683Z (over 1 year ago)
- Topics: cloud, config-server, file, json
- Language: Java
- Homepage:
- Size: 172 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
This project has been archived.
I stopped using this library and cannot ensure it is working correctly. Additionally, every new version of Spring would sometimes break builds; it became too much to manage.
# Cloud Config Client AutoConfig
## Description
Spring Auto-configuration library for [Cloud Config Client](https://github.com/Piszmog/cloud-config-client).
__Cloud Config Client AutoConfig 3.3.x__ is compatible with
| Dependency | Version |
| :---: | :---: |
| Spring Boot | 2.4.x |
| Spring Cloud Services | 3.2.x.RELEASE |
__Cloud Config Client AutoConfig 3.2.x__ is compatible with
| Dependency | Version |
| :---: | :---: |
| Spring Boot | 2.2.x - 2.3.x |
| Spring Cloud Services | 3.1.x.RELEASE |
__Cloud Config Client AutoConfig 2.x__ is compatible with
| Dependency | Version |
| :---: | :---: |
| Spring Boot | 2.1.x |
| Spring Cloud Services | 2.x.x.RELEASE |
__Cloud Config Client AutoConfig 1.x__ is compatible with
| Dependency | Version |
| :---: | :---: |
| Spring Boot | 1.5.x |
| Spring Cloud Services | 1.5.x.RELEASE |
Creates Spring Beans for `DecryptConfigClient`, `EncryptConfigClient`, `FileConfigClient`, and `PublicKeyClient`. Simply
inject the beans where needed.
## Usage
To use, add the GitHub repository as a repository
```xml
github
https://maven.pkg.github.com/Piszmog/cloud-config-client-autoconfig
true
```
Note: you will need to authenticate with GitHib. See [docs]([url](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#authenticating-to-github-packages)).
Then add the dependency.
```xml
io.github.piszmog
cloud-config-client-autoconfig
${cloud-config-client-autoconfig.version}
```
### Local Config Server
Local Config Server is considered a locally running application setup as a Config Server.
(see [Spring Config Server](https://github.com/spring-cloud/spring-cloud-config/tree/master/spring-cloud-config-server)).
### Spring Cloud Config Server (PCF)
When deploying applications to PCF, a Config Server service can be created to. Once created,
applications deployed to the space can bind to the service.
### Disabling Clients
To disable any of the clients, add the following to the application's configuration file.
```yaml
cloud:
config:
client:
decrypt:
enabled: false
encrypt:
enabled: false
file:
enabled: false
publickey:
enabled: false
```
### Loading Files
`FileConfigClient` bean allows for the ability to pull down files either from a specified branch or from the default branch.
If pulling from the default branch, files __must__ be located in a subdirectory.
## Adding JSON Files as Property Sources
The Config Server Client will only pull down `.properties` and `.yml`/`.yaml` files for an application's configuration (property sources). As
more microservices move to _code by configuration_, these files can get very large and hard to maintain. Splitting configurations
out into JSON files that do not need to follow the Config Server's [naming convention](https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.1.RELEASE/#_quick_start)
can help to better organize an application configuration.
Leveraging the `FileConfigClient` bean, JSON files can be loaded as property sources. This allows for `ConfigurationProperties`
to have JSON values be injected into their fields.
To add a file as a property source, update the application configuration to have the following,
```yaml
cloud:
config:
client:
file:
resources:
- directory:
files:
-
-
...
- directory:
files:
-
-
...
...
```
Where,
- `` is the directory path to the following files -- example `nonprod/example` or `configs`
- Sub-directory __must__ not be `null` or blank.
- `` is the JSON, YAML, or Properties file to load that is located in the specified sub-directory
### Specifying Configuration
Adding JSON files to be property sources can either be done in the `bootstrap.yml` (embedded with the application), in an embedded
application configuration, or in the Config Server.