Choose a connection method
Both connection methods support Windows, macOS and Linux. The API-key connector
uses the native helper for the sensor’s platform and architecture; choosing
Output does not add endpoint task permissions.
API-key endpoint operations
Windows helpers are available for x86-64 and ARM64; 32-bit x86 sensors are not
supported for helper execution. Windows payloads use native
.exe staging, with
typed instructions encoded as data rather than interpolated into a shell.
Process termination requires the observed process start time and executable
hash. Windows does not provide graceful termination through this helper; a
graceful request returns an unproven outcome and does not escalate to force.
The connector provides typed process/file remediation; specialized
application/browser workflows require their own supported executor. Files and directories remain subject to operation
bounds, endpoint privileges and provider response limits. A missing or
oversized response is not reported as successful execution.
Connection fields
Sensor import is separate from connection setup. An Output connection does not
require a second list of approved sensor IDs. Forge scopes incoming observations
to the saved organization and event-time sensor tag, and identifies each device
by its organization and sensor ID. Matching hostnames alone do not merge devices.
Before you start
Have an existing LimaCharlie organization, an online pilot sensor, and its exact sensor ID and platform. For API-key setup, an administrator creates a REST API key under Access Management in that organization, with the permission bundle below. Copy the organization ID and key separately into Forge. Use a dedicated integration key so it can be rotated or revoked without interrupting other clients. For Output, the credential is the Forge-generated signing secret; no LimaCharlie task key is required. LimaCharlie documents the distinction between Output streams and destinations. See LimaCharlie’s permission reference for the provider privilege names.API-key setup
- Create an organization-scoped LimaCharlie API key with the permissions below.
- Open Settings → Integrations → LimaCharlie in Forge.
- Enter the organization ID and REST API key, then select Connect with API key.
- Select Test connection to check effective permissions.
- Open Sensor import, select the sensors to import, and explicitly assign their owners. Connection setup does not automatically import every sensor.
Permissions
Use a dedicated key scoped to the organization and features you enable. The operational task connection checks this permission bundle:
These response streams belong to task execution. They are separate from the
customer-managed Event Output used by the alternative method. Forge does not
provide a free-form shell input through this integration.
Output setup
- In Forge, enter the organization ID and the Output sensor tag below the OR divider. Select Connect with Output. Leave the REST API key blank.
- Copy the generated webhook URL and signing secret before leaving the page.
- In LimaCharlie, open Outputs and create an Output with the Event stream
and Webhook Bulk destination. Give it a recognizable name, such as
forge-observe. - Set the destination host to the Forge URL, the secret key to the generated secret, and the tag to the exact tag saved in Forge. Enable compression and set batching to 1 second. Preserve the default routing/event structure; do not transform it into another format.
- Add the event types below, one per line. Apply the tag to the sensors you want to observe, and ensure those sensors’ collection settings include the events.
- Generate process or network activity and confirm Last observed in Forge.
Delivery limits and recovery
A
204 means Forge accepted the delivery. In the synchronous receiver mode,
eligible observations have committed before the response. In the queued receiver
mode, the response follows durable admission; workers commit Inventory and policy
results afterward. Last observed can advance before Inventory updates in
either mode. A queued raw payload is kept only for processing and recovery, then
deleted after its projection commits. Routine observations with no catalog,
policy, candidate or existing-state effect are discarded after evaluation.
Passive, unchanged sightings of the same catalog product on a device under the
same review decision can share one Review with a sighting count and first/last
seen times. A retained event key and digest provide first-sighting provenance
without retaining the raw event or creating a process row. The count does not
mean that many distinct processes were examined. A policy
that targets a particular process, or requests an active action, keeps its
individual process evidence and decision path.
Previously unseen observations older than the replay boundary do not recreate
expired Inventory evidence. Forge keeps an aggregate gap summary containing a
count, time range and identity digest, and processes eligible fresh siblings.
This summary contains no raw event payload.
A 503 means reception is busy or admission or synchronous processing could
not finish. Retry the complete delivery. In synchronous mode, some earlier
observations may already be saved. A byte-identical queued delivery retry is
idempotent while its delivery checkpoint is retained (seven days after
completion). If the provider repackages the same passive events into a different
bulk delivery, their sighting count can increase again. Treat it as an observed
activity indicator, not a count of unique processes, connections, conversations
or usage. Individually retained exact-path evidence keeps its existing replay
checks.
A 429 means the delivery rate limit was reached.
Invalid framing or an exceeded body limit returns 400; exceeding the processing
event or row bound returns 413. A wrong signature or organization/tag scope
returns 401.
A 409 means changed evidence conflicts with an observation Forge retained on
an exact path, or with another event identity in the same delivery.
Preserve provider event identifiers and the sensor’s device binding on retry.
Do not rewrite event identifiers to work around a rejected delivery.
Forge evaluates process observations against its catalog and active policies.
If those change during processing, Forge can return 503 so a retry uses the
updated configuration. LimaCharlie network evidence retains its provider
attribution. It does not establish Device Agent process verification.
Committed observations survive Forge restarts. Queued deliveries also survive
worker restarts and resume projection from their retained checkpoint. If
synchronous processing is interrupted, LimaCharlie must retry the complete
delivery. A queue admission failure also requires a complete-delivery retry.
Forwarding and retries still depend on the customer-managed LimaCharlie Output.
Inspect its error logs after failed deliveries; an observed retry is not a promise
of unlimited vendor buffering or lossless forwarding during a prolonged outage.
An Output filters events already collected by sensors. Adding a type to its
allowlist does not enable that sensor notification. In LimaCharlie event
collection settings, check the tagged sensors’ effective collection profile;
TCP notifications may need a tag-scoped Event collection rule. Preserve other
rules and apply changes only to the intended sensors. Consult the
LimaCharlie event reference
for each event’s meaning and platform availability.
Forge needs no LimaCharlie REST API key for Output reception. The person
creating the Output needs the corresponding LimaCharlie administrative access;
those permissions are not credentials to enter in Forge. Operator diagnostics
that read saved Exfil settings require ext.conf.get, not every ext.conf
permission. They are not a customer connection prerequisite.
What Output observations can prove
Output coverage is partial and depends on sensor collection, event fields and delivery. An observation is positive evidence at the event’s timestamp, not a complete or continuously current inventory.
Explicit executable names and domain evidence can match Forge’s AI product
catalog. An IP address alone is not treated as proof of ownership by an AI
service. Missing process correlation remains unresolved rather than being
joined solely by PID.
Output observations do not collect prompts, responses, conversation content,
tool calls, tokens or spend. They do not assert a complete installed-app,
browser-extension, MCP-server or skill inventory, and they do not grant
remediation authority. Existing richer inventory and explicitly assigned
ownership remain intact when sparse observations arrive.
Status, rotation and stopping
- Waiting for observations means the connection is saved but has not received a valid delivery. It does not confirm end-to-end forwarding.
- Last observed tracks authenticated provider activity received by Forge. It can advance before the delivery’s Inventory projection commits. Device timestamps are coalesced after 10 seconds of provider-time advancement; busy rows refresh on a later delivery. An old timestamp or No recent observations can indicate a collection or delivery gap.
- Rotate signing secret generates a replacement shown once. Update the LimaCharlie Output immediately. The previous key stops authenticating new admissions; expect a gap while the Output is updated.
- Pause reception rejects new deliveries. Save changes resumes the connection. Previously admitted evidence remains available.
- Disconnect disables the connection. Remove the customer-managed Output in LimaCharlie to stop forwarding; no sensor uninstall is needed.