FleetDM
Visualize your FleetDM policies, hosts, users, and installed software in the JupiterOne graph and detect policy violations with JupterOne Alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
To use this integration, JupiterOne requires the credentials of a FleetDM API-only user with the global Admin role. The integration signs in with the user's email and password to obtain a bearer token, and it rejects any user that does not have the global admin role.
Creating an API-only user in FleetDM
Using the fleetctl command line tool (installation instructions here), create an API-only user with the global admin role:
fleetctl user create --name "API User" --email api@example.com --password *** --api-only --global-role admin
A new API-only user defaults to the Observer role, so --global-role admin must be set explicitly. The integration will not run without the global admin role.
You can also create the API-only user from the Fleet UI: go to Settings → Users → Create user, select the API-only option, and assign the Admin global role.
If you use FleetDM to manage cloud hosts in addition to user endpoints, create a custom label that includes the user endpoints you want to ingest as Device entities. Each labeled host is ingested as a Device entity, and any host that is not labeled is ingested as a Host entity. If you do not manage cloud hosts and every host is a user endpoint, you do not need a custom label, and all hosts are ingested as Device entities.
Configuration in JupiterOne
To install the FleetDM integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select FleetDM. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the FleetDM account in JupiterOne. Ingested entities store this value in
tag.AccountNamewhen the AccountName toggle is enabled. -
A Description to assist in identifying the integration instance, if desired.
-
A Polling Interval that is sufficient for your monitoring needs. You may leave this as
DISABLEDand run the integration manually. -
Your FleetDM User Email — the email address of the FleetDM API-only admin user.
-
Your FleetDM User Password — the password for that FleetDM API-only admin user.
-
Your FleetDM Hostname — the hostname or URL of your FleetDM instance, for example
mycompany.fleetdm.comorhttps://mycompany.fleetdm.com. -
Optionally, User Endpoint Labels — FleetDM host labels that, when specified, cause the labeled hosts to be ingested as user endpoints and all other hosts to be ingested as hosts. If left empty, all hosts are ingested as user endpoints. Separate multiple labels with commas, for example
macOS,MS Windows,Ubuntu Linux.
Click Create once all values are provided to finalize the integration.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data about your FleetDM environment within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Roles
RBAC roles that must be assigned to the integration principal.
Show Roles (1)
Global admin
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (11)
https://{fleetdm_hostname}/api/v1/fleet/confighttps://{fleetdm_hostname}/api/v1/fleet/global/policieshttps://{fleetdm_hostname}/api/v1/fleet/hostshttps://{fleetdm_hostname}/api/v1/fleet/loginhttps://{fleetdm_hostname}/api/v1/fleet/os_versionshttps://{fleetdm_hostname}/api/v1/fleet/software/versionshttps://{fleetdm_hostname}/api/v1/fleet/teamshttps://{fleetdm_hostname}/api/v1/fleet/teams/{id}/policieshttps://{fleetdm_hostname}/api/v1/fleet/usershttps://{fleetdm_hostname}/api/v1/fleet/versionhttps://{fleetdm_hostname}/api/v1/fleet/vulnerabilities
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (12)
- https://fleetdm.com/docs/api/rest-api#get-configuration
- https://fleetdm.com/docs/api/rest-api#get-version
- https://fleetdm.com/docs/api/rest-api#list-fleet-level-policies
- https://fleetdm.com/docs/api/rest-api#list-fleets
- https://fleetdm.com/docs/api/rest-api#list-hosts
- https://fleetdm.com/docs/api/rest-api#list-operating-systems
- https://fleetdm.com/docs/api/rest-api#list-policies
- https://fleetdm.com/docs/api/rest-api#list-software-versions
- https://fleetdm.com/docs/api/rest-api#list-users
- https://fleetdm.com/docs/api/rest-api#list-vulnerabilities
- https://fleetdm.com/docs/api/rest-api#log-in
- https://fleetdm.com/guides/role-based-access
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (1)
| Step | Roles | Endpoints |
|---|---|---|
| Build software has vulnerability relationships | Global admin | https://{fleetdm_hostname}/api/v1/fleet/software/versions |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Host | fleetdm_host | Host |
| Host | user_endpoint | Device |
| Instance | fleetdm_instance | Account |
| OS Version | fleetdm_os_version | Application |
| Policy | fleetdm_policy | ControlPolicy |
| User | fleetdm_user | User |
| Vulnerability | fleetdm_vulnerability | Finding, Vulnerability |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
fleetdm_host | VIOLATES | fleetdm_policy |
fleetdm_host | USES | fleetdm_os_version |
fleetdm_instance | HAS | fleetdm_user |
fleetdm_instance | HAS | fleetdm_host |
fleetdm_instance | HAS | user_endpoint |
fleetdm_instance | HAS | fleetdm_policy |
fleetdm_os_version | HAS | fleetdm_vulnerability |
fleetdm_policy | ASSIGNED | fleetdm_host |
fleetdm_policy | ASSIGNED | user_endpoint |
user_endpoint | VIOLATES | fleetdm_policy |
user_endpoint | USES | fleetdm_os_version |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
|---|---|---|---|
fleetdm_host | INSTALLED | fleetdm_software | FORWARD |
fleetdm_vulnerability | HAS | fleetdm_software | REVERSE |
user_endpoint | INSTALLED | fleetdm_software | FORWARD |
Fleetdm Os Version
fleetdm_os_version inherits from Application
| Property | Type | Description | Specifications |
|---|---|---|---|
hostsCount | number | null | Number of hosts running this OS version (hosts_count). Changes between runs. | |
nameOnly | string | null | The operating system name without the build/version suffix (name_only), e.g. "Microsoft Windows 11 Pro 23H2". | |
platform | string | null | Fleet platform bucket for this OS version (platform): darwin, windows, linux, etc. | |
version | string | null | The operating system version string (version), e.g. "10.0.22621.1234". |
Fleetdm User
fleetdm_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
admin | boolean | ||
createdOn | number | ||
picture | string | ||
ssoEnabled | boolean |
Fleetdm Vulnerability
fleetdm_vulnerability inherits from Finding, Vulnerability
| Property | Type | Description | Specifications |
|---|---|---|---|
epssScore | number | null | EPSS exploit-prediction probability (0–1) from epss_probability. Fleet Premium only; null when unavailable. | |
firstSeenOn | number | null | When Fleet first detected this CVE in the environment (created_at), epoch ms. | |
hostsCount | number | null | Number of hosts in the fleet affected by this CVE (hosts_count); blast-radius signal. Changes between runs. | |
isCisaKnownExploited | boolean | null | Whether this CVE is in the CISA Known Exploited Vulnerabilities catalog (cisa_known_exploit). Fleet Premium only; null when unknown so an unknown value is never a false negative. | |
publishedOn | number | null | When the CVE was published (cve_published), epoch ms. Fleet Premium only; null when unavailable. |
Release Notes
- 2026-04-08 — Improved OS type accuracy for FleetDM host entities.