Customer scopes
Per-customer status pages, JWT-verified, with per-customer SLO targets.
A customer-scoped page is one underlying status page that renders
differently per customer. Each customer sees a filtered subset of
metrics and SLOs, with optional per-customer thresholds applied at
render time. The same page can therefore serve a 99.99%
agreement with one customer and a 99% agreement with another,
without duplicating the underlying metric work.
Why customer scopes exist
Enterprise contracts vary. The same backend that an SMB customer
signs at 99.5% may carry a 99.99% clause for an enterprise
customer with a higher-priced contract. Two implementation paths
exist:
- Duplicate the metric definition per customer, with different thresholds.
- Define the metric once and apply per-customer thresholds at render time.
Path 2 keeps a single source of truth for collection and evaluation. Customer scopes implement path 2.
Identity model
Customer scopes use JWT-based identity. The page's access mode is
set to customer_scoped. Observer Cloud verifies tokens against
the public key (or JWKS endpoint) configured on the page, then
reads a configurable claim (typically sub, customer_id, or a
custom claim) to determine which customer is viewing.
A customer must be:
- Defined in the organisation's customer list.
- Bound to the page through the page's customer-binding list.
A token whose claim does not resolve to a bound customer returns 403, even when the token's signature is valid.
SLO overrides
Each customer can carry per-SLO target overrides. When the customer-scoped page renders for that customer, the SLO strip uses the override target. Customers without an override see the default target.
SLO: checkout-api availability
default target: 99.9%
Customer A: no override. renders at 99.9%
Customer B: override at 99.99%. renders at 99.99%
Customer C: override at 99%. renders at 99%
The underlying metric and the burn evaluator remain unchanged. The only differences are the threshold the page renders and the per-customer error budget displayed.
Configuration
See Configure customer-scoped pages for the step-by-step setup.