Docs
ExtensionsVariables

Overview

Store custom key/value data on licenses and products, optionally returned on validation.

Variables let you attach arbitrary key/value data to a license or a product. Use them for per-customer settings, feature flags, seat counts, or anything your product needs to read alongside a license check.

This extension depends on core. The Rules extension can gate validation on a variable with its require_variable type. See the Configuration and API Reference.

How it works

  • A variable has a scope (global, product, or license), an owner (which product or license), a key, and a JSON value.
  • Product variables act as defaults; a license variable of the same key overrides the product's.
  • With INCLUDE_IN_VALIDATION on, the resolved variables for a key are returned in the validation response, so your product can read them without a second call.

Managing variables

Set variables from the Variables dashboard page, the variables console command, or the API. License-level variables are managed through the license endpoint on the core API.

User variables

User variables are a separate, isolated store that the license holder can read and write with their license key, no admin key needed. Use them for per-user state your product or customer keeps, like a usage counter or a saved preference. They never mix with the admin-managed variables above, so a customer can never change anything that gates their own access.

  • Isolated: scoped to a single license and only reachable with that license's key.
  • User-editable: from the customer's client dashboard ("My Data"), or directly by your product through the user variables API.
  • Returned on validation as user_variables when USER.INCLUDE_IN_VALIDATION is on.
  • Countable: PATCH increments a numeric value atomically, so "total API calls" is a single call.

Turn them off, or cap how many a license can store, in the configuration.

On this page