Skip to Content
Admin ConsoleLicensing

Licensing Console

The Licensing section of the Admin Console lets you create policies, issue and manage keys, configure automation, and monitor usage — all without writing code.

Access it from the sidebar: Licensing → Policies | Keys | Floating Seats | Devices | Usage | Audit Log | Automation.


Policies

Policies define the rules for a license: what features are included, how many seats/devices are allowed, when it expires, and how validation works.

Creating a Policy

  1. Go to Licensing → Policies and click New Policy
  2. Step 1 — Enter a name (e.g. “Pro Plan”) and slug (e.g. pro-plan)
  3. Step 2 — Configure dimensions:
    • Key Format — Customize the prefix, charset, segment count/length, and separator. A live preview shows the generated format (e.g. VIG-XXXX-XXXX-XXXX-XXXX)
    • Seats — Enable to limit concurrent users. Set a default max
    • Devices — Enable to limit activated devices. Set a default max
    • Features — Enable to define a set of feature flags (e.g. analytics, export, api-access)
    • Expiry — Enable to set a default expiry in days
  4. Step 3 — Choose validation mode:
    • Online — Every validation hits the API (best for SaaS)
    • Hybrid — Online first, JWT fallback offline (best for desktop)
    • Offline — JWT-only, no network needed (best for air-gapped environments)

Editing a Policy

From the policy list, click the menu → Edit. You can change the name, validation mode, dimensions, offline grace period, and revocation TTL.

Viewing Policy Details

Click View to see the full policy detail page, including:

  • Status, validation mode, and dimensions summary
  • Policy configuration (offline grace, revocation TTL, default seats/devices/expiry)
  • Key format preview
  • All keys issued under this policy

Keys

Issuing a Key

  1. Go to Licensing → Keys and click Issue Key
  2. Select a policy
  3. Choose the licensee type (USER, ORG, DEVICE)
  4. Optionally enter a licensee ID and notes
  5. Click Issue Key

The key is generated using the format defined in the policy (e.g. VIG-A8BC-D3EF-G4HJ-K5LM).

Key List Features

  • Search — Filter by key string or licensee ID
  • Status filter — Show only Active, Suspended, Expired, or Revoked keys
  • Expiry warnings — Keys expiring within 7 days show an amber “Expiring soon” badge
  • CSV Export — Download the full key list as CSV
  • Pagination — Navigate through large key sets

Key Actions

From the menu on each key:

ActionDescription
ViewOpen the key detail page
Copy JWTCopy the offline validation JWT token
ReissueGenerate a new key with updated features/seats (old key is revoked)
SuspendTemporarily disable the key (can be reactivated)
RevokePermanently disable the key

Key Detail Page

Click View to see the full key detail page with three tabs:

  • Entitlements — Licensee info, features, expiry, seats, policy, creation date
  • Seats — View assigned users, assign new seats, release seats
  • Devices — View activated devices, remove devices

Validation Tester

Click Validate Key on the keys page to open the validation tester. Paste any key to test it against the API — see if it’s valid, and view its features, status, and expiry.


Usage

The Licensing → Usage page shows aggregate statistics:

  • KPI cards: Total policies, total keys, active, revoked, suspended, expired
  • Policy distribution: How many keys are issued per policy
  • Recent keys: The latest issued keys with status badges

Floating Seats

The Licensing → Floating Seats page shows all active floating license leases in real-time.

  • Auto-refreshes every 30 seconds
  • Columns: User, License Key (masked, linked to key detail), Policy, Assigned At, Lease Expiry, Last Heartbeat
  • Lease expiry badges: green (>15 min remaining), amber (<15 min), red (<5 min)
  • Force Release button on each row to immediately terminate a floating lease (with confirmation dialog)
  • Use this page to monitor concurrent usage and manually release stuck leases

Devices

The Licensing → Devices page shows all activated devices across every license key.

  • Search by device name or fingerprint
  • Filter by activation method (Online / Offline)
  • Columns: Device (name or truncated fingerprint), Fingerprint (monospace), Method (badge), License Key (masked, linked), Policy, Activated At
  • Pagination for large device registries
  • Cross-key view: see all devices regardless of which key they belong to

Audit Log

The Licensing → Audit Log page shows a chronological history of all licensing events.

  • Filter by action type (dropdown with 15 event types)
  • Columns: Timestamp, Action (color-coded badge), Resource ID, Status, IP Address
  • Expandable metadata rows: click the chevron to reveal the full JSON metadata for each event
  • Action badge colors:
    • Green: LICENSE_ACTIVATED, LICENSE_CREATED, LICENSE_SEAT_ASSIGNED, LICENSE_CHECKOUT
    • Red: LICENSE_REVOKED, LICENSE_DEACTIVATED, LICENSE_OFFLINE_DEACTIVATED
    • Amber: LICENSE_SUSPENDED, LICENSE_REISSUED
    • Gray: all others (heartbeat, validation, usage)
  • Pagination (default 50 per page)

Automation

Automation rules connect payment events to license actions. When a customer pays, a key is automatically issued.

Creating a Rule

  1. Go to Licensing → Automation and click New Rule
  2. Enter a rule name
  3. Choose the provider (Stripe, PayPal, or Manual)
  4. Select the trigger event (e.g. Checkout Completed)
  5. Select the action (e.g. Issue Key)
  6. Optionally link a policy (required for Issue Key action)

Supported Providers and Events

ProviderEvents
StripeCheckout Completed, Invoice Paid, Payment Succeeded
PayPalPayPal Capture Completed
ManualManual Trigger

Webhook Setup

For automation to work, you need to configure webhooks in your payment provider:

Stripe:

  1. Go to Stripe Dashboard → Developers → Webhooks
  2. Add endpoint: https://your-auris-domain/api/licensing/webhooks/stripe
  3. Select events: checkout.session.completed, invoice.paid
  4. Copy the signing secret to STRIPE_LICENSING_WEBHOOK_SECRET

PayPal:

  1. Go to PayPal Developer Dashboard → Webhooks
  2. Add endpoint: https://your-auris-domain/api/licensing/webhooks/paypal
  3. Set PAYPAL_LICENSING_WEBHOOK_SECRET and PAYPAL_LICENSING_WEBHOOK_ID