Documentation Index
Fetch the complete documentation index at: https://docs.opper.ai/llms.txt
Use this file to discover all available pages before exploring further.
Comply is the guardrail layer for your account. You decide which providers and regions are allowed, how long calls are retained, what you’ll spend in a month, and whether sensitive calls must stay inside Zero Data Retention providers.
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.
| Axis | Example |
|---|
| Providers | anthropic, openai, gemini |
| Regions | eu-west-1, us-west-2 |
| Countries | EU only, US only, plus an “Other” bucket for models without country metadata |
| Models | Specific names like anthropic/claude-opus-4-7 |
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
| Field | What it does |
|---|
| Monthly limit | A dollar cap. |
| Soft alert at X% | Default 80. When monthly spend crosses this, email alerts go out. |
| Email alerts | Checkbox. |
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
| Scope | Allowlist | Retention | Budget | ZDR |
|---|
| Organization | ✓ | ✓ | ✓ | ✓ |
| Project | ✓ | ✓ | ✓ | ✓ |
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.
Each event carries the rule name and a scope badge.
In the playground, Comply runs when Project controls is on. A denied model fails the same way it would in production.
Set the strictest policy at organization scope (for example, “EU providers only”). Use project scope for narrower exceptions. The parent constraint always wins; you can’t loosen further down.