On this page

ResourcesRoles & limits

Roles & limits

A self-hosted qbrix has no usage limits: no cap on selections, experiments, seats or API keys. What it does enforce is who may do what, and a rate limit that protects the API from runaway clients.

Rate limits

A per-caller abuse guard protects the two operational endpoints:

EndpointRate limited
/api/v1/agent/selectYes
/api/v1/agent/feedbackYes
Pools, experiments, gatesNo

Authentication endpoints (login, register, refresh, forgot-password, reset-password) carry their own separate pre-auth limiter, applied per IP and per email, returning 429 with a Retry-After header.

Roles & permissions

Every workspace member holds one of three roles. Permissions are granted as scopes.

CapabilityAdminMemberViewer
View pools, experiments, gatesYesYesYes
Create & edit poolsYesYes—
Create & edit experimentsYesYes—
Delete pools & experimentsYesYes—
Call select()YesYesYes
Send feedback()YesYes—
Edit feature gatesYesYes—
View metrics & insightsYesYesYes
View the event logYesYesYes
Invite & remove membersYes——
Assign rolesYes——

Viewer can read every resource and call select(), but cannot write anything — including feedback. That combination is deliberate: it lets a read-only integration serve decisions without being able to influence what the policy learns. Member covers all day-to-day experiment work. Admin adds team and role control.

API keys carry their own scopes, set per key when you create it. A key never has more access than the role that created it.

Next steps