Understanding ImpulseDB Postgres licensing

How the IPGRES- license key gates the addon, how validation runs through ImpulseCore, and what to do when you migrate to a new domain or your key expires.

Last updated 20 days ago

Understanding ImpulseDB Postgres licensing

ImpulseDB Postgres ships fully license-gated. Until your key is verified, only the Overview tab is reachable β€” every other tab redirects to Tools β†’ License with a banner. This article covers how the licensing flow works, what happens at edge cases, and how to fix common issues.

The license key

Production license keys for ImpulseDB Postgres carry the IPGRES- prefix. You receive one per WHMCS install you've purchased a seat for. The key goes into the Tools β†’ License form inside the addon β€” there's no global config file or environment variable to set.

Validation runs through ImpulseCore's shared licensing client. That client owns the XML licensing handshake, caches results, and is shared across every Impulse module so they all speak the same protocol against the same endpoint.

The license gate

On every admin tab load except Overview, the addon checks the cached license status. If the key isn't verified, the request is redirected back to Tools β†’ License. Overview itself stays reachable so you can see:

  • The First-Time Setup checklist (even pre-license, so you can prepare).
  • The module-registered indicator on Core's side.
  • Audit log entries for past validation attempts.

Once you paste a valid key and click Verify License, the cache flips, the gate opens, and every other tab unlocks immediately β€” no addon restart needed.

Install domain is captured automatically

You don't pre-configure the install domain anywhere. The licensing endpoint records the domain the validation call comes from the first time it sees a given key, and pins the key to that domain from then on. ImpulseCore's licensing client sends the domain detected from WHMCS's tblconfiguration.SystemURL, so the captured value matches whatever WHMCS reports as its own URL.

That means: don't ask customers to fill in a domain field at checkout, and don't preconfigure one in the addon settings. Activate, paste the key, click Verify β€” done.

Caching and grace period

Successful validations cache for one hour. The licensing client doesn't hit the endpoint on every page load β€” the cache absorbs that traffic.

If the licensing endpoint is unreachable (network outage, scheduled maintenance, transient TLS issue), the cached "Active" status carries a seven-day grace period. The addon keeps working through it. After seven days of continuous endpoint failure, the cache expires and the gate snaps back to redirect-only.

Failed validations β€” the endpoint actively returns Invalid or Expired β€” don't get a grace period. The gate closes on the next cache refresh.

Where to look when validation fails

Every validation attempt, success or failure, lands in ImpulseCore's audit log under the impulsepostgres source with action license.validation.* and the response code. To investigate:

  1. Open Addons β†’ ImpulseCore β†’ Audit.
  2. Filter by source impulsepostgres and action prefix license..
  3. Look at the most recent entries.

Common failure causes the audit log will tell you:

  • invalid_domain β€” the key is pinned to a different domain than the one WHMCS reports. See the next section.
  • expired β€” the key's paid period has elapsed.
  • reissue_required β€” the key was reset by the licensor; ask for a new one.

Re-validating after a domain change

If you migrate WHMCS to a new domain (staging promoted to prod, hosting platform move, brand rename), the captured domain on the license no longer matches what WHMCS sends. Validation will fail with invalid_domain.

The fix is at the licensing side, not in the addon. Contact Impulse Software support, request a reset for your key, then click Verify License again on the new domain β€” the endpoint re-captures the new domain on that first call.

License renewal

Renewing extends the expiry on the existing key β€” you don't get a new key string. The next cached refresh (within the hour) picks up the new expiry automatically. No re-paste required.

If you let the key lapse and re-purchase later, the same key reactivates on the next validation call. The addon does not require deactivation / reactivation.

Related