86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
# Kenaito Config Center Python Client
|
|
|
|
Python client SDK for the Kenaito Config Center.
|
|
|
|
## Features
|
|
|
|
- Fetch application configs from the config center
|
|
- Periodic config sync
|
|
- Config change callback listener
|
|
- Local file cache (fallback when config center is unavailable)
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
cd kenaito-conf-python-client
|
|
pip3 install -e .
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```python
|
|
from kenaito_conf import Config, ConfigClient
|
|
|
|
config = Config(
|
|
base_url="http://localhost:8080",
|
|
app_name="my-app",
|
|
env="daily",
|
|
sync_interval=30,
|
|
)
|
|
|
|
client = ConfigClient(config)
|
|
|
|
# Listen for config changes
|
|
def on_change(changed):
|
|
for k, v in changed.items():
|
|
print(f"config changed: {k} = {v}")
|
|
|
|
client.on_change(on_change)
|
|
|
|
# Start client (fetch configs + enable periodic sync)
|
|
client.start()
|
|
|
|
# Get config
|
|
value = client.get("database.host")
|
|
all_configs = client.get_all()
|
|
|
|
# Stop
|
|
client.stop()
|
|
```
|
|
|
|
## Configuration
|
|
|
|
| Parameter | Description | Default |
|
|
|-----------|-------------|---------|
|
|
| `base_url` | Config center URL | Required |
|
|
| `app_name` | Application name | Required |
|
|
| `env` | Environment (dev/daily/prod) | `dev` |
|
|
| `version` | Config version | `latest` |
|
|
| `token` | Auth token | Empty |
|
|
| `sync_interval` | Sync interval (seconds) | `60` |
|
|
| `ignore_global` | Whether to ignore global configs | `False` |
|
|
| `cache_dir` | Local cache directory | `.` |
|
|
|
|
## Demo
|
|
|
|
```bash
|
|
cd kenaito-conf-python-client-demo
|
|
pip3 install -r requirements.txt
|
|
python3 app.py
|
|
```
|
|
|
|
The demo listens on port `8082` by default. Visit `http://localhost:8082/` to view configs.
|
|
|
|
Environment variable overrides:
|
|
|
|
| Environment Variable | Description | Default |
|
|
|----------------------|-------------|---------|
|
|
| `SERVER_PORT` | Server port | `8082` |
|
|
| `KENAITO_BASE_URL` | Config center URL | `http://localhost:8080` |
|
|
| `KENAITO_APP_NAME` | Application name | `kenaito-springboot-demo` |
|
|
| `KENAITO_PROFILE` | Environment | `daily` |
|
|
| `KENAITO_VERSION` | Config version | `latest` |
|
|
| `KENAITO_TOKEN` | Auth token | Empty |
|
|
| `KENAITO_SYNC_INTERVAL` | Sync interval (seconds) | `30` |
|
|
| `KENAITO_CACHE_DIR` | Cache directory | `.` |
|