Routes

Infra > Routes. The whole routing table, in the order the gateway reads it, and the editor every route is opened in. This is the screen you spend the most time on.

The Routes screen: five routes in order, with their access badges, what they match and their upstream

Five routes in the order they are read. Billing, Docs portal and Inventory carry the UI mark, Billing and Orders API require a session (AUTH), Inventory answers by itself in maintenance, and Catch-all on path: /** sits last - a catch-all anywhere else would answer for everything under it.

The list

One row per route: its name, what it decides about access, and one Matching and target column on two lines: what it matches, then where it sends. Order is significant - the first route that matches wins - so the table is ordered, not sorted.

Duplicate makes a copy with a fresh identity, disabled, placed right after the original. That is the intended way to try a variant: another upstream, another organisation's access, compared side by side without retyping.

Is the target up?

The heart answers it for every route that sends to a service.

Heart When
green the service is found in the cluster with at least one replica ready, or an external target accepts a connection
broken, red no replica ready, the target refuses or does not resolve, or the circuit breaker is open
none not known yet, a route that answers by itself, or a disabled route

The gateway checks every 30 seconds, in the background: it reads the replica count Docker or Swarm declares, and opens a bare TCP connection to anything else (a Kubernetes service, an external host). No HTTP request is sent, so the upstream sees no call, no sign-in and no line in its logs. Each node checks from where it stands. When a heart changes, the list follows without a reload.

Three buttons in the banner

The editor

Clicking a row opens the route in the right drawer. The drawer is in the URL - /infra/routes/:id/:section - so a section can be bookmarked and a refresh comes back to it.

The route editor open on Target, with the section list on the left

The editor on Orders API: the section list on the left with its stars and its counts, and the Target panel on the right - mode, upstream, the two waits, the circuit breaker and the API contract.

The name sits in the header. The left column lists the sections, grouped:

Group Sections
- Target, Identity, OpenTelemetry
Filters Security, Predicates, Gates, Rate limits
Modifiers Incoming, Outgoing, Auth forward
UI Locales, Color scheme, User button, User info, Custom

Identity is what the route knows about the caller. Two sections spend it: Auth forward sends it to the service, User info puts it on the page. OpenTelemetry decides whether the route is traced (see traces).

Reading the marks

What is missing, and Save

Save stays disabled until the route is valid and something has changed. Beside it, a red N to fix button lists every gap: each line names the section and jumps to it. There is no hunting through fifteen sections for the field that is wanted.

Saving keeps the drawer open and applies the route at once. Closing with unsaved changes asks first, and while there are unsaved changes a click outside does not close the drawer.

Sections that go quiet

The Color scheme section of a UI route, with its mechanism, tag name and stored-theme override

A UI section once the box is ticked: here Color scheme, which says how the served application takes a light or dark choice.

The Target section

The mode decides everything else on the panel.

Mode What the route does
Proxy Fetches from a service and hands back what it says
Redirect Sends the browser elsewhere
Maintenance Serves the built-in unavailable page
Respond Builds an answer from a template, calling nothing
Files Serves files uploaded on the route - a font, a stylesheet, a script - calling nothing

On a proxy route you also set:

The Predicates section: a path predicate, a method predicate and a header predicate with two accepted values

The bricks stack in a panel, each with its own explanation and its own remove button. Here: two path patterns, four methods, and a header that accepts a short list of values.

Predicates, gates, filters

The sections that hold bricks are the vocabulary of routing, and they have their own reference:

The Incoming section: a strip-prefix filter and two set-request-header filters, one of them reading a vault entry, each with arrows to reorder it

Filters apply in the order they are listed, and the arrows on each card move it up or down.

Common mistakes