helix license¶
Sub-dispatcher for license tools. Inspects the file pointed to by
$HELIX_LICENSE (or --file PATH — see also the global --license /
-L flag that works on every subcommand) and prints either a one-line
"OK" summary plus key fields, or the full payload as JSON. This is the
only subcommand exempt from the startup license gate — it has to be,
because it's the tool you use to audit a license that may or may not be
valid.
The global
--license PATH/-L PATHflag, available on every subcommand, is the recommended way to point at a license file in CI or one-shot scripts. It takes precedence over$HELIX_LICENSEwhen both are set. The--file PATHflag documented below is specific tohelix license verify/helix license infoand is preserved for backwards compatibility.
Usage¶
Sub-commands¶
| Sub-command | Description |
|---|---|
helix license verify |
Verify the signature and required fields; print a one-line summary plus license type, customer, issue/expiry dates, runtime/studio limits, and any watermark. Exit non-zero on any failure. |
helix license info |
Verify, then pretty-print the verified payload as JSON. |
helix license show |
Alias for info. |
helix license help (or --help, -h) |
Print usage. |
Flags¶
| Flag | Default | Description |
|---|---|---|
--file PATH |
$HELIX_LICENSE |
Override the default lookup. Both --file PATH and --file=PATH are accepted. |
Behavior notes¶
- License gate exempt. This subcommand and the hidden
__sandbox-execre-exec wrapper are the only two not subject to the startup license gate. The license banner is NOT printed before these subcommands. - License files are verified against an embedded Ed25519 public key
(
license.EmbeddedPublicKey). The verification logic lives inpkg/license— payload schema, expiry checks, signature verification, and license-type discrimination (Runtime vs Studio vs Combined). - Lookup order for the license file:
--fileflag →$HELIX_LICENSE. Missing both produces a clear error and exits non-zero. verifyis intended for scripts: it prints a stableOK <license-id>header followed by fields, indented two-space style. Any failure (file missing, bad signature, expired) exits non-zero with a descriptive message.- Watermarked (non-production) licenses prefix every banner line with the watermark, both here and on the startup banner that gated subcommands print. There's no way to silence it.
Examples¶
Verify the license at $HELIX_LICENSE:
$ helix license verify
OK lic-abc123
file: /etc/helix/prod.helix.license
customer: Acme Corp
type: Runtime + Studio
issued: 2025-09-01 00:00:00 UTC
expires: 2027-09-01 00:00:00 UTC
studio: 25 seats (Pro), features: [graphql workflows]
runtime: 64 vCPUs total · 16 vCPUs/node · 8 nodes · 200 QPS/node
overage: block
features: [audit ratelimit hpa]
Verify a specific file:
Pretty-print the JSON payload:
Use in a CI gate (exit non-zero on bad license):
Source¶
cmd/helix/license.go lines 18-38 (cmdLicense dispatcher),
40-49 (printLicenseUsage),
53-85 (licenseFromArgs),
87-121 (licenseVerify),
123-131 (licenseInfo),
141-166 (gateStartup),
170-179 (printLicenseBanner).
The license schema and verifier live in pkg/license/.
See also¶
- Licensing guide — license types, watermarks, overage policy, embedding the public key.