Command overview
beacon endpoint connect forwards this endpoint’s telemetry to Asymptote so it appears on the Asymptote dashboard. In user mode, the signed-in CLI account authorizes a device-specific ingest key without copying the account token into endpoint state or giving it to Vector. System mode retains browser approval because unattended and system installs are account-free.
Forwarding is opt-in and revocable. Runtime telemetry starts at the end of the existing runtime log, so pre-connect live events are not sent, with one bounded exception: every connect uploads the last 30 days of agent sessions read from the runtimes’ own session stores, so the dashboard shows recent work at once. Inventory starts at the beginning of inventory_state.jsonl so the dashboard receives the endpoint’s current inventory baseline. Revoking the device from the dashboard stops ingestion within about a minute. beacon endpoint disconnect stops the forwarder and removes the local credentials.
Command syntax
Prerequisites
- Beacon endpoint installed (
beacon endpoint install) and writing local JSONL. - A current
beacon loginsession withdevice:enrollscope for user mode. - Vector 0.50 or newer on the machine. Beacon installs one for you: 0.56.0 at
/opt/beacon/bin/vectorfrom the macOS package and Linux.deb/.rpm, asbeacon-vectorbesidebeaconfrom Linux archives and Homebrew on Linux, and as the tap’sbeacon-vectorkeg from Homebrew on macOS. Intel Macs get 0.50.0, the last x86_64 macOS build Vector published.connectstops if no usable Vector is found or if Vector rejects the forwarder config. - System mode only: a browser where an organization member can approve the device.
What connect does
- Locates Vector:
--vector-bin, thenBEACON_VECTOR_BIN, then/opt/beacon/bin/vector, thebeacon-vectorkeg in each Homebrew prefix, a linkedvectorin each Homebrew prefix, thenPATH. Thebeacon-vectorkeg is tried ahead of any other Homebrew Vector because it is the copy the tap pins at a supported version. - Renders the forwarder config for the selected privacy mode into a scratch directory, with a placeholder key, and runs
vector validateon it. A config Vector rejects stopsconnecthere, before anything is sent to the server. - Runs the session backfill sweep into the runtime log, in user and system mode. It is local and runs before a new key is issued.
- Registers this machine’s hostname, operating system, architecture, Beacon version, install id, and install mode. User mode uses the signed-in account’s
device:enrollscope; system mode uses browser approval. The server returns a separatebcn_device_*ingest key. - Writes the device key once to
asymptote/vector-secrets.jsonwith mode0600. The account token is not persisted by the endpoint flow and is never printed. - Renders
asymptote/vector.tomlwith the selected privacy mode, runsvector validateon the file the service will run, stages the session backfill incloud-backfill.jsonlbeside the runtime log, installs a service unit, and starts it. - Records the non-secret enrollment, including privacy mode, in
asymptote/enrollment.jsonandconfig.json’smanaged_ingestblock.
vector validate or at loading the service saves no enrollment record, so the endpoint is not connected and beacon endpoint disconnect cleans up what was written. After disconnect --keep-credentials, status reports not connected and names the kept device id.
Re-running connect on a connected machine reuses its install id, so the server rotates the existing device’s key in place instead of creating a second device. Because that rotation invalidates the key the running forwarder holds, the new config is validated before enrollment: a re-run whose config Vector rejects leaves the forwarder, its key, and its buffer untouched. Under launchd the new forwarder is loaded only after the old one has exited (Vector drains in-flight requests first), and if the new instance has not started within the wait, connect fails and points at launchctl print for the job.
Some steps can only fail after the server has issued the key: storing it, validating the config that carries the ingest URL, writing the service unit, starting the service, and recording the enrollment. connect writes asymptote/connect-pending as soon as the key arrives and removes it only when every step has succeeded. If a step in between fails, connect says the connect is incomplete and names the retry, and beacon endpoint status --json reports connect_incomplete: true. Run beacon endpoint connect again once the cause is fixed.
Session backfill
Every connect, first or not and in user or system mode, uploads recent session history so the dashboard is not empty until an agent runs again. Beacon first runs the same bounded sweep asbeacon endpoint install: the last 30 days of sessions from each runtime’s own session store, newest first, at most 24 MiB. A system connect reads the active console user’s session stores, as a system install does. endpoint install --connect and the onboarding wizard skip that sweep because the install has just run it.
Before the forwarder starts, Beacon copies the poll events those sweeps wrote, timestamped in the last 30 days and newest kept up to 24 MiB, from the runtime log and its archives into cloud-backfill.jsonl beside the runtime log. The forwarder reads that file once from the beginning into the same runtime upload, through the same privacy transform as live events. Hook, OTLP, and plugin events recorded before the connection stay local.
A reconnect stages the backfill again, so sessions the agents wrote while the endpoint was disconnected, or before a system endpoint had a console user to read for, still arrive. This can resend events the forwarder already shipped; every event keeps the deterministic event ID it was written with, and the dashboard collapses a resent event on it. --no-backfill or BEACON_BACKFILL=0 connects without uploading history.
Privacy modes
The onboarding wizard records one of two modes.connect uses that choice unless --privacy-mode overrides it:
The transform runs locally in Vector before batching, buffering, or HTTPS upload. Changing modes requires rerunning
beacon endpoint connect; install, repair, and package upgrades re-render the config but keep the recorded mode. A mode change stops the forwarder and clears its disk buffer before the new config is installed, so events queued under the previous mode are not uploaded under the new one.
Files and services
The directory is
0700. The device key appears only in the secrets file, which Vector reads through its file secret backend; it is in neither vector.toml, config.json, nor the forwarder’s environment. install-id pins this machine’s install id before enrollment starts, so a connect retried after a failure rotates the same device’s key instead of registering a second device.
Flags
disconnect accepts the same path flags and --json (which prints disconnected, kept_credentials, and device_id), plus --keep-credentials, which keeps the enrollment record and device key so a later connect can reuse this device without a new approval.
Examples
Connect the default per-user install
Connect a system-mode install from the signed package
Connect from a machine without a browser
Connect with metadata-only forwarding
Stop forwarding and remove the local credentials
Checking the connection
beacon endpoint status prints one line for managed ingest: whether this endpoint is connected, to which organization, the device id, whether the forwarder service is loaded and running, whether the credential is still valid (it asks the ingest service, with a 3-second timeout), and the size of the disk buffer. --json exposes the same under managed_ingest.
credential revoked means the key was revoked or expired, or the approving user is no longer a member of the organization; Vector is logging 401s and dropping batches. Run beacon endpoint connect again to re-enroll.
Revocation and disconnect
Revoke a device, or every device a person approved, from the dashboard’s Beacon Endpoints page. The ingest service rejects the key within about a minute.disconnect is the local half: it stops and removes the forwarder and its config and, unless --keep-credentials is given, the enrollment record and device key. beacon endpoint uninstall removes the forwarder and the asymptote/ directory as part of removing the endpoint, except that --keep-config keeps the enrollment record and device key. Neither revokes the device server-side; the CLI tells you where to do that.
Offline behavior
Vector keeps reading into an on-disk buffer (512 MiB for runtime, 256 MiB for inventory) while the network is unavailable and drains it when connectivity returns. The ingest service accepts old timestamps and the dashboard collapses re-sent duplicates on Beacon’s deterministic event id, so a laptop that was asleep or offline catches up without loss or double counting, up to the buffer size.Related
Asymptote Managed forwarding
Wire contract, what leaves the machine, revocation, and offline behavior.
beacon endpoint asymptote
The forwarder pack, for running Vector by hand.
Endpoint status
Inspect the forwarder and credential state.
Endpoint paths
Every file and service Beacon writes.