Skip to content

Easily consume configuration from Spring Cloud Config servers in your Python applications

License

Notifications You must be signed in to change notification settings

realbucksavage/spring-config-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spring-config-client

A Python client for Spring Config Server.

This library is inspired by amenezes/config-client and is essentially a toned-down fork that I customized to fit my own needs.

Project goals

  • Provide a basic client
  • Provide basic authentication
  • Add support for CloudFoundry

Installation

Install using pip

$ pip install spring-config-client

Usage

The very basic usage of this library looks like this:

from spring_config import ClientConfigurationBuilder
from spring_config.client import SpringConfigClient

config = ClientConfigurationBuilder().app_name("test-application").build()

c = SpringConfigClient(config)
c.get_config()

By default, ClientConfigurationBuilder builds a ClientConfiguration object with server address and application profile set to http://localhost:8888 and development. These can be changed like this:

Here are some examples:

# Fetch from http://someserver.com using profile "development"
config = (
    ClientConfigurationBuilder()
    .app_name("test-application")
    .address("http://someserver.com")
    .build()
)

# Fetch from http://someserver.com using profile "production"
config = (
    ClientConfigurationBuilder()
    .app_name("test-application")
    .address("http://someserver.com")
    .profile("production")
    .build()
)

Authentication

If your configuration server requires to use basic authentication, you can create the client configuration like this:

from spring_config import ClientConfigurationBuilder

config = (
    ClientConfigurationBuilder()
    .app_name("test-application")
    .authentication(("username", "password"))
    .build()
)

Configuration options

The ClientConfigurationBuilder allow controlling these parameters.

  • Application Name : app_name("some-app") - Default None, required.
  • Server Address : address("http://some-server") - Default http://localhost:8888, optional.
  • Profile : profile("production") - Default development, optional.
  • Branch : branch("devel/0.1") - Default master, optional.

Requesting features

Please use the issues section to request new features and I will try to take out my time to work on them. Contributions in any sorts are always welcome :)

About

Easily consume configuration from Spring Cloud Config servers in your Python applications

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages