App Variables
App variables are set per app and delivered to every SDK client during authentication in theappVariables field of the signed payload.
Use cases
| Variable | Value | Purpose |
|---|---|---|
"maintenanceMode" | true | Disable the app remotely |
"maxUploadSizeMb" | 50 | Remote config without an update |
"motd" | "v2.0 releasing Friday!" | Display a message to all users |
"minVersion" | "1.5.0" | Block outdated clients |
Setting app variables
Dashboard: App Settings → Variables Developer API:Reading app variables in the SDK
License Variables
License variables are set per license and delivered only to that specific license holder in thelicenseVariables field.
Use cases
| Variable | Value | Purpose |
|---|---|---|
"plan" | "pro" | Feature gating by plan tier |
"maxProjects" | 10 | Per-user resource limits |
"customerName" | "Acme Corp" | Custom metadata |
"features" | "export,api,priority-support" | Feature list for the user |
Setting license variables
Dashboard: Open an app → click a license row → Variables Developer API:Reading license variables in the SDK
Limits
| Limit | Value |
|---|---|
| Max keys per variable set | 50 |
| Max total size (JSON) | 4 KB |
| Key max length | 64 characters |
| Value types | String, number, boolean |
| Nesting | Not supported (flat values only) |
How variables are delivered
Variables are included in the signed payload returned by/auth/validate. This means:
- Variables are delivered at login time, not on every heartbeat.
- To pick up variable changes, the user must re-authenticate (restart the app, or wait for LOCAL mode to re-validate).
- Variables are covered by the same HMAC-SHA256 signature as the rest of the payload — they can’t be tampered with in transit.
Next steps
- Feature Flags Guide — Use app variables as a simple feature flag system
- Tiered Licensing Guide — Implement Basic/Pro/Enterprise tiers with license variables
- Variables API Reference — Full endpoint documentation