Team management is an Enterprise-only feature. Enterprise plans are detected automatically when your Polar.sh license has
limitActivations >= 30.
If you need shared access but have not subscribed yet, see Pricing.Roles
Team tokens are assigned one of two roles:| Role | Proxy Access | View Logs | View Settings | Modify Settings | Manage Tokens |
|---|---|---|---|---|---|
| Admin | Yes | Yes | Yes | Yes | Yes |
| Viewer | Yes | Yes | Yes | No | No |
- Admin tokens have full access — they can modify settings (blocklists, IP whitelist, retention) and manage other team tokens.
- Viewer tokens can proxy MCP requests and view the dashboard, but cannot change any configuration.
Token Lifecycle
Creating a Token
- Navigate to the Team page in the ThornGuard dashboard.
- Enter a label for the token (e.g., “CI Pipeline” or “Alice’s Workstation”).
- Select the role — Admin or Viewer.
- Click Create Token.
- Copy the token immediately — it is shown only once.
Using a Token
Team tokens are used exactly like a primary license key. Pass the token in thex-thornguard-license header:
Revoking a Token
- Navigate to the Team page.
- Find the token in the list.
- Click Revoke.
BLOCKED_AUTH response.
Expiry and Usage Tracking
The current backend stores lifecycle metadata for enterprise team tokens:- optional expiry timestamps
- last-used timestamps
- revocation timestamps
- revocation actor metadata
The live dashboard UI currently focuses on create and revoke flows. More
advanced token lifecycle editing is available through the backend management
API as those UI surfaces roll out.
Storage
Team tokens are stored in theteam_tokens D1 table:
| Column | Type | Description |
|---|---|---|
id | INTEGER | Primary key (auto-incrementing). |
parent_license_hash | TEXT | SHA-256 hash of the parent enterprise license. |
token_hash | TEXT | SHA-256 hash of the team token (the raw token is never stored). |
label | TEXT | Human-readable label for the token. |
role | TEXT | admin or viewer. |
created_at | DATETIME | UTC timestamp of token creation. |
updated_at | DATETIME | Timestamp of the most recent token metadata update. |
expires_at | DATETIME | Optional expiry timestamp. |
last_used_at | DATETIME | Last successful use time for the token. |
revoked_at | DATETIME | When the token was revoked, if applicable. |
revoked_by | TEXT | Actor or credential that revoked the token. |
All audit logs generated by team tokens are associated with the parent license’s
license_hash, ensuring centralized visibility across the entire team.