Four kinds of rule
Open Controls → Comply in platform.opper.ai.Model allowlist
Pick which models are reachable, on four axes. Leave any axis empty to skip it.
A live counter shows “N of M models match” so you can check the rule’s reach before saving.
When a child rule inherits from a parent, items the parent disallows are dimmed in the picker. A child rule can only narrow what the parent permits.
Trace retention
By default Opper keeps only metadata (model, tokens, cost, latency). A retention rule turns on full trace storage: set a number of days, 1 to 30, and the request, response, and spans in scope are kept that long, then deleted. With no rule (or 0 days), content is never written. Organization or project scope only.Budget
If an org-level budget is tighter than a project-level one, the org limit wins. Organization or project scope only.
Zero Data Retention (ZDR)
No config. Enabling a ZDR rule locks calls in scope to ZDR-eligible providers. Opper never writes request and response content to disk; it keeps only the usage counters needed for billing. The rule shows how many catalog models qualify. Organization or project scope only.Where it applies
How scopes layer
Rules at different scopes layer rather than override. A project’s effective allowlist is the intersection of every allowlist that touches it, so org rules narrow what projects can do. You can never loosen at a lower scope.Where you see the result
A Comply event appears on the trace span with a Scale icon and one of two statuses:- Passed: the call satisfied every Comply rule in its chain.
- Blocked: a rule rejected the call. The span carries the error and the event identifies which rule.