Amends 0210: each
tenant has a handle, separate from its display name.
Context
A tenant appears in URLs and in the switcher. 0210 gives it an identity record but no handle rules, so signup cannot check a name. The owner’s answer to the screenshot gap review of 2026-10-21 (item 4) fixes the handle.Decision
- Handle and display name are separate. The display name is free text and can change freely. The handle is the URL-safe identifier.
- Format. Lowercase slug of
[a-z0-9-], with length bounds (open detail 1). - Uniqueness. A handle is unique across all tenants of a product.
- Reserved words. A reserved-word list blocks system names, product names, brand names and route segments.
- Lookalikes. The reserved-list check and the new-handle uniqueness check compare a normalised form that folds ASCII lookalikes (
l,1andi;oand0;rnandm;vvandw), so a confusable handle cannot squat a reserved or taken one. - Availability check. An availability-check endpoint answers whether a handle is free, valid and not reserved. Signup uses it as the user types.
- Changing a handle. A handle can change. The old handle redirects to the new one for 90 days, then answers 410 (open detail 5). It is never released to another tenant: it stays reserved to the original tenant for good.
- Purged tenants. When a tenant is purged, its handles stay reserved as tombstones for at least 1 year.
Consequences
- A rename of the display name never breaks a link.
- The reserved list is data that grows with routes and products, so it needs an owner (service-tenancy).
- An old link can never lead to a different tenant, so handle changes cannot be used for phishing through stale links.
- Retired and tombstoned handles accumulate; the namespace shrinks slowly.
Enforcement
planned — a validation test covers the format, the length bounds, the reserved list and the lookalike folding; an endpoint test covers availability, including a retired and a tombstoned handle; a route test asserts the 90-day redirect and the 410 after it.Open details
The owner did not give these; the conservative default below applies until an ADR changes it.- Length and shape. 3 to 32 characters, starting with a letter, with no leading, trailing or repeated hyphen.
- Who changes it. A tenant owner.
- Rate of change. At most one handle change per 30 days.
- Case. Input is lowercased before every check.
- After the redirect period. The old handle answers 410 Gone, not 404.