Also check: Editions and licensing, Data and telemetry, Instant Evals, Environment variables.
The two hosts
Connect talks to two hosts, split by what the data is, so a network rule can allow one without the other and prove from the firewall that no content leaves.
The usage report and the license sync are two channels that are never merged: the report is optional and the sync is a license term. Data and telemetry covers both, and the usage report dictionary lists every field of the report.
What leaves the install
Each service states what it sends before you switch it on. Your traces, datasets, saved prompts and your own model provider keys stay on your infrastructure whichever services are on.Activate with a code
A fresh install starts on the open source baseline with no account and no license. To license it, LangWatch issues you an activation code,LW-XXXX-XXXX-XXXX-XXXX, single use by default.
- Open Settings, License.
- Choose Enter activation code, paste the code, and confirm.
- The install posts the code to
connect.langwatch.aiand receives the signed license and its entitlements. The services the license names are on at once.
Endpoints and variables
The endpoints default to LangWatch’s own hosts, so you name them only when LangWatch gave you different ones. A default install sets none of these.
Both endpoints must be
https; plain http is accepted for a loopback host only, for a developer running both sides on one machine. Restart the app and the workers after changing any of them.
Outbound rules
Connect needs two destinations open, both on port 443:HTTPS_PROXY (and NO_PROXY for the hosts that skip it) on the app and the worker pods. The install sends its hosted calls and its license sync through the proxy when any of HTTPS_PROXY, HTTP_PROXY or NO_PROXY is set.
Settings, Checkup has a button that reaches both hosts from the install and, when one is blocked, names the host and port the rule has to allow.
The instance id
The instance id is a UUID the install mints into its own database the first time it needs one and never rewrites, so it survives restarts, backups and hostname changes. It carries no organization name. LangWatch binds your license to the first install that presents it. A second install running a copy of the database presents another id and is refused withconnect_wrong_instance. If you rebuilt or moved an install on purpose, ask LangWatch to reset the binding, or set LANGWATCH_CONNECT_INSTANCE_ID to the old id before the first boot of the new install.
What an admin sees in Settings, Connect
Settings, Connect is on a self-hosted install only, next to License and Checkup. Every member of the organization can open it; changing a service or the cap needs organization management rights.
Switching a service on or off takes effect within a minute, with no restart.
What does the license sync send
Two minutes after boot and once a day after that, the install posts toconnect.langwatch.ai: its license token, its instance id, the app version it runs, and two seat counts, members and lite members.
LangWatch answers with the current license for this install, signed by the same key pair that signed the one you activated. A renewed or changed license reaches the install this way, and the install applies it through the same validation a pasted key gets.
Seats
The licensed seat count is a hard cap: the seat past it is refused, on a connected license as on an offline one. To add seats, ask LangWatch. LangWatch changes the seats on your license, invoices the added seats prorated to the end of the term, and the install picks the new license up on the next sync or when an admin presses Refresh license on the License page. Existing members are never locked out by a seat change; only the next invitation past the cap is refused.License renewal
A renewed or reissued license reaches the install in the sync answer. There is no key to receive by email and paste, and Refresh license fetches it now. A delivered license that does not verify is not applied. The install keeps the license it has and shows the failure in Settings, Connect.Instant Evals through Connect
An install with its ownJEV_API_KEY judges with that key and is unchanged by Connect: its evaluations stay on your infrastructure whatever else is switched on.
Without a judge key, an install whose license names Instant Evals judges through LangWatch. An organization whose admin switched it off publishes the eval functions as unavailable, so a query never comes back with judged columns that are all empty.
Judging is charged at the list rate, 0.0546 USD per million input tokens the judge reads, and counts against your cap. The 1 USD free budget of the Cloud free plan does not apply here: your commit and your cap govern instead. See Limits and cost for what a run reads and costs.
Managed models
With Managed models on, the LangWatch AI Gateway in your install can call a model LangWatch runs by spelling the model with alangwatch/ prefix:
langwatch/ model are metered against the same cap as every other hosted service.
Air-gapped installs and existing licenses
An install whose license names no hosted service opens no connection to LangWatch: no activation, no sync, no hosted service, and the licensed seat count is enforced as a hard cap. Upgrading to a release that carries Connect changes an existing offline license in no way: it verifies with the same key, enforces the same cap, and the usage report goes where it always went unless you switch it off. The license blob is where you check it: decode the license and look forconnectServices. A license without that field, which is every license issued before this release, reaches no hosted service.
For an install that must prove the absence rather than derive it, set app.connect.disabled: true (or LANGWATCH_CONNECT_DISABLED=true). It refuses every hosted call, the license sync and the usage report, whatever the license says.
Check the wiring
Settings, Checkup reports whether the install is correctly wired: the data stores, the license, the last sync, the last usage report, and a button that reaches both LangWatch hosts and names the host and port a rule has to allow.langwatch doctor prints the same rows from a terminal.