Commit graph

12756 commits

Author SHA1 Message Date
Jahziel Villasana-Espinoza
5d2e40bc8b
feat: backend for VPP related global activities (#20484)
> Related issue: #19870 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
2024-07-16 10:51:08 -04:00
Martin Angers
464c248f30
VPP: List/Get software title endpoints to return VPP apps (#20445) 2024-07-15 15:06:30 -04:00
Jahziel Villasana-Espinoza
aa1645628d
feat: get app store apps, add app store app to Fleet (#20362)
> Related issue: #19867 

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- [x] Manual QA for all new/changed functionality
2024-07-11 16:09:30 -04:00
Dante Catalfamo
51e2979965
VPP GitOps Config (#20238)
Currently covers the ability to sync and verify config with fleet
server. Bulk API moved to its own ticket (#20278) while product decides
its capabilities
2024-07-10 14:53:03 -04:00
Gabriel Hernandez
845b524dcc
add/remove/disable vpp token in Fleet UI (#20127)
relates to #19866

> NOTE: API integration work still needs to be done, which will happen
in another PR.

This adds the ability to add, remove, or disable a VPP token in the
Fleet UI. This includes:

**Vpp integration page with VPP card:**


![image](https://github.com/fleetdm/fleet/assets/1153709/99b1ca9b-8872-447f-a085-b5385a2b7f7e)


![image](https://github.com/fleetdm/fleet/assets/1153709/1cdb80a2-1afe-4739-994c-fe7430449f13)


![image](https://github.com/fleetdm/fleet/assets/1153709/79ec7927-f905-48c4-b1b9-42d4d6b41028)

**VPP setup page with steps to set up VPP:**


![image](https://github.com/fleetdm/fleet/assets/1153709/dec203e4-01d3-4e1d-b493-be3772b72813)

**VPP setup page with VPP info:**


![image](https://github.com/fleetdm/fleet/assets/1153709/afccba29-e97b-4937-8235-4706e39d9333)

**Disable VPP modal:**


![image](https://github.com/fleetdm/fleet/assets/1153709/da4a2db3-7546-4f3b-8ec0-d77ad7bff19f)

**renew Vpp modal:**


![image](https://github.com/fleetdm/fleet/assets/1153709/8224f466-6aae-43bd-a120-3de5f0c90064)

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Manual QA for all new/changed functionality
2024-07-10 17:05:09 +01:00
Martin Angers
0945ef9889 Merge main and fix conflicts 2024-07-10 09:08:08 -04:00
Martin Angers
0913f77bdd Merge main and fix conflicts 2024-07-10 08:55:02 -04:00
Roberto Dip
7b20060350
cover edge case for alternative zoom installer (#20286)
Zoom offers two installers:

- Zoom for IT admins (already covered previously)
- "Regular" Zoom (covered here)

This tweaks the logic made as part of #19144 to ensure we cover both

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
2024-07-10 08:05:09 -03:00
Eric
e5188eaac6
Website: disable Mergefreeze related code in GH webhook (#20292)
Changes:
- Commented out code related to Mergefreeze in the receive-from-github
webhook.
2024-07-09 17:57:15 -05:00
Eric
670a8ef2a0
Website: Set leadSource on new contact records (#20285)
Closes: #20284

Changes:
- Updated the `update-or-create-contact-and-account` helper to set a
lead source on new contact records
- Updated `update-or-create-contact-and-account-and-create-lead` to to
pass in a lead source to the `update-or-create-contact-and-account`
helper
- Updated save-questionnaire-progress to set a lead source on newly
created contact records
2024-07-09 17:04:12 -05:00
dependabot[bot]
40bc8e8226
Bump ws from 8.16.0 to 8.17.1 in /ee/fleetd-chrome (#19814) 2024-07-09 14:58:55 -07:00
jacobshandling
d54ac3a35b
Add test for fleetctl query --hosts (#20276) 2024-07-09 14:13:09 -07:00
Luke Heath
12c3d76b24
Update go.mod (#20273)
Fixes code scanning warning: 

As of Go 1.21, toolchain versions [must use the 1.N.P
syntax](https://go.dev/doc/toolchain#version).

1.22 in tools/terraform/go.mod does not match this syntax and there is
no additional toolchain directive, which may cause some go commands to
fail.
2024-07-09 11:44:35 -07:00
JD
b31256c57c
Article: Sysadmin diaries: lost device (#20270)
Article: Sysadmin diaries: lost device
https://github.com/fleetdm/confidential/issues/6717
2024-07-09 11:03:58 -07:00
Tim Lee
383c59bbd6
Add retries to VM Auto Enroll Script (#20153) 2024-07-09 11:51:31 -06:00
Tim Lee
2ea369c093
Custom Vulnerability Matching (#20118) 2024-07-09 11:50:22 -06:00
Eric
4ff20de14d
Handbook: Fix broken link in why-this-way.md (#20259)
Changes:
- Fixed a broken link on the why this way handbook page.
2024-07-09 12:37:21 -05:00
jacobshandling
ec11e3d1d0
fleetctl, API, copy updates around host identifiers (#20220)
## Addresses #19127 
![Screenshot 2024-07-08 at 4 49
33 PM](https://github.com/fleetdm/fleet/assets/61553566/b4704eb9-9707-4cbf-8959-ec67dde57103)
- Also replace all ocurrences of "comma separated" with
"comma-separated"

- [x] Changes file added for user-visible changes in `changes/`
- [x] `SELECT *` is avoided, SQL injection is prevented (using
placeholders for values in statements)
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-07-09 10:25:01 -07:00
Tim Lee
812140a760
Add createdAt to Vulnerability responses (#20019) 2024-07-09 11:09:16 -06:00
Tim Lee
a3c44688c8
Get MDM Command Filters (#20154) 2024-07-09 11:06:06 -06:00
Lucas Manuel Rodriguez
2875a9dbb8
Fixes to fleetctl debug connection and TLS certs documentation (#20166)
#6085

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [X] Added/updated tests
- [x] Manual QA for all new/changed functionality
2024-07-09 14:04:23 -03:00
Roberto Dip
e90b90d905
Match macOS software <-> titles using bundle identifier (#19969)
for #19144

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2024-07-09 13:43:21 -03:00
Marko Lisica
055145b7d3
API design: Software self-service (#20223)
API design for:
- #17587

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2024-07-09 18:23:44 +02:00
Dante Catalfamo
0906f917c8
Only check for new hardware UUID on macos (#20258)
#20168
2024-07-09 12:22:11 -04:00
Drew Baker
543354540a
Update workstations-canary.yml (#20267) 2024-07-09 11:16:42 -04:00
Noah Talerman
5490228d0c
Update pricing-features-table.yml (#20208)
- Add `customer-deebradel` commit

---------

Co-authored-by: Michael Pinto <147431865+pintomi1989@users.noreply.github.com>
2024-07-09 10:55:43 -04:00
Martin Angers
1cbd186a66 Merge main and fix conflicts 2024-07-09 10:54:19 -04:00
Victor Lyuboslavsky
4a09cd1ce8
Validate base-fleetd daily (#20196)
#19126
Validate base-fleetd daily

Workflow run: https://github.com/fleetdm/fleet/actions/runs/9781375393
2024-07-09 09:54:01 -05:00
Dante Catalfamo
d55108200a
Fix an issue created by another PR (#20226)
A previous PR updated this script to only run as root, but broke running
on github actions as they're not root.

This is cherry picked from my Linux ARM64 branch, which also fixes this
issue
2024-07-09 10:13:14 -04:00
Jahziel Villasana-Espinoza
57fa67c8c0
fix: filter by vulnerable software (#20241)
> Related issue: #20050

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
2024-07-09 10:02:49 -04:00
Roberto Dip
cc13d3ce98
combine osquery + mdm information for connected_to_fleet (#20230)
for #20057

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
2024-07-09 10:48:33 -03:00
RachelElysia
a5dc73b42a
Frontend of iOS/iPadOS as platforms/labels (#20157) 2024-07-09 09:18:00 -04:00
RachelElysia
a905204e1c
Fleetctl: Add YAML validation error for apply command (#20254) 2024-07-09 09:14:25 -04:00
RachelElysia
b221a6e95e
Fleet UI: Update to consistent button styling (#20247) 2024-07-09 09:09:18 -04:00
Luke Heath
d73446d1fe
Set workstations to use DDM for macOS updates (#20178)
- On workstations, we dogfood the current recommended best practice:
https://fleetdm.com/docs/using-fleet/mdm-os-updates
- On workstations (canary), we dogfood using the calendar feature to run
managed OS updates.
2024-07-08 18:22:59 -04:00
jacobshandling
20e1e4edfe
Add hostname to calendar event (maintenance window) bodies (#20235)
## Addresses #19281 

<img width="825" alt="Screenshot 2024-07-05 at 10 47 25 AM"
src="https://github.com/fleetdm/fleet/assets/61553566/d50ad460-b358-48aa-8e93-2f6d09472d87">



- [x] Changes file added for user-visible changes in `changes/`,
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-07-08 14:25:49 -07:00
Lucas Manuel Rodriguez
28ca463d13
iOS/iPadOS as platforms/labels (#20126)
#19963 

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [X] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [X] Added/updated tests
- [X] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [X] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [X] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [X] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [X] Manual QA for all new/changed functionality

---

# API changes for dashboard UI changes

## Main dashboard page

`GET /api/latest/fleet/host_summary?low_disk_space=32` (see
`ios`/`ipados` platforms and `iOS`/`iPadOS` labels)
```json
{
  "totals_hosts_count": 9,
  "online_count": 0,
  "offline_count": 9,
  "mia_count": 0,
  "missing_30_days_count": 0,
  "new_count": 0,
  "all_linux_count": 2,
  "low_disk_space_count": 3,
  "builtin_labels": [
    {
      "id": 1,
      "name": "macOS 14+ (Sonoma+)",
      "description": "macOS hosts with version 14 and above",
      "label_type": "builtin"
    },
    {
      "id": 7,
      "name": "All Hosts",
      "description": "All hosts which have enrolled in Fleet",
      "label_type": "builtin"
    },
    {
      "id": 8,
      "name": "macOS",
      "description": "All macOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 9,
      "name": "Ubuntu Linux",
      "description": "All Ubuntu hosts",
      "label_type": "builtin"
    },
    {
      "id": 10,
      "name": "CentOS Linux",
      "description": "All CentOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 11,
      "name": "MS Windows",
      "description": "All Windows hosts",
      "label_type": "builtin"
    },
    {
      "id": 12,
      "name": "Red Hat Linux",
      "description": "All Red Hat Enterprise Linux hosts",
      "label_type": "builtin"
    },
    {
      "id": 13,
      "name": "All Linux",
      "description": "All Linux distributions",
      "label_type": "builtin"
    },
    {
      "id": 14,
      "name": "chrome",
      "description": "All Chrome hosts",
      "label_type": "builtin"
    },
    {
      "id": 15,
      "name": "iOS",
      "description": "All iOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 16,
      "name": "iPadOS",
      "description": "All iPadOS hosts",
      "label_type": "builtin"
    }
  ],
  "platforms": [
    {
      "platform": "darwin",
      "hosts_count": 3
    },
    {
      "platform": "ios",
      "hosts_count": 1
    },
    {
      "platform": "ipados",
      "hosts_count": 1
    },
    {
      "platform": "rhel",
      "hosts_count": 1
    },
    {
      "platform": "ubuntu",
      "hosts_count": 1
    },
    {
      "platform": "windows",
      "hosts_count": 2
    }
  ]
}
```

## After selecting a platform

`GET /api/latest/fleet/host_summary?platform=ios&low_disk_space=100`
(similar with `ipados`)
```json
{
  "totals_hosts_count": 1,
  "online_count": 0,
  "offline_count": 1,
  "mia_count": 0,
  "missing_30_days_count": 0,
  "new_count": 0,
  "all_linux_count": 0,
  "low_disk_space_count": 1,
  "builtin_labels": [
    {
      "id": 1,
      "name": "macOS 14+ (Sonoma+)",
      "description": "macOS hosts with version 14 and above",
      "label_type": "builtin"
    },
    {
      "id": 7,
      "name": "All Hosts",
      "description": "All hosts which have enrolled in Fleet",
      "label_type": "builtin"
    },
    {
      "id": 8,
      "name": "macOS",
      "description": "All macOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 9,
      "name": "Ubuntu Linux",
      "description": "All Ubuntu hosts",
      "label_type": "builtin"
    },
    {
      "id": 10,
      "name": "CentOS Linux",
      "description": "All CentOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 11,
      "name": "MS Windows",
      "description": "All Windows hosts",
      "label_type": "builtin"
    },
    {
      "id": 12,
      "name": "Red Hat Linux",
      "description": "All Red Hat Enterprise Linux hosts",
      "label_type": "builtin"
    },
    {
      "id": 13,
      "name": "All Linux",
      "description": "All Linux distributions",
      "label_type": "builtin"
    },
    {
      "id": 14,
      "name": "chrome",
      "description": "All Chrome hosts",
      "label_type": "builtin"
    },
    {
      "id": 15,
      "name": "iOS",
      "description": "All iOS hosts",
      "label_type": "builtin"
    },
    {
      "id": 16,
      "name": "iPadOS",
      "description": "All iPadOS hosts",
      "label_type": "builtin"
    }
  ],
  "platforms": [
    {
      "platform": "ios",
      "hosts_count": 1
    }
  ]
}
```

### To populate list of MDM solutions of a selected platform

`GET /api/latest/fleet/hosts/summary/mdm\?platform=ios` (similar with
`ipados`)

```json
{
  "counts_updated_at": "2024-06-27T21:56:45Z",
  "mobile_device_management_enrollment_status": {
    "enrolled_manual_hosts_count": 0,
    "enrolled_automated_hosts_count": 1,
    "pending_hosts_count": 0,
    "unenrolled_hosts_count": 0,
    "hosts_count": 1
  },
  "mobile_device_management_solution": [
    {
      "id": 1,
      "name": "Fleet",
      "server_url": "https://lucas-fleet.ngrok.app/mdm/apple/mdm",
      "hosts_count": 1
    }
  ]
}
```

### To populate OS versions of a selected platform

`GET /api/latest/fleet/os_versions?platform=ipados` (similar with `ios`)
```json
{
  "meta": {
    "has_next_results": false,
    "has_previous_results": false
  },
  "count": 1,
  "counts_updated_at": "2024-06-27T21:36:12Z",
  "os_versions": [
    {
      "os_version_id": 7,
      "hosts_count": 1,
      "name": "iPadOS 17.5.1",
      "name_only": "iPadOS",
      "version": "17.5.1",
      "platform": "ipados",
      "vulnerabilities": []
    }
  ]
}
```

## Filtering hosts by the two new `iOS`/`iPadOS` labels

Works the same as with other labels.
2024-07-08 18:05:29 -03:00
Eric
ed3417de9d
Fix broken link in what-are-fleet-policies.md (#20260)
Changes:
- Fixed a broken link in the "What are Fleet policies?" article
2024-07-08 15:54:40 -05:00
Noah Talerman
2d2178655c
Update GitOps reference docs (#20255)
- `fleetctl apply` is for backwards compatibility GitOps
- Remove link to contributor doc page
2024-07-08 16:20:12 -04:00
Noah Talerman
c059b197c5
Update features.yml (#20256)
- Remove customer commit and date
2024-07-08 15:38:48 -04:00
Eric
df9a27769a
Fix broken link in GitOps docs (#20251)
Changes:
- Fixed a broken link on the GitOps documentation page
2024-07-08 13:52:18 -05:00
Eric
c98ef33297
Website: update relative link modification (#20253)
Changes:
- Updated the build-static-content script to use clearer variable names
and to replace spaces in folders when modifying relative links to
documentation pages.
2024-07-08 11:59:39 -05:00
Eric
caa27322fe
Website: Disable lead creation from get started questionnaire submissions (#20250)
Changes:
 - Removed SF lead creation in the `save-questionnaire-progress` action.
2024-07-08 11:29:32 -05:00
Victor Lyuboslavsky
df141cdfa4
Check for calendar updates after callbacks from Google (#20156)
#19352 

Video explaining code changes:
https://www.loom.com/share/370200a276b84aa388effd6ebd762e01?sid=038508c4-f3c2-40c0-baf6-6b6df682d1f0

In maintenance windows using Google Calendar, calendar event is now
recreated within 30 seconds if deleted or moved to the past.
- Added new endpoint for Google Calendar:
`/api/_version_/fleet/calendar/webhook/{event_uuid}`
- Added UUID to `calendar_events` table to make webhook lookup more
efficient
- webhook endpoint will only recreate event if needed -- it will not
fire webhook. Webhook is still done by the cron job.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] Added/updated tests
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
- [x] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
2024-07-08 10:20:03 -05:00
Roberto Dip
e9dba549ca
add a client for VPP calls (#20243)
Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2024-07-08 10:50:20 -03:00
Eric
61e34775d5
Website: Update build-static-content script to treat trust.fleetdm.com links as external links (#20180)
Closes: https://github.com/fleetdm/confidential/issues/7186

Changes:
- Updated the build-static-content script to treat trust.fleetdm.com
links as external links.
2024-07-05 17:16:18 -05:00
Roberto Dip
d9797d2a3f
add shared pieces of db functionality (#20239)
part of #18867

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Added/updated tests
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- For database migrations:
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).
2024-07-05 18:04:41 -03:00
Mike Thomas
80b188951d
Website update mdm tooltip (#20222)
Added a tooltip to the "Complete device state" feature.

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2024-07-05 15:47:55 -05:00
Robert Fairburn
3972c8a004
Update ref architecture + pricing to reflect terraform module (#20234) 2024-07-05 14:28:33 -05:00
Nathanael Holliday
29f00d7723
Add "Send an NDA to a customer" section to handbook. (#19890)
Added a section in the sales page about how to go about sending Fleet's
NDA out after it was brought to our attention no section existed.

---------

Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2024-07-05 12:05:18 -05:00