Reference
Admin dashboard
A practical walkthrough of the web dashboard at /dashboard: sign-in, the Home overview, Products, Licenses, Team, Integration, and Settings.
The issuing service serves a web dashboard at /dashboard (e.g. https://keyright.delta1labs.com/dashboard). It’s a branded, dependency-free UI over the /admin/* API — the day-to-day way a vendor runs licensing without touching curl. Everything here is also available on the API (see HTTP API reference); this is a practical walkthrough of the screens.
Signing in
The dashboard supports two sign-in paths:
- Email + password + TOTP. Enter your team email and password (
POST /auth/login), then a 6-digit code from your authenticator app (POST /auth/mfa). MFA is mandatory and self-enrolls on first login — the first sign-in shows a QR code to add to your authenticator, then asks for a code to confirm. An owner provisions a member’s initial password from Team → set password. - Google / GitHub. Click the provider button to sign in via OAuth. The OAuth callback runs on your own domain, so the provider consent screen shows your brand, not a third-party auth host. Your account is matched by verified email.
A successful sign-in mints a short-lived session token that authorizes the rest of the dashboard. Sign-in is per-tenant; on the hosted service your workspace is resolved from your email.
Home
The landing view is the workspace overview (GET /admin/overview):
- Subscription summary — your plan, status, and the next renewal date.
- Headline counts — products, total/active licenses, revoked, expired, expiring-soon, activations.
- Charts — licenses issued per month (last 6 months) and a per-product breakdown of licenses and activations.
- Upcoming renewals — the next licenses to expire, so you can reach out before they lapse.
Products
Lists your products (GET /admin/products), each showing its tiers as badges (with seat counts and entitlements), and license counts.
- Add product — name + slug; the slug is what your app’s SDK sends as
Product. - Tiers — add or edit a per-product tier (seats + an entitlement template applied to new licenses of that tier).
- Enable trials — set a trial length, tier, and seats to turn on self-service free trials for the product. See Self-service free trials for the customer-facing flow.
Licenses
The license table (GET /admin/licenses), filterable by product.
- Issue — pick a product and tier, set licensee, seats, expiry, and contact email; the key is generated for you. Per-row actions cover revoke, renew, transfer, per-machine deactivate, and generating an offline lease for an air-gapped machine.
- Drilling into a license shows its activations — the machines it’s active on, with device metadata and approximate location — so you can see where seats are in use and free one if a device is gone.
Team
Manage who can access the workspace (/admin/team, owner only). Roles:
| Role | Can do |
|---|---|
| owner | Everything, including managing the team, workspace, billing, and webhook secret. |
| admin | Issue/revoke/manage licenses, products, tiers, resellers. |
| support | Assist customers: free seats, deactivate machines. |
| billing | Billing/plan-related access. |
| viewer | Read-only. |
Inviting a member emails them a one-time token (when SMTP is configured); the dashboard also shows the token once so you can share it manually if email isn’t set up.
Integration
The developer hand-off tab (GET /admin/account), everything you paste into your app’s SDK and your payment provider:
- Endpoints — your service base URL plus the
activate/validateURLs. - Signing public key — the base64 key to embed in your shipping build (validation is done against this; the private key never leaves the server).
- Webhook — your per-tenant fulfillment webhook URL and secret (rotate it here); wire your store to it so paid orders auto-issue keys.
See Getting started and .NET SDK integration for what to do with these.
Settings
Workspace-level settings (owner):
- Workspace name & logo — the display name and company logo shown across the dashboard (
POST /admin/workspace). - Plan & upgrade — your current plan and quotas; Upgrade opens a Lemon Squeezy checkout (
POST /admin/billing/checkout), and your plan flips automatically once the subscription starts.
See also
- HTTP API reference — the endpoints behind every screen.
- Self-service free trials — enabling and wiring self-service trials.
- Getting started — the end-to-end vendor path.