Skip to main content

Configuration Guide

For administrators setting up Rivaro for their development team. Covers AppContexts, detection keys, rate limits, and organization requirements.

Where to find it in the app​

AppContext and detection-key configuration are administered from two adjacent surfaces:

WhatWhere in the app
AppContexts (provider routing, allowed models, detectors, rate limits)Dashboard → Administration → AI Estate → RUNTIME stage → AI Agents list
Detection keys (proxy authentication tokens)Dashboard → Administration → API Credentials
Org statusDashboard → Administration → Org Management

The developer then uses the detection key and your Rivaro proxy URL to start sending traffic — see the Use Hosted Rivaro guide.

Overview​

Before a developer can send traffic through the proxy, an administrator needs to:

  1. Create an AppContext — defines which AI provider to proxy to
  2. Create a Detection Key — authenticates proxy requests and links to the AppContext
  3. Optionally configure — rate limits, allowed models, enabled detectors

AppContexts​

An AppContext is the core configuration object. It tells Rivaro which AI provider adapter to use, which models are allowed, which detectors to enable, and what rate limits apply.

Creating an AppContext​

In the Rivaro dashboard, open Administration → AI Estate → RUNTIME. The AI Agents (AppContexts) list is here. Click Add AppContext, pick your provider adapter, and fill in the form.

FieldRequiredDescription
NameYesDisplay name (e.g. "Production OpenAI", "Staging Claude")
Adapter typeYesProvider identifier (e.g. gpt-4, claude-3-opus, azure-openai)
Allowed modelsNoRestrict which models can be requested. If empty, all models are allowed.
Enabled detectorsNoWhich risk categories to scan for. If empty, all detectors run.
Rate limitNoMax requests per minute for this context
Monthly quotaNoMax total requests per month

Configuration options​

The AppContext has a flexible configuration map for provider-specific settings:

KeyProviderDescription
allowed_modelsAllArray of permitted model names (e.g. ["gpt-4", "gpt-3.5-turbo"])
azureResourceNameAzureYour Azure OpenAI resource name
azureDeploymentNameAzureDefault deployment name
bedrockModelIdBedrockFull Bedrock model ARN
bedrockModelFormatBedrockclaude, llama, mistral, titan, or converse
projectIdVertex AIGCP project ID
locationVertex AIGCP region (default: us-central1)

Governance fields​

For organizations with governance requirements, AppContexts also support:

FieldDescription
OwnerTeam or person responsible for this context
DepartmentOrganizational department
Data classificationSensitivity level of data flowing through
PurposeDescription of what this context is used for

Detection Keys​

A detection key authenticates proxy requests and links them to an AppContext. Each key is bound to exactly one AppContext.

Creating a key​

Open Administration → API Credentials and click Create key.

FieldRequiredDescription
NameYesDescriptive name (e.g. "Production Key", "CI/CD Pipeline")
AppContextYesWhich AppContext this key routes to

On creation, the full key is displayed once:

detect_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ012345
warning

Save this immediately. The full key cannot be retrieved after this screen. Only the prefix and last four characters are stored for display.

Key lifecycle​

ActionHowEffect
CreateAPI Credentials → Create keyKey is active immediately
RevokeAPI Credentials → row's ⋮ menu → RevokeKey permanently stops working
UpdateAPI Credentials → row's ⋮ menu → EditChange name or set expiration
ExpireAutomaticKey stops working after the expiration timestamp

Key properties​

PropertyDescription
idUnique key identifier
displayKeyMasked display (prefix…last4)
nameHuman-readable name
appContextIdLinked AppContext
createdByEmail of the creator
createdAtCreation timestamp
lastUsedAtLast successful authentication
usageCountTotal requests made with this key
expiresAtOptional expiration timestamp

Best practices​

  • One key per environment — separate keys for production, staging, and development so you can revoke independently
  • One key per service — if multiple services use the proxy, give each its own key for usage tracking
  • Set expiration — for temporary access (contractors, trials), set an expiration date
  • Revoke promptly — if a key is compromised, revoke it immediately from API Credentials

Rate Limits​

Rivaro enforces rate limits at multiple levels.

Per-AppContext limits​

Set the Rate limit field on the AppContext form (Administration → AI Estate → RUNTIME → edit AppContext) to limit how many requests per minute can flow through that context. This is the primary knob for controlling proxy throughput.

Global defaults​

If no AppContext-level limit is set, global defaults apply:

ScopeDefaultDescription
Per API key100 req/minRequests per detection key
Per IP60 req/minRequests from the same IP
Auth endpoints10 req/minLogin/auth attempts

Rate limit response headers​

When rate limits are active, every response includes:

HeaderDescription
X-RateLimit-LimitMax requests for this window
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetTimestamp when the window resets

When the limit is exceeded, the response is 429 Too Many Requests with a Retry-After header (in seconds).

Organization Requirements​

Organization status​

The organization must be in ACTIVE status for the proxy to work. Status is visible at Administration → Org Management. Other statuses and their effects:

StatusProxyDashboardNotes
ACTIVEWorksWorksNormal operation
TRIALWorksWorksTrial period with usage limits
TRIAL_EXPIREDBlockedLimitedUpgrade required
CANCELEDBlockedRead-onlyReactivate to resume
ARCHIVEDBlockedBlockedContact support

When the proxy is blocked due to organization status, developers receive a 403 error:

{"error": "Organization is not active"}

Giving credentials to your developers​

After setup, your developers need two things:

  1. Proxy base URL — your Rivaro instance URL (e.g. https://your-org.rivaro.ai)
  2. Detection key — the detect_live_... key you created

They will also need their own AI provider API key (OpenAI, Anthropic, etc.). Rivaro does not store provider credentials — developers pass them in each request via the standard provider auth header.

See the Use Hosted Rivaro guide for the exact SDK configuration your developers need.

Next steps​