Skip to content

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:

RoleCan do
ownerEverything, including managing the team, workspace, billing, and webhook secret.
adminIssue/revoke/manage licenses, products, tiers, resellers.
supportAssist customers: free seats, deactivate machines.
billingBilling/plan-related access.
viewerRead-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 / validate URLs.
  • 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