Skip to main content

Package for generating application configuration

Project description

Configfacets - Python Client Library

Overview

As applications scale and integrate with multiple systems, managing configurations becomes increasingly complex. Configfacets simplifies this with a Low-Code/No-Code configuration management system using plain JSON—no custom verbs, no complicated syntax. This Python client library facilitates seamless interaction with the Configfacets API, enabling efficient retrieval and management of configuration data.

Our key features are...

Repositories & Versioning: Design configurations as modular, reusable components, store them in a centralized repository, and maintain full version control for better organization and tracking.

Reusability: Add provider and community-contributed repositories as dependencies, reuse configuration templates, pass in customizable values to effortlessly set up and manage your application configurations.

Collaboration: Invite users and teams to repository with precise role-based permissions—Admin, Collaborator, or Viewer—to control access and streamline contributions.

REST APIs: Expose configurations through REST API endpoints. Generate static and dynamic configurations by leveraging facet filters and runtime configuration values in the request context.

Organization Management: Our hierarchical design simplifies managing multi-level organizational structures, team hierarchies, roles, and responsibilities.

Usage

Installation

Ensure you have Python 3.6 or higher installed. Install the library using pip:

pip install configfacets
from configfacets.configuration import Configuration

config = Configuration(
    source="https://configfacets.com/apis/repos/configfacets/core-concepts/appconfigs/resources/collections/api-configurations/exec?format=json",
    source_type="url",
    apiKey="<your_api_key>",
    postBody={"facets": ["env:prod", "cluster:aws", "region:east"]},
)
config.fetch()
resp = config.get_resp()

rabbitMQHost = config.get_value("rabbitmq.host")
rabbitMQPort = config.get_value("rabbitmq.port")

print("RabbitMQ Host:{}, Port:{}".format(rabbitMQHost, rabbitMQPort))

API Reference

Configuration

  • __init__(self, source, source_type, apiKey=None, postBody=None): Initializes the configuration object with a source (URL or file) and source type.
  • fetch(self): Fetches the configuration data from the source.
  • get_resp(self): Returns the fetched configuration data.
  • get_value(self, key_path): Retrieves the value for the specified key path.

Contributing

We welcome contributions! Feel free to connect with us in our Discord community.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

configfacets-0.0.4.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

configfacets-0.0.4-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file configfacets-0.0.4.tar.gz.

File metadata

  • Download URL: configfacets-0.0.4.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for configfacets-0.0.4.tar.gz
Algorithm Hash digest
SHA256 668bef911429da4313f00469ac800e226e7f4c221eb2dd2157da2a37cb4f802c
MD5 00bdd4ed68ac6340657c624fb0707e11
BLAKE2b-256 c8bcc7a74a6fdf2b6846717178be0bfbb6ad1763bc49a78807f726c58eaf6a55

See more details on using hashes here.

File details

Details for the file configfacets-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: configfacets-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for configfacets-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 79d3d05d04d85ef46cc9828bed5bd46c1d13265ebcea0108e305e098417ed274
MD5 6f95c972b6053b9e96866d7821c95c82
BLAKE2b-256 9a9dc0499f049df0e508298a1c08518b86f691343bfb11cb69d67458cdd903fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page