Edges — Versola Docs
VersolaVersola/docs
Pre-1.00.7.1versola.kzGitHub

Edges

The Edges screen of the admin console — register an edge, rotate its signing key, see the tenants behind it and decide whether it demands a DPoP nonce.

An edge record tells central that a running edge deployment exists and which public key proves that it is the real one. Use this screen to register that record, rotate its key and switch the DPoP nonce requirement for the calls the edge proxies. For what edge itself does, see Edge overview.

Before you start

The Edges item sits under GLOBAL in the sidebar: edges are not tenant-scoped. You need the edges:read permission to see the screen. Creating an edge, rotating or deleting a key, deleting an edge and switching the nonce requirement need edges:manage; without it the buttons and the checkbox are hidden or read-only.

What an edge record is

central stores four things per edge:

FieldMeaning
Edge IDThe name of the deployment, for example edge-default. Set once, never edited.
Public keyThe RSA public key (JWK) that matches the private key the edge holds. central never stores the private key.
Old public keyPresent only while a key rotation is in progress.
Require DPoP nonceWhether this edge demands a DPoP nonce on every proxied call. New edges start with it on.

An edge instance identifies itself to central with a signed token. It signs a JWT with RS256 using its private key, puts its key-id in the kid header and its id in an edge_id header, and sends the token to central. central finds the edge record by edge_id and verifies the signature against the stored public key, or against the old one during a rotation. The token lives 10 minutes and the edge renews it every 9. With that token the edge pulls its configuration from central (resources, endpoints, permissions, roles, clients, presets, keys and the DPoP policy) every configuration-cache-refresh-interval.

auth reads the same records. When edge calls auth on behalf of a signed-in user, it sends a short-lived assertion signed with the same key, and auth checks it against the edge’s public key and against the tenants linked to that edge. An assertion from an edge that is registered but not the one behind the token’s tenant is refused.

How the record maps to edge configuration

The console and the edge configuration file must agree on three values. See Edge configuration for the file itself.

Edge configuration keyWhere the value comes from
idEdge ID in this screen.
key-idKey ID, shown once when you create or rotate. It is the UTC creation time, in the form 2026-10-14_07-29-17.
private-keyPrivate Key, shown once at the same moment. central generates a 2048-bit RSA key pair and keeps only the public half.

Creating a record deploys nothing. The CLI and the Helm chart generate the edge configuration. On a fresh installation central also seeds the edges named in its bootstrap configuration (edge-default in a CLI installation) and links the default tenant to the first one. Register an edge yourself when you run an additional one.

The list

Edges — one row per registered edge
Edges page with a single edge, edge-default, and the pencil and cross icons on its row

Each row shows the edge ID, a pencil (edit) and a cross (delete). A Key Rotation badge appears next to the ID while the edge still has an old key. Click the row to expand it.

An expanded edge: linked tenants and the DPoP nonce setting
Expanded edge-default row with the tenants acme, acme-fapi and default under Linked Tenants and the DPoP Nonce checkbox ticked

Linked tenants

Linked Tenants lists the tenants whose Edge field points at this edge. You cannot change the links here. Set them in the tenant form, see Tenant. With no linked tenants the row says “No tenants assigned to this edge”.

DPoP nonce

The DPoP Nonce section holds one checkbox, Required on every proxied call, with an i button that explains it. It controls RFC 9449 section 9 on the calls this edge proxies to your API.

StateWhat the edge does
OnEvery DPoP proof must carry a nonce the edge issued. A call without one gets use_dpop_nonce and a fresh nonce in the DPoP-Nonce header, and the client retries with it. The cost is one extra round trip per client per nonce lifetime, not per request.
OffThe nonce claim is not read and no nonce is issued. There is no “prefer” mode.

The change reaches the edge on its next configuration sync. Before you turn it on, check that every client that calls through this edge with DPoP implements the use_dpop_nonce retry; otherwise its proxied calls start to fail. Turning it off breaks nothing.

The setting covers this edge and the calls it proxies. The /token and /userinfo endpoints of auth follow the tenant’s Require DPoP nonce setting in Challenges & Security. For the background, see Sender-constrained tokens.

Create an edge

  1. Click + Create Edge. If the list is empty, the same button sits in the empty state.
  2. Type the part of the ID after the fixed edge- prefix. Use lowercase letters, numbers and hyphens, for example us-east-1. The form shows an error if the full ID is invalid or already exists.
  3. Click Create Edge.
Create Edge — the ID always starts with edge-
Create Edge form with the fixed edge- prefix in front of the Edge ID field and Cancel and Create Edge buttons

The console then shows the Edge Key Generated banner with the Edge ID, Key ID and Private Key. The private key is not stored and cannot be shown again. Click Copy Private Key, put the three values into the edge configuration, and click I’ve Saved It.

Rotate a key

Rotate the key when it may have leaked or on your own schedule. Both keys work during the transition, so no edge instance has to stop.

  1. Click the pencil on the edge row.
  2. Click Rotate Key and confirm. The console shows an Edge Key Rotated banner with the new Key ID and Private Key. Save them.
  3. Replace key-id and private-key in the configuration of every edge instance and restart them.
  4. When no instance uses the old key any more, open the edge again and click Delete old key. After that only the new key works.
Edit Edge — Rotate Key while no old key exists
Edit Edge page for edge-default with the Rotate Key and Close buttons

While an old key exists, Rotate Key is replaced by Delete old key. You cannot start a second rotation before you finish the first.

Delete an edge

Click the cross on the row and confirm. The record and its keys are removed, and every tenant that pointed at it is left without an edge. An edge instance still running with that id can no longer authenticate to central. Link the tenants to another edge before you delete.

Next steps