Skip to content
Apertura
Getting started

Licensing and keys

Free until your use crosses a line that is stated rather than implied. When it does, one string in your bootstrap is the whole integration.

When you need nothing

No key, no account, no signup, in any of these cases:

  • Personal projects and learning.
  • Open-source projects.
  • Evaluation, development, prototypes and CI — any use that is not production.
  • Production too, if the company shipping it earns under $250,000 a year.

Nothing is held back in that case. There is no reduced feature set, no watermark and no page limit — a viewer you cannot evaluate on your real documents is a viewer you cannot buy. See pricing for the rest.

Installing a key

bootstrap.ts
import { setLicenseKey } from '@apertura/core';

// Anywhere before the first viewer is created.
setLicenseKey('APRT1.eyJsaWNlbnNlZSI6...');

The key is not a secret. It is served to every visitor along with the rest of your bundle, which means it is public by construction — so it contains nothing but the licensee name, the tier, an identifier and a date. Commit it, do not try to hide it.

How it is verified

Locally, against a public key compiled into the bundle. There is no network request in the library, which is what allows it to work inside an air-gapped network where nothing can reach a licence server — and it is also why there is nothing to switch off for privacy.

The check compares the build date of the release you are runningagainst the date in the key, rather than today's date. Three consequences follow, and all of them are deliberate:

  • A licence never expires. What you paid for keeps working forever, because the build date of that release never changes.
  • Moving the system clock does nothing, in either direction. The date being tested is inside the artefact, not in the environment.
  • Renewal buys newer releases, not continued operation. You renew when you want a fix, not to keep production alive.

What happens without a key

One message in the console, once per page load. That is the entire enforcement mechanism.

What will never happen
The library will not stop rendering, will not degrade output, will not draw a watermark over a document and will not show anything to your users. A component that can break a customer's production is not one an enterprise will adopt, and enforcement here is a legal matter anyway — pretending otherwise would only hurt the people who paid.

Air-gapped installations

Nothing special is required. The library makes no requests, the key needs no activation, and there is no telemetry to block. If your security review asks what the component talks to, the answer is nothing, and the network tab is the proof.