ShieldGate Docs

First proxy

Publish and attach the Proxy

Ensure the data plane loads your tenant snapshot.

Goal

Confirm the Proxy is subscribed to your tenant and has loaded the latest config version.

Prerequisites

  • Topology created (host, cluster, route).
  • Shared DataPlane:InternalApiKey identical on Api and Proxy.
  • Redis enabled for multi-instance notify (optional for single-node pull on startup).

Steps

1. Note your tenant id

In the console (Tenants or JWT claims) copy the tenant GUID.

2. Point the Proxy at the tenant

Set on the Proxy:

{
  "DataPlane": {
    "ControlPlaneBaseUrl": "https://localhost:7279",
    "TenantId": "<your-tenant-guid>",
    "InternalApiKey": "<same-as-api>",
    "AllowEmptyConfig": false
  }
}

Restart the Proxy if it was started with a different tenant.

3. Publish (if needed)

Open Ops → Config and Publish, or rely on auto-publish from topology writes.

Publish stores a snapshot and notifies channel shieldgate:config:{tenantId} when Redis is enabled. Proxies then pull:

GET /internal/v1/config/snapshots/{tenantId}/{version}

4. Send a test request

curl -v -H "Host: app.localhost" http://localhost:<proxy-port>/

Adjust host and port to your setup.

Verify

  • Proxy /ready returns success and a configVersion.
  • Request reaches upstream (status from your app, not Proxy 404/503).
  • Admin Data plane nodes / analytics may show heartbeat activity.

Pitfalls

  • Auto-publish skipped with skipPublish: true leaves Proxy on old version.
  • Rollback creates a new version that reactivates a prior payload—history stays immutable.

Next

Health and readiness