Teams & privacy
Bring colleagues into a workspace with the right level of access, and keep sensitive values out of prompts that leave your network.
Roles
| Role | Can do |
|---|---|
| Owner | Everything: billing and credits, routing policy, spend caps, members, plus everything a Developer can do. |
| Developer | Providers, models, API keys, playground, evaluations and shadow tests. Cannot change billing, policy or members. |
| Viewer | Read-only: dashboard, requests, models, reports. |
The person who created the workspace is always an Owner. Roles are enforced on the server for every write, not only hidden in the interface.
Inviting people
- Open Team → Invite, enter an email address and choose a role.
- They receive a link. If email is unreliable in your setup, copy the link from the members table and send it yourself.
- They set a password, join your workspace and share its models, keys, credits and history.
Change someone's role from the members table at any time, or remove them — which takes effect immediately. An email that already owns its own workspace can't join another one.
Redacting sensitive data
With redaction on, values are replaced with placeholders before the prompt is sent to a provider, and optionally put back in the answer, so your application sees the real values and the provider never did.
| Type | Detects |
|---|---|
email | Email addresses |
phone | Phone numbers, including international formats |
card | Card numbers, checked with the Luhn algorithm to avoid false positives |
aadhaar, pan, ssn | Indian Aadhaar and PAN, US social security numbers |
ip | IPv4 addresses |
secret | API keys and tokens (sk-, ghp_, Slack tokens and similar) |
| Custom | Your own regular expressions, one per line — account numbers, internal ids, anything |
A masked prompt looks like this:
Email cherry@example.com about card 4111 1111 1111 1111, ref ACC-123456
->
Email [EMAIL_1] about card [CARD_1], ref [CUSTOM_1]The mapping exists only for the life of the request. Stored request previews keep the masked version, and each request records how many values were masked. Redaction also applies to streamed responses.
What LinuxAir stores
See the security page for the full table. In short: provider keys are encrypted, LinuxAir API keys are stored as hashes, prompt and response previews are capped at 400 characters and cleared after 90 days, and everything belongs to a workspace whose ownership is checked on every call.
Spend caps
Owners can set a daily and monthly USD cap on model spend, plus a daily cap per API key — useful for giving a contractor or a test environment a hard ceiling. Over the cap, the API returns 402 budget_exceeded until the period rolls over, and one alert email goes out when usage crosses your alert percentage.