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:InternalApiKeyidentical 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
/readyreturns success and aconfigVersion. - 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: trueleaves Proxy on old version. - Rollback creates a new version that reactivates a prior payload—history stays immutable.