Skip to content
Docs / dflux Runner
ContactGet started

Licensing

dflux Runner is licensed with a single offline file. This page covers where the license lives, how path resolution works, grace vs hard-fail, and what you see at startup. Verification never phones home.

Where the license comes from

d3x gives you a license file. In the current MVP this is handed over directly — face to face, alongside your download link. The download link is time-limited; the license file is yours to keep. There is no account, no portal, and no activation server to reach.

What dflux gives you
A download link for the binary archive and a license file. Keep both — the link expires, the license file does not.

Path resolution

At startup, licensed entrypoints resolve the license file in this order (first match wins):

SourcePath / variableNotes
Environment variableD3X_LICENSE_FILE=/path/to/file.licExplicit override; used even if the other files exist
Per-user compound$HOME/.dflux/d3x.licOne file can grant every product for this user
Per-user product$HOME/.dflux/runner.licFallback when no per-user compound file is present
System compound/etc/dflux/d3x.licOne file can grant every product on the host
System product/etc/dflux/runner.licLast fallback; this is the path named when no file is found

Install example:

Bash

There is no -license-path CLI flag and no license_path key in environment YAML — use D3X_LICENSE_FILE or the default paths above.

Fail-closed on licensed entrypoints

Commands that need a license (run-flow, run-suite, daemon, check, validate, user-plane server, …) refuse to start when the file is missing, fails signature verification, does not grant the runner product, or is past expiry and past the grace window. That is a hard stop, not a warning-only mode.

  • Missing / unreadable / invalid — process exits with a license error.
  • Past grace — process exits; renew and restart.
  • Inside grace (after expiry) — process starts and prints a banner warning; treat it as a renewal reminder.
  • Development-signed licenses — startup banner marks them as not valid for production; they also cannot be perpetual.

A running process is not killed when the wall clock crosses expiry; the grace policy applies to fresh starts. Long-lived agents also watch expiry and log warnings over their lifetime.

Startup output

On a clean production license there is no special banner beyond normal logs. On grace / development licenses, d3x-run prints banner lines such as:

Code

d3x-run -v prints the binary version. Full license gating happens when you run a licensed subcommand.

Fully offline / air-gapped

License verification is entirely local. dflux Runner never contacts dflux or any other host to validate the file — there is no phone-home, no telemetry, and no network dependency in the check. It runs unchanged on an air-gapped host: the binary and the license file are all it needs.

Renewal

When a license nears expiry, ask dflux for a new file. Renewing is a file swap — drop the new file in place and restart the process (CLI one-shots pick it up next invocation; agents need a restart):

Bash

Where to go next

With your license in place, run the canonical flow end to end in the Quickstart, or read the architecture overview for the conceptual model.