Account & Licensing¶
This page is the Krapple Studios-level overview of how our commercial products are licensed. It is deliberately product-neutral; the exact commands and screens live in each product's own licensing pages (for PteroCloud, see Licensing).
The shared model¶
Krapple Studios products are commercial software gated by a signed runtime lease issued by the Krapple licensing server:
- A product is activated once with a license key, which binds the installation to a server-issued lease.
- The lease is signed (Ed25519) and verified on read. A local database flag, a local expiry value or a client-supplied flag is never treated as authority.
- Enforcement fails closed: a missing signature, a transport/JSON error, a missing cache or an exception never results in "allowed".
- Licensing never destroys customer infrastructure. When a lease is locked, only the product's control layer locks; existing workloads keep running and remain recoverable.
- There is no unlimited offline mode and no bypass switch (no
--skip-license, no "disabled" flag, no universal development license that can load in production).
Keys and secrets¶
- License keys are supplied only through an environment variable or a protected file, are never logged, and are shown masked in the UI.
- Documentation, support bundles and screenshots never contain real keys, tokens,
secrets or credentials; examples use placeholders such as
KRP-XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX.
Product-specific detail¶
- PteroCloud — states, runtime lease refresh, offline behaviour, recovery and security: PteroCloud licensing. Activation: License activation.
Honest scope¶
The lease mechanism is strong commercial tamper resistance, not magic. A determined root user on the host can patch both the code and the verifier. What it does reliably is prevent casual copying, detect edited or copied leases, enforce server-authoritative suspension/revocation, and make naive tampering fail closed rather than open.