Licensing
Elyra DataGrid is commercial software. A license is issued by elyracode.com after purchase. You can evaluate it fully on local/development domains without a key; a valid license is required for production domains.
Plans
| Plan | Projects (production domains) | Term |
|---|---|---|
| Solo | 1 | Annual or Lifetime |
| Team | 5 | Annual or Lifetime |
| Unlimited | Unlimited | Annual or Lifetime |
- Annual licenses include updates for one year and are renewed yearly.
- Lifetime licenses never expire.
- A "project" is a production domain bound to the license. Local and staging
domains (
localhost,*.test,*.local,*.ddev.site,127.0.0.1, …) are always allowed and do not count against your project quota.
Getting & installing a license
After purchase, elyracode.com issues:
- A Composer/npm access token to download the packages (see Installation).
- A license key for runtime verification.
Add the key to your .env:
ELYRA_DATAGRID_KEY=eyJpZCI6... # the key issued for your domain(s)
That's it. The key is verified entirely offline — no phone-home — against a public key embedded in the package, so it works air-gapped and never depends on elyracode.com being reachable at runtime.
How verification works
- The key is a signed token (
payload.signature, RSA-SHA256). The package checks the signature, the expiry (annual plans), and that the current production host matches one of the domains encoded in your key. - Development is never blocked. On local/dev domains the grid works with or without a key, so you can build and evaluate freely.
- Adding or changing production domains means re-issuing the key (self-service on
elyracode.com).
*.example.comcovers all subdomains of a project.
Enforcement (never bricks your app)
An invalid, missing, or expired license in production never disables the
grid — it degrades gracefully. Configure the reaction in config/datagrid.php:
'license_enforcement' => env('ELYRA_DATAGRID_LICENSE_ENFORCEMENT', 'warn'),
| Mode | Behavior (production only) |
|---|---|
warn (default) |
Logs a warning; the grid keeps working. |
silent |
Does nothing (also hides the client indicator). |
throw |
Throws on boot (strict opt-in). |
When unlicensed in production, the grid also shows a discreet indicator — a
small “Unlicensed” pill in the toolbar linking to elyracode.com. It is attached
by the server as a notice on the response, so all three clients show it
uniformly. It never appears in local/dev or with a valid key, and silent mode
suppresses it.
Publish the config to change it:
php artisan vendor:publish --tag=elyra-datagrid-config
Checking status in code
use Elyra\DataGrid\Server\GridServiceProvider;
$license = GridServiceProvider::license(); // Elyra\DataGrid\Server\Licensing\License
$license->valid(); // bool
$license->plan; // 'solo' | 'team' | 'unlimited'
$license->projects; // 1 | 5 | 0 (0 = unlimited)
$license->lifetime(); // bool
$license->expires; // ?DateTimeImmutable
$license->summary(); // human-readable line for dashboards
FAQ
Do I need a key to try it? No — evaluate on local/dev domains freely.
Does it call home? No. Verification is offline against an embedded public key.
What if my key expires (annual)? The grid keeps working (warn mode) and
logs a notice; renew on elyracode.com to clear it. Lifetime keys never expire.
Monorepo / multiple apps? Each production domain is a project. Choose a plan whose project count covers your domains, or Unlimited. Subdomains of a listed apex are included.