Skip to content
Docs / dflux EdgeGuard
ContactGet started

Routing

CRUD for content-based routing rules through the unified rules surface. See the routing schema for the rule shape and the routing engine for the evaluation model.

Drive these operations with d3x-edgectl (see the admin API overview). Path names below are historical labels for EdgeControl RPCs — they are not HTTP URLs. Every write here is hot-reloaded.

Endpoints

Routing rules are managed on the unified rules surface at /admin/rules, shared with policy, transformation, and rate-limit rules. Each rule carries a type discriminator; for routing it is "routing". See Admin API → Policy for the full surface and the global name-uniqueness rules.

GET /admin/rules?type=routing

Lists routing rules. Without the ?type=routing filter the response interleaves all four rule types, each entry carrying its type.

POST /admin/rules

Creates a routing rule. The body is a RoutingRule with "type": "routing". Rule names are globally unique across all four types: 409 if any rule already owns the name.

GET /admin/rules/{name}

Returns one rule by name. The response carries an ETag for optimistic concurrency.

PUT /admin/rules/{name}

Updates an existing routing rule. Returns 404 if no rule owns the name — this is not an upsert; create through POST instead. If the body declares a type, it must match the existing rule's type. Send the rule's ETag in If-Match for a guarded update.

DELETE /admin/rules/{name}

Deletes one rule by name. Returns 404 if no rule owns the name.

Examples

Canary 5%

A weighted split routes 5% of UDM-targeted traffic to a canary producer. Weights are percentages that must sum to 100.

Bash

Cutover via weight

Shift the canary to 100% in one update:

Bash

Maintenance window

A time window routes AUSF traffic to a failover producer during a Sunday maintenance slot. Days use full names; times are HH:MM in the rule's timezone.

Bash

Sticky sessions

Set sticky_key to pin a session to one producer by a request field, with a TTL on the binding:

Bash

Where to go next