Skip to content

ConfigHub

The most common question: "This is great, but how do I manage configuration across 100 instances without SSH-ing into each one?"

ConfigHub is the answer — a management portal for Cocoar.Configuration deployments.

The Problem

Cocoar.Configuration handles the runtime side: loading, merging, reacting, encrypting. But when you operate dozens or hundreds of instances, the operational questions are different:

  • How do I push a config change to all production instances?
  • Which instances have expired feature flags?
  • When was the last certificate rotation, and which instances still use the old cert?
  • A customer reports an issue — what's their current configuration state?

File-based config with manual deploys doesn't scale. You need a control plane.

What ConfigHub Provides

Configuration Management

Push config changes to instances or groups of instances without redeployment. Version history, diff view, rollback.

Secrets Lifecycle

Certificate management, automated key rotation, encrypted secret distribution. No more managing N certificates for N instances manually — ConfigHub handles the lifecycle centrally and distributes keys to instances.

Feature Flag Control

Enable/disable flags per instance, tenant, or environment. See which flags are active, which are expired, audit who changed what and when.

Health Dashboard

Real-time health across all instances. Drill down from fleet overview to individual rule failures. Alert on degraded/unhealthy state before customers notice.

Telemetry

Rich per-rule health snapshots, recompute timing, provider error rates, configuration drift detection — beyond what OpenTelemetry counters provide.

Architecture

ConfigHub connects to your instances via the standard provider model. It's just another configuration source — the library doesn't know or care whether the bytes come from a file, HTTP endpoint, or ConfigHub:

csharp
builder.AddCocoarConfiguration(c => c
    .UseConfiguration(rule => [
        rule.For<AppSettings>().FromFile("appsettings.json"),     // Local defaults
        rule.For<AppSettings>().FromConfigHub(),                   // Remote overrides from ConfigHub
    ]));

The FromConfigHub() provider uses the existing reactive pipeline — changes pushed from ConfigHub trigger the same recompute/merge/notify cycle as a file change. No special runtime behavior.

Data Flow

ConfigHub Portal                    Your Instances
┌──────────────┐                   ┌──────────────────┐
│  Dashboard   │                   │  ConfigManager    │
│  Config UI   │ ── push/pull ──→  │  FromConfigHub()  │
│  Flag Control│                   │  reactive merge   │
│  Health View │ ←── telemetry ──  │  OpenTelemetry    │
└──────────────┘                   └──────────────────┘

Instances report health via standard OpenTelemetry. ConfigHub connects via OTLP — no proprietary agent or sidecar.

Licensing

LibraryConfigHub
LicenseApache-2.0 (free, forever)Commercial (free tier available)
What you getFull config, flags, entitlements, secrets, providers, analyzersManagement UI, push delivery, cert lifecycle, telemetry dashboards
DependencyStandaloneNeeds the library
Required?N/ANo — the library works fully without it

The library does not phone home, require a license key, or degrade without ConfigHub. It's a complete product on its own. ConfigHub is for teams that need the operational layer.

Status

ConfigHub is in the design phase. Architecture, data model, and provider protocol are being defined. A private preview is planned after the cloud providers ship.

If you're interested in early access, watch the GitHub repository for announcements.

Released under the Apache-2.0 License.