Konfigo Wiki¶
Konfigo is a centralized, real-time configuration management service. It lets you declare typed configuration schemas in your application code, push them to a shared backend, and receive live value updates over gRPC — without restarting services.
How it works¶
- Your service declares configuration classes using language-native annotations (attributes in .NET/C#, struct tags in Go, decorators in Python).
- On startup the SDK scans those classes, registers the schema with the Konfigo backend under a versioned label, and loads the current snapshot.
- A long-lived gRPC stream delivers subsequent changes instantly as operators update values in the web UI.
- Each config key tracks a generation counter. Stale or duplicate updates are dropped; only newer generations are applied to the in-memory store.
Where to start¶
-
:material-sitemap: Architecture
System components, domain model, real-time delivery, authentication & authorization
-
:material-rocket-launch: Deployment
Local development, Docker, environment variables, and CI/CD
-
:material-api: REST API
All HTTP endpoints with request/response shapes
-
:material-swap-horizontal: gRPC Protocol
Protobuf service definition and RPC semantics
-
:material-puzzle: SDKs
Client libraries for .NET, Go, and Python
-
:material-play-box: Samples
Minimal runnable apps demonstrating each SDK
Tech stack¶
| Layer | Technology |
|---|---|
| Backend | ASP.NET Core (.NET 10), PostgreSQL 14, Redis 7 |
| Frontend | SvelteKit, Tailwind CSS |
| Transport | gRPC (protobuf), SignalR |
| Auth | SAML 2.0 / OpenID Connect / JWT (configurable) |
| CI/CD | GitHub Actions → DockerHub / GHCR / NuGet / PyPI |
Repository layout¶
konfigo/
├── apps/
│ ├── backend/ # ASP.NET Core server (REST + gRPC + SignalR)
│ └── frontend/ # SvelteKit web UI
├── packages/
│ ├── dotnet/ # .NET client SDK (NuGet)
│ ├── go/ # Go client SDK
│ └── python/ # Python client SDK (PyPI)
├── samples/ # Minimal runnable apps demonstrating each SDK
│ ├── dotnet/ # ASP.NET Core sample using Konfigo.Client
│ ├── go/ # Go sample using the Go SDK + gRPC transport
│ └── python/ # Async Python sample using the Python SDK + gRPC transport
└── docs/ # Extended documentation & wiki