mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
ChromeOS privacy_preferences table (#12441)
## Addresses #11037 ### Implement the `privacy_preferences` table for the Fleetd Chrome extension. Columns correspond to the available properties of [`chrome.privacy`](https://developer.chrome.com/docs/extensions/reference/privacy/). Chrome on mac: <img width="816" alt="Screenshot 2023-06-23 at 11 55 21 AM" src="https://github.com/fleetdm/fleet/assets/61553566/a4700749-6325-442e-acf2-c14b1c9adf8f"> Chromebook with enterprise access (actual use case):  * Chromebook w/o enterprise access: as you can see, sometimes certain APIs are not available - this error occurs because the expected API object that would have a `get` method is actually `undefined` TODO – How to handle this case given that we want to let errors bubble up to the level at which Fleet can catch them? Maybe it would be nice to catch such errors and send them up to the Fleet layer, and still allow the loop to continue to populate the columns whose APIs _are_ available. _Decision: catch API errors here to preserve functionality of the remaining columns_  - [x] Changes file - [x] Manual QA --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
This commit is contained in:
parent
349149ef6a
commit
2855bc8f7f
8 changed files with 5301 additions and 212 deletions
1
changes/11037-privacy_preferences-chromeos-table
Normal file
1
changes/11037-privacy_preferences-chromeos-table
Normal file
|
|
@ -0,0 +1 @@
|
|||
* Implement the privacy_preferences table for the Fleetd Chrome extension
|
||||
|
|
@ -1,14 +1,16 @@
|
|||
import SQLiteAsyncESMFactory from "wa-sqlite/dist/wa-sqlite-async.mjs";
|
||||
import * as SQLite from "wa-sqlite";
|
||||
|
||||
import TableOSVersion from "./tables/os_version";
|
||||
import TableGeolocation from "./tables/geolocation";
|
||||
import TableSystemInfo from "./tables/system_info";
|
||||
import TableOsqueryInfo from "./tables/osquery_info";
|
||||
import TableNetworkInterfaces from "./tables/network_interfaces";
|
||||
import TableUsers from "./tables/users";
|
||||
// Alphabetical order
|
||||
import Table from "./tables/Table";
|
||||
import TableChromeExtensions from "./tables/chrome_extensions";
|
||||
import TableGeolocation from "./tables/geolocation";
|
||||
import TableNetworkInterfaces from "./tables/network_interfaces";
|
||||
import TableOsqueryInfo from "./tables/osquery_info";
|
||||
import TableOSVersion from "./tables/os_version";
|
||||
import TablePrivacyPreferences from "./tables/privacy_preferences";
|
||||
import TableSystemInfo from "./tables/system_info";
|
||||
import TableUsers from "./tables/users";
|
||||
|
||||
export default class VirtualDatabase {
|
||||
sqlite3: SQLiteAPI;
|
||||
|
|
@ -18,21 +20,27 @@ export default class VirtualDatabase {
|
|||
this.sqlite3 = sqlite3;
|
||||
this.db = db;
|
||||
|
||||
VirtualDatabase.register(sqlite3, db, new TableOSVersion(sqlite3, db));
|
||||
VirtualDatabase.register(sqlite3, db, new TableGeolocation(sqlite3, db));
|
||||
VirtualDatabase.register(sqlite3, db, new TableSystemInfo(sqlite3, db));
|
||||
VirtualDatabase.register(sqlite3, db, new TableOsqueryInfo(sqlite3, db));
|
||||
VirtualDatabase.register(
|
||||
sqlite3,
|
||||
db,
|
||||
new TableNetworkInterfaces(sqlite3, db)
|
||||
);
|
||||
VirtualDatabase.register(sqlite3, db, new TableUsers(sqlite3, db));
|
||||
// Alphabetical order
|
||||
VirtualDatabase.register(
|
||||
sqlite3,
|
||||
db,
|
||||
new TableChromeExtensions(sqlite3, db)
|
||||
);
|
||||
VirtualDatabase.register(sqlite3, db, new TableGeolocation(sqlite3, db));
|
||||
VirtualDatabase.register(
|
||||
sqlite3,
|
||||
db,
|
||||
new TableNetworkInterfaces(sqlite3, db)
|
||||
);
|
||||
VirtualDatabase.register(sqlite3, db, new TableSystemInfo(sqlite3, db));
|
||||
VirtualDatabase.register(
|
||||
sqlite3,
|
||||
db,
|
||||
new TablePrivacyPreferences(sqlite3, db)
|
||||
);
|
||||
VirtualDatabase.register(sqlite3, db, new TableOSVersion(sqlite3, db));
|
||||
VirtualDatabase.register(sqlite3, db, new TableOsqueryInfo(sqlite3, db));
|
||||
VirtualDatabase.register(sqlite3, db, new TableUsers(sqlite3, db));
|
||||
}
|
||||
|
||||
public static async init(): Promise<VirtualDatabase> {
|
||||
|
|
|
|||
97
ee/fleetd-chrome/src/tables/privacy_preferences.ts
Normal file
97
ee/fleetd-chrome/src/tables/privacy_preferences.ts
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
import Table from "./Table";
|
||||
|
||||
export default class TablePrivacyPreferences extends Table {
|
||||
// expose properties available from the chrome.privacy API as a virtual osquery "table"
|
||||
// https://developer.chrome.com/docs/extensions/reference/privacy/
|
||||
|
||||
name = "privacy_preferences";
|
||||
propertyAPIs = {
|
||||
// all of type `types.ChromeSetting<boolean>` with default `true` unless otherwise specified
|
||||
|
||||
// though all of these properties are documented, some have not been added to the
|
||||
// typings we are using: https://www.npmjs.com/package/@types/chrome and must be `@ts-ignore`d
|
||||
|
||||
// network
|
||||
network_prediction_enabled: chrome.privacy.network.networkPredictionEnabled,
|
||||
// type `types.ChromeSetting<IPHandlingPolicy>`, default "default"
|
||||
// IPHandlingPolicy:
|
||||
// "default" | "default_public_and_private_interfaces" |
|
||||
// "default_public_interface_only" | "disable_non_proxied_udp"
|
||||
web_rtc_ip_handling_policy: chrome.privacy.network.webRTCIPHandlingPolicy,
|
||||
|
||||
// services
|
||||
autofill_address_enabled: chrome.privacy.services.autofillAddressEnabled,
|
||||
autofill_credit_card_enabled:
|
||||
chrome.privacy.services.autofillCreditCardEnabled,
|
||||
// DEPRECATED and replaced with above two properties
|
||||
autofill_enabled: chrome.privacy.services.autofillEnabled,
|
||||
save_passwords_enabled: chrome.privacy.services.passwordSavingEnabled,
|
||||
safe_browsing_enabled: chrome.privacy.services.safeBrowsingEnabled,
|
||||
// default false
|
||||
safe_browsing_extended_reporting_enabled:
|
||||
chrome.privacy.services.safeBrowsingExtendedReportingEnabled,
|
||||
search_suggest_enabled: chrome.privacy.services.searchSuggestEnabled,
|
||||
// default false
|
||||
spelling_service_enabled: chrome.privacy.services.spellingServiceEnabled,
|
||||
translation_service_enabled:
|
||||
chrome.privacy.services.translationServiceEnabled,
|
||||
|
||||
// websites
|
||||
// @ts-ignore
|
||||
ad_measurement_enabled: chrome.privacy.websites.adMeasurementEnabled,
|
||||
// default false
|
||||
do_not_track_enabled: chrome.privacy.websites.doNotTrackEnabled,
|
||||
// @ts-ignore
|
||||
fledge_enabled: chrome.privacy.websites.fledgeEnabled,
|
||||
hyperlink_auditing_enabled:
|
||||
chrome.privacy.websites.hyperlinkAuditingEnabled,
|
||||
// @ts-ignore, DEPRECATED
|
||||
privacy_sandbox_enabled: chrome.privacy.websites.privacySandboxEnabled,
|
||||
protected_content_enabled: chrome.privacy.websites.protectedContentEnabled,
|
||||
referrers_enabled: chrome.privacy.websites.referrersEnabled,
|
||||
third_party_cookies_allowed:
|
||||
chrome.privacy.websites.thirdPartyCookiesAllowed,
|
||||
// @ts-ignore
|
||||
topics_enabled: chrome.privacy.websites.topicsEnabled,
|
||||
};
|
||||
|
||||
columns = Object.keys(this.propertyAPIs);
|
||||
|
||||
async generate() {
|
||||
const results = []; // Promise<{string: number | string}>[]
|
||||
const errors = [];
|
||||
for (const [property, propertyAPI] of Object.entries(this.propertyAPIs)) {
|
||||
results.push(
|
||||
new Promise((resolve) => {
|
||||
try {
|
||||
propertyAPI.get({}, (details) => {
|
||||
if (property === "web_rtc_ip_handling_policy") {
|
||||
resolve({ [property]: details.value });
|
||||
} else {
|
||||
// convert bool response to binary flag
|
||||
if (details.value === true) {
|
||||
resolve({ [property]: 1 });
|
||||
} else {
|
||||
resolve({ [property]: 0 });
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
errors.push({ [property]: error });
|
||||
resolve({ [property]: null });
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// wait for each API to call to resolve
|
||||
const columns = await Promise.all(results);
|
||||
errors.length > 0 &&
|
||||
console.log("Caught errors in chrome API calls: ", errors);
|
||||
return [
|
||||
columns.reduce((resultRow, column) => {
|
||||
return { ...resultRow, ...column };
|
||||
}, {}),
|
||||
];
|
||||
}
|
||||
}
|
||||
4737
ee/fleetd-chrome/yarn.lock
Normal file
4737
ee/fleetd-chrome/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -95,6 +95,7 @@
|
|||
"@testing-library/react": "12.1.4",
|
||||
"@testing-library/user-event": "14.4.3",
|
||||
"@tsconfig/recommended": "1.0.1",
|
||||
"@types/chrome": "0.0.237",
|
||||
"@types/classnames": "0.0.32",
|
||||
"@types/cypress": "1.1.3",
|
||||
"@types/expect": "1.20.3",
|
||||
|
|
|
|||
|
|
@ -27820,6 +27820,34 @@
|
|||
"url": "https://fleetdm.com/tables/dscl",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/dscl.yml"
|
||||
},
|
||||
{
|
||||
"name": "file_lines",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Allows reading an arbitrary file.",
|
||||
"platforms": [
|
||||
"darwin",
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"evented": false,
|
||||
"examples": "Output the content of `/etc/hosts` line by line. \n```\nSELECT * FROM file_lines WHERE path='/etc/hosts';\n```",
|
||||
"columns": [
|
||||
{
|
||||
"name": "path",
|
||||
"description": "Path of the file to read.",
|
||||
"required": true,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "line",
|
||||
"description": "Output of the file, line by line.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/file_lines",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/file_lines.yml"
|
||||
},
|
||||
{
|
||||
"name": "filevault_prk",
|
||||
"platforms": [
|
||||
|
|
@ -27865,34 +27893,6 @@
|
|||
"url": "https://fleetdm.com/tables/filevault_users",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/filevault_users.yml"
|
||||
},
|
||||
{
|
||||
"name": "file_lines",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Allows reading an arbitrary file.",
|
||||
"platforms": [
|
||||
"darwin",
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"evented": false,
|
||||
"examples": "Output the content of `/etc/hosts` line by line. \n```\nSELECT * FROM file_lines WHERE path='/etc/hosts';\n```",
|
||||
"columns": [
|
||||
{
|
||||
"name": "path",
|
||||
"description": "Path of the file to read.",
|
||||
"required": true,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "line",
|
||||
"description": "Output of the file, line by line.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/file_lines",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/file_lines.yml"
|
||||
},
|
||||
{
|
||||
"name": "firmware_eficheck_integrity_check",
|
||||
"platforms": [
|
||||
|
|
@ -27918,42 +27918,6 @@
|
|||
"url": "https://fleetdm.com/tables/firmware_eficheck_integrity_check",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/firmware_eficheck_integrity_check.yml"
|
||||
},
|
||||
{
|
||||
"name": "geolocation",
|
||||
"evented": false,
|
||||
"platforms": [
|
||||
"chrome"
|
||||
],
|
||||
"description": "Last reported geolocation",
|
||||
"columns": [
|
||||
{
|
||||
"name": "ip",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "IP address"
|
||||
},
|
||||
{
|
||||
"name": "city",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "City"
|
||||
},
|
||||
{
|
||||
"name": "country",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Country"
|
||||
},
|
||||
{
|
||||
"name": "region",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Region"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/geolocation",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/geolocation.yml"
|
||||
},
|
||||
{
|
||||
"name": "google_chrome_profiles",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
|
|
@ -27994,6 +27958,42 @@
|
|||
"url": "https://fleetdm.com/tables/google_chrome_profiles",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/google_chrome_profiles.yml"
|
||||
},
|
||||
{
|
||||
"name": "geolocation",
|
||||
"evented": false,
|
||||
"platforms": [
|
||||
"chrome"
|
||||
],
|
||||
"description": "Last reported geolocation",
|
||||
"columns": [
|
||||
{
|
||||
"name": "ip",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "IP address"
|
||||
},
|
||||
{
|
||||
"name": "city",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "City"
|
||||
},
|
||||
{
|
||||
"name": "country",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Country"
|
||||
},
|
||||
{
|
||||
"name": "region",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Region"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/geolocation",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/geolocation.yml"
|
||||
},
|
||||
{
|
||||
"name": "icloud_private_relay",
|
||||
"platforms": [
|
||||
|
|
@ -28129,6 +28129,43 @@
|
|||
"url": "https://fleetdm.com/tables/macadmins_unified_log",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/macadmins_unified_log.yml"
|
||||
},
|
||||
{
|
||||
"name": "macos_rsr",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Returns information about installed Rapid Security Responses (RSRs).",
|
||||
"platforms": [
|
||||
"darwin"
|
||||
],
|
||||
"evented": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "full_macos_version",
|
||||
"description": "Full macOS version string (including the RSR suffix)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "macos_version",
|
||||
"description": "The macOS version string (excluding the RSR suffix)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "rsr_supported",
|
||||
"description": "Whether this macOS version supports RSRs (>= 13). Possible values are 'true' or 'false'.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "rsr_version",
|
||||
"description": "RSR version string suffix (with parenthesis included)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/macos_rsr",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/macos_rsr.yml"
|
||||
},
|
||||
{
|
||||
"name": "macos_profiles",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
|
|
@ -28191,43 +28228,6 @@
|
|||
"url": "https://fleetdm.com/tables/macos_profiles",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/macos_profiles.yml"
|
||||
},
|
||||
{
|
||||
"name": "macos_rsr",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Returns information about installed Rapid Security Responses (RSRs).",
|
||||
"platforms": [
|
||||
"darwin"
|
||||
],
|
||||
"evented": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "full_macos_version",
|
||||
"description": "Full macOS version string (including the RSR suffix)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "macos_version",
|
||||
"description": "The macOS version string (excluding the RSR suffix)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "rsr_supported",
|
||||
"description": "Whether this macOS version supports RSRs (>= 13). Possible values are 'true' or 'false'.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "rsr_version",
|
||||
"description": "RSR version string suffix (with parenthesis included)",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/macos_rsr",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/macos_rsr.yml"
|
||||
},
|
||||
{
|
||||
"name": "mdm",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).<p> Code based on work by [Kolide](https://github.com/kolide/launcher). <p> Due to changes in macOS 12.3, the output of `profiles show -type enrollment` can only be generated once a day. If you are running this command with another tool, you should set the `PROFILES_SHOW_ENROLLMENT_CACHE_PATH` environment variable to the path you are caching this. The cache file should be `json` with the keys `dep_capable` and `rate_limited present`, both booleans representing whether the device is capable of DEP enrollment and whether the response from `profiles show -type enrollment` is being rate limited or not.",
|
||||
|
|
@ -28320,49 +28320,6 @@
|
|||
"url": "https://fleetdm.com/tables/mdm",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/mdm.yml"
|
||||
},
|
||||
{
|
||||
"name": "mdm_bridge",
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"description": "Allows querying MDM enrolled devices using \"get\" commands.",
|
||||
"columns": [
|
||||
{
|
||||
"name": "enrollment_status",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Contains the enrollment status of the device, possible values are \"device_enrolled\" and \"device_unenrolled\"."
|
||||
},
|
||||
{
|
||||
"name": "enrolled_user",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Contains the enrollment URI of the device."
|
||||
},
|
||||
{
|
||||
"name": "mdm_command_input",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "The \"get\" command to execute on the device. If empty, no command is executed and the \"enrollment_status\" and \"enrolled_user\" columns are returned."
|
||||
},
|
||||
{
|
||||
"name": "mdm_command_output",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Value of the \"Results\" field of the MDM command output."
|
||||
},
|
||||
{
|
||||
"name": "raw_mdm_command_output",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "The full raw output of the MDM command execution."
|
||||
}
|
||||
],
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"evented": false,
|
||||
"url": "https://fleetdm.com/tables/mdm_bridge",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/mdm_bridge.yml"
|
||||
},
|
||||
{
|
||||
"name": "munki_info",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).<p> Code based on work by [Kolide](https://github.com/kolide/launcher).",
|
||||
|
|
@ -28500,6 +28457,49 @@
|
|||
"url": "https://fleetdm.com/tables/network_interfaces",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/network_interfaces.yml"
|
||||
},
|
||||
{
|
||||
"name": "mdm_bridge",
|
||||
"platforms": [
|
||||
"windows"
|
||||
],
|
||||
"description": "Allows querying MDM enrolled devices using \"get\" commands.",
|
||||
"columns": [
|
||||
{
|
||||
"name": "enrollment_status",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Contains the enrollment status of the device, possible values are \"device_enrolled\" and \"device_unenrolled\"."
|
||||
},
|
||||
{
|
||||
"name": "enrolled_user",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Contains the enrollment URI of the device."
|
||||
},
|
||||
{
|
||||
"name": "mdm_command_input",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "The \"get\" command to execute on the device. If empty, no command is executed and the \"enrollment_status\" and \"enrolled_user\" columns are returned."
|
||||
},
|
||||
{
|
||||
"name": "mdm_command_output",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Value of the \"Results\" field of the MDM command output."
|
||||
},
|
||||
{
|
||||
"name": "raw_mdm_command_output",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "The full raw output of the MDM command execution."
|
||||
}
|
||||
],
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"evented": false,
|
||||
"url": "https://fleetdm.com/tables/mdm_bridge",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/mdm_bridge.yml"
|
||||
},
|
||||
{
|
||||
"name": "nvram_info",
|
||||
"platforms": [
|
||||
|
|
@ -28601,6 +28601,139 @@
|
|||
"url": "https://fleetdm.com/tables/pmset",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/pmset.yml"
|
||||
},
|
||||
{
|
||||
"name": "privacy_preferences",
|
||||
"notes": "This table is not a core osquery table. It is included as part of the Fleetd Chrome extension.",
|
||||
"description": "Information on Chrome features that can affect a user's privacy, available from the [chrome.privacy APIs](https://developer.chrome.com/docs/extensions/reference/privacy/)",
|
||||
"platforms": [
|
||||
"chrome"
|
||||
],
|
||||
"evented": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "network_prediction_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "web_rtc_ip_handling_policy",
|
||||
"description": "One of \"default\", \"default_public_and_private_interfaces\", \"default_public_interface_only\", or \"disable_non_proxied_udp\"",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "autofill_address_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "autofill_credit_card_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "autofill_enabled",
|
||||
"description": "1 if enabled else 0 - * Deprecated since Chrome 70, please use privacy.services.autofillAddressEnabled and privacy.services.autofillCreditCardEnabled. This currently remains for backward compatibility and will be removed in the future.",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "save_passwords_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "safe_browsing_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "safe_browsing_extended_reporting_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "search_suggest_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "spelling_service_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "translation_service_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "ad_measurement_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "do_not_track_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "fledge_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "hyperlink_auditing_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "privacy_sandbox_enabled",
|
||||
"description": "1 if enabled else 0 - * Deprecated since Chrome 111, see notes in the [https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled](Chrome extensions API docs)",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "protected_content_enabled",
|
||||
"description": "1 if enabled else 0 - * Windows and ChromeOS only",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "referrers_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "third_party_cookies_allowed",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
},
|
||||
{
|
||||
"name": "topics_enabled",
|
||||
"description": "1 if enabled else 0",
|
||||
"required": false,
|
||||
"type": "integer"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/privacy_preferences",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/privacy_preferences.yml"
|
||||
},
|
||||
{
|
||||
"name": "puppet_info",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
|
|
@ -28719,58 +28852,6 @@
|
|||
"url": "https://fleetdm.com/tables/puppet_info",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/puppet_info.yml"
|
||||
},
|
||||
{
|
||||
"name": "puppet_logs",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Outputs [Puppet](https://puppet.com/) logs from the last run.",
|
||||
"platforms": [
|
||||
"darwin",
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"evented": false,
|
||||
"examples": "List Puppet logs that are of a level of anything but informational.\n```\nSELECT * FROM puppet_logs WHERE level!='info';\n```",
|
||||
"columns": [
|
||||
{
|
||||
"name": "level",
|
||||
"description": "The level of the log item (info, error, etc).",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"description": "The log message content.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"description": "The source of the log item.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "time",
|
||||
"description": "The time at which this item was logged.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"description": "The file from which osquery read this log.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "line",
|
||||
"description": "The line from which this log item was read.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/puppet_logs",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/puppet_logs.yml"
|
||||
},
|
||||
{
|
||||
"name": "puppet_state",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
|
|
@ -28865,6 +28946,58 @@
|
|||
"url": "https://fleetdm.com/tables/puppet_state",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/puppet_state.yml"
|
||||
},
|
||||
{
|
||||
"name": "puppet_logs",
|
||||
"notes": "This table is not a core osquery table. It is included as part of [Fleetd](https://fleetdm.com/docs/using-fleet/orbit), the osquery manager from Fleet. Fleetd can be built with [fleetctl](https://fleetdm.com/docs/using-fleet/adding-hosts#osquery-installer).",
|
||||
"description": "Outputs [Puppet](https://puppet.com/) logs from the last run.",
|
||||
"platforms": [
|
||||
"darwin",
|
||||
"windows",
|
||||
"linux"
|
||||
],
|
||||
"evented": false,
|
||||
"examples": "List Puppet logs that are of a level of anything but informational.\n```\nSELECT * FROM puppet_logs WHERE level!='info';\n```",
|
||||
"columns": [
|
||||
{
|
||||
"name": "level",
|
||||
"description": "The level of the log item (info, error, etc).",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"description": "The log message content.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"description": "The source of the log item.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "time",
|
||||
"description": "The time at which this item was logged.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "file",
|
||||
"description": "The file from which osquery read this log.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "line",
|
||||
"description": "The line from which this log item was read.",
|
||||
"required": false,
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"url": "https://fleetdm.com/tables/puppet_logs",
|
||||
"fleetRepoUrl": "https://github.com/fleetdm/fleet/blob/main/schema/tables/puppet_logs.yml"
|
||||
},
|
||||
{
|
||||
"name": "pwd_policy",
|
||||
"platforms": [
|
||||
|
|
|
|||
87
schema/tables/privacy_preferences.yml
Normal file
87
schema/tables/privacy_preferences.yml
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
name: privacy_preferences
|
||||
notes: This table is not a core osquery table. It is included as part of the Fleetd Chrome extension.
|
||||
description: Information on Chrome features that can affect a user's privacy, available from the [chrome.privacy APIs](https://developer.chrome.com/docs/extensions/reference/privacy/)
|
||||
platforms:
|
||||
- chrome
|
||||
evented: false
|
||||
columns:
|
||||
- name: network_prediction_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: web_rtc_ip_handling_policy
|
||||
description: One of "default", "default_public_and_private_interfaces", "default_public_interface_only", or "disable_non_proxied_udp"
|
||||
required: false
|
||||
type: text
|
||||
- name: autofill_address_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: autofill_credit_card_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: autofill_enabled
|
||||
description: 1 if enabled else 0 - * Deprecated since Chrome 70, please use privacy.services.autofillAddressEnabled and privacy.services.autofillCreditCardEnabled. This currently remains for backward compatibility and will be removed in the future.
|
||||
required: false
|
||||
type: integer
|
||||
- name: save_passwords_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: safe_browsing_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: safe_browsing_extended_reporting_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: search_suggest_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: spelling_service_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: translation_service_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: ad_measurement_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: do_not_track_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: fledge_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: hyperlink_auditing_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: privacy_sandbox_enabled
|
||||
description: 1 if enabled else 0 - * Deprecated since Chrome 111, see https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled
|
||||
required: false
|
||||
type: integer
|
||||
- name: protected_content_enabled
|
||||
description: 1 if enabled else 0 - * Windows and ChromeOS only
|
||||
required: false
|
||||
type: integer
|
||||
- name: referrers_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: third_party_cookies_allowed
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
- name: topics_enabled
|
||||
description: 1 if enabled else 0
|
||||
required: false
|
||||
type: integer
|
||||
25
yarn.lock
25
yarn.lock
|
|
@ -3292,6 +3292,14 @@
|
|||
"@types/connect" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/chrome@0.0.237":
|
||||
version "0.0.237"
|
||||
resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.237.tgz#20a38e1d1134e2725fc7eb43c881e55e1b24ddd7"
|
||||
integrity sha512-krsRmyfMlck5r+H1EapsrrucDRq6iRm0NAi5fapr93CgnpVMDdK+h2+z4x79GegdW7BNH9Vb//gkptORwwwVIQ==
|
||||
dependencies:
|
||||
"@types/filesystem" "*"
|
||||
"@types/har-format" "*"
|
||||
|
||||
"@types/classnames@0.0.32":
|
||||
version "0.0.32"
|
||||
resolved "https://registry.npmjs.org/@types/classnames/-/classnames-0.0.32.tgz"
|
||||
|
|
@ -3406,6 +3414,18 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/file-saver/-/file-saver-2.0.5.tgz#9ee342a5d1314bb0928375424a2f162f97c310c7"
|
||||
integrity sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==
|
||||
|
||||
"@types/filesystem@*":
|
||||
version "0.0.32"
|
||||
resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.32.tgz#307df7cc084a2293c3c1a31151b178063e0a8edf"
|
||||
integrity sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==
|
||||
dependencies:
|
||||
"@types/filewriter" "*"
|
||||
|
||||
"@types/filewriter@*":
|
||||
version "0.0.29"
|
||||
resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee"
|
||||
integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==
|
||||
|
||||
"@types/find-cache-dir@^3.2.1":
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz#7b959a4b9643a1e6a1a5fe49032693cc36773501"
|
||||
|
|
@ -3426,6 +3446,11 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/har-format@*":
|
||||
version "1.2.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.11.tgz#26aff34e9c782b2648cc45778abadcd930f7db43"
|
||||
integrity sha512-T232/TneofqK30AD1LRrrf8KnjLvzrjWDp7eWST5KoiSzrBfRsLrWDPk4STQPW4NZG6v2MltnduBVmakbZOBIQ==
|
||||
|
||||
"@types/hast@^2.0.0":
|
||||
version "2.3.4"
|
||||
resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz"
|
||||
|
|
|
|||
Loading…
Reference in a new issue