Commit Graph
2665 Commits
Author SHA1 Message Date
Tim Lee bda812c329 Hotfix: Pass sql test dump in via stdin (#20871) 2024-07-31 05:09:52 -06:00
Victor Lyuboslavsky 31224ccd34 Added VPP support for iOS/iPadOS (#20837)
#19447 
iOS and iPadOS apps can be installed using Apple's VPP (Volume Purchase
Program)

VPP apps are now using a composite primary key (Adam ID and platform)
because we want to keep iOS/iPadOS/macOS separate. It is possible for
one app to be installable on all Apple platforms.

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#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
2024-07-30 22:43:51 +02:00
Tim Lee 0e9705fdf7 Add No Team to Software Backend (#20822) 2024-07-30 11:19:05 -06:00
Sarah Gillespie 53ba476516 Fix unreleased bug: API error message for duplicate VPP apps (#20808) 2024-07-29 15:46:27 -05:00
Sarah Gillespie 0f98e84bc8 Add minimum os version requirements to DEP enrollment flow (#20722) 2024-07-29 11:02:27 -05:00
Martin Angers cc4c34ce8a Unreleased bug fix: use of db.writer inside a transaction (#20803) 2024-07-29 11:56:01 -04:00
Victor Lyuboslavsky 66f4af0ada Calendar event body is kept up to date (#20316)
#19280

# Video

https://www.loom.com/share/0f19e9be9a5d4022900d93a9779f850d?sid=f8b33c1f-ea64-4f4b-9f64-296dbc01614e

# Checklist for submitter

- [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-29 12:04:40 +02:00
Victor LyuboslavskyandRoberto Dip 671fc628e7 Fetch installed apps from iPhone/iPad devices. (#20733)
Part 2 of https://github.com/fleetdm/fleet/issues/19447
- iOS and iPadOS user-installed apps are loaded into Fleet
- Added an additional identifier into software_titles table to
differentiate between iOS/iPadOS apps
- Updated nano queue timestamp precision

Note: TestIntegrationsMDM/TestVPPApps fails when run as part of the
suite, but passes standalone. I'd like to proceed with merging this PR,
and figure out the issue next week.

# Checklist for submitter

<!-- 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 support on fleet's osquery simulator `cmd/osquery-perf` for
new osquery data ingestion features.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Roberto Dip <rroperzh@gmail.com>
2024-07-28 16:17:27 +02:00
Jahziel Villasana-Espinoza dd3967c4ec feat: enforce FileVault during Setup Assistant (#20759)
> Related issue: #16866

# 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-26 15:50:31 -04:00
Jahziel Villasana-Espinoza 5b97d01982 chore: merge main 2024-07-24 16:50:43 -04:00
Victor Lyuboslavsky 90a1ac9faa iOS and iPadOS device details refetch (#20678)
Part 1 of #19447
- iOS and iPadOS device details refetch can now be triggered with the
existing `POST /api/latest/fleet/hosts/:id/refetch` endpoint

# Checklist for submitter

<!-- 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-24 19:46:24 +02:00
Roberto Dip 544d5b20c4 increase Apple SCEP renewal period to 180 days (#20697)
related to #19684

# 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-24 14:42:53 -03:00
Jahziel Villasana-Espinoza fda37851c1 fix: move last install data into apps and packages (#20664)
> Related issue: #20662

# 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] 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
2024-07-24 13:39:23 -04:00
Lucas Manuel Rodriguez 70d4558448 Backend support for iOS/iPadOS OS updates (#20649)
#20469 and #20471

- [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-24 14:34:23 -03:00
Tim Lee 362a0e545e 18913 ignore rejected NVD vulnerabilities (#20193)
#18913 Recreating PR (ref: https://github.com/fleetdm/fleet/pull/19972)
2024-07-24 10:53:33 -06:00
Victor Lyuboslavsky c1a5e3b7b6 Fix calendar duplicated events and other issues (#20443)
#19352
Includes the following changes:
- Re-enable calendar callback
- Introduced a new Redis key that indicates event was updated by
calendar callback. In that case, we ignore subsequent callbacks for 10
seconds.
- This reduces the amount of Google API calls, including handling of the
unneeded callback generated by our own event change.
- Read event from DB after acquiring lock. This is critical since we get
the updated ETag of the Google Calendar event from our DB. Using the
previous ETag when fetching event sometimes returns stale data,
resulting in duplicate events.
- Fixed bug in getCalendarLock where calendar cron would always think it
got the lock
- Do not refetch timezone during calendar callback to reduce Google API
load
- Watch for calendar event changes for 1 week after event end (to
account for user moving event into the future)
- #20442: Speculative improvement for Google callback latency by keeping
the same notification channel (callback URL).
- processCalendarAsync now takes at least 1 sec to process all events,
to reduce CPU/Redis load
- Increased lock expiration time from 1 minute to 20 minutes to account
for potential Google API retries, fixing occasional duplicate events.
- Added `get-events.go` helper script that gets maintenance events from
user calendars, and checks for duplicates

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
2024-07-24 13:40:33 +02:00
Roberto Dip e4d8fcc3a5 fix: adjust host filters for VPP software (#20663)
this allows to filter hosts with pending, failed and installed VPP apps.

# 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] 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
2024-07-23 16:56:24 -03:00
Roberto Dip 845bfc7e38 rearrange migrations and generate dump (#20652)
this re-arranges migrations so the VPP schema changes happen after
already merged migrations and commits the result of running `make
dump-test-schema` using mysql 8.

note that there are a bunch of seemingly unrelated changes in the diff,
but that's just the mysql 8 bump, the diff against `main` should be
smaller.
2024-07-23 11:01:23 -03:00
Jahziel Villasana-Espinoza e3e7b6a115 chore: merge main 2024-07-22 17:25:42 -04:00
Jahziel Villasana-Espinoza b449ef35fc fix: return specified errors for VPP operations (#20640)
> Related issue: #20229

# 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-22 17:14:54 -04:00
Dante Catalfamo 5e1a3d03ae MySQL 8.0 Migration (#20225)
#17249
2024-07-22 16:27:36 -04:00
Jahziel Villasana-Espinoza 746c442d01 feat: list host software integration tests (#20632)
> Related issue: #20229

# 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-22 16:11:07 -04:00
Lucas Manuel Rodriguez 1a512b2792 Do not set last_enrolled_at when re-enrolling orbit (#20620)
Server fix for #20397. (I incorrectly added that `last_enrolled_at =
NOW()` on the first iOS/iPadOS support PR.)

- [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.
- [ ] Manual QA for all new/changed functionality.
2024-07-22 14:26:03 -03:00
Dante Catalfamo 9ec52cea9c VPP Batch API (#20351)
#20278
2024-07-22 13:19:19 -04:00
jacobshandlingandJacob Shandling 2282c495c2 Correctly handle NULL timezones (#20605)
## Addresses #20618 
- Update `CalendarEvent.TimeZone` type to be `*string`
- Consider any Fleet calendar event with `NULL` timezone to need an
update, and write the latest google calendar timezone
- [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-22 10:04:29 -07:00
Gabriel Hernandez 446abc2dbc Merge branch 'main' into feat-vpp-apps-18867 2024-07-22 11:46:14 +01:00
Jahziel Villasana-Espinoza b35724bd30 fix: store the VPP token encoded (#20606)
> Related issue: part of #20229

# 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] Manual QA for all new/changed functionality
2024-07-19 18:13:01 -04:00
Jahziel Villasana-Espinoza caa7fd74e4 fix: remove temporary functions in tests (#20615)
> Related issue: #20229

# 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. -->

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-19 17:10:03 -04:00
Sarah Gillespie 80faef8327 Set source = 'apps' when creating software titles for vpp apps (#20622)
Issue #20229
2024-07-19 15:35:10 -04:00
Lucas Manuel Rodriguez fee0744a66 Perform early restart before starting sub-systems and minor refactor of orbit sub-systems (#20610)
#20397

Am calling these things that orbit run "sub-systems".

- [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
- For Orbit and Fleet Desktop changes:
- [X] Orbit runs on macOS, Linux and Windows. Check if the orbit
feature/bugfix should only apply to one platform (`runtime.GOOS`).
- [X] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [X] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).
2024-07-19 12:44:43 -03:00
Gabriel Hernandez b5f64b7d95 Merge branch 'main' into feat-vpp-apps-18867 2024-07-19 14:33:56 +01:00
Roberto Dip 97cfaebe3a add retries to iTunes API (#20602)
# 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-18 15:54:34 -07:00
Sarah Gillespie f5296ab400 Fix unreleased issues in VPP feature branch (#20590) 2024-07-18 17:39:19 -05:00
Roberto DipandJahziel Villasana-Espinoza 87f9a9a3e7 feat: VPP app installation flow (#20448)
> Related issue: #19868 

# 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: Jahziel Villasana-Espinoza <jahziel@fleetdm.com>
2024-07-18 18:35:26 -04:00
b8b03b1e5a VPP: update list software titles/list host's software response payloads (#20553)
#20536 

# Checklist for submitter

- [ ] 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.
- [ ] Added/updated tests

---------

Co-authored-by: Roberto Dip <rroperzh@gmail.com>
Co-authored-by: Roberto Dip <dip.jesusr@gmail.com>
2024-07-18 14:33:07 -07:00
Tim Lee a47db8bbaf Disable calendar callbacks (#20547) 2024-07-17 15:27:03 -06:00
Martin Angers e115516e8c VPP: fix matching software title to existing one if one exists (#20534) 2024-07-17 15:41:51 -04:00
Martin Angers 74b1dc4f0d VPP: Add PK to vpp_apps_teams to avoid migration issues (#20542) 2024-07-17 15:22:22 -04:00
Martin Angers 1c85c34216 VPP: fix download package path, implement delete VPP app support (#20530) 2024-07-17 14:19:13 -04:00
Martin Angers 75bdc05f5d VPP: unify List host's software and List my device's software response payload (#20519) 2024-07-16 16:52:04 -04:00
jacobshandlingandJacob Shandling 22a9eb7d60 Include timezone write when updating events; Write updated gcal timezone if only event change (#20435)
## Addresses #20431 

https://www.loom.com/share/0d88eceb8fb44ef3bec70d2b0dc7479c?sid=350bb4c2-2abe-4b80-b99f-ef6c8109efac

- Include timezone write when updating events
- Write updated gcal timezone to Fleet events, even if it's the only
change
- Have frontend handle `"UTC"` being set as timezone as if it were `nil`
- Small cleanups
 
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-07-16 13:27:33 -07:00
Martin Angers 0f9a549ed4 VPP: add VPP apps to list host's software endpoint (#20483) 2024-07-16 16:18:44 -04:00
Sarah Gillespie 7dda2e9f84 Revert changes to DEP enrollment flow (#20506)
Reverts #20162 and #20355 per [QA
findings](https://github.com/fleetdm/fleet/issues/19185#issuecomment-2229544188)
2024-07-16 11:44:48 -05:00
Roberto Dip 5ea213e875 improve VPP API error handling (#20446)
reading the [docs][1] I realized we're missing some recommendations for
error management.

the docs also note that certain operations like assignments happen
asynchronously and you must subscribe to events to get those errors.

this part wasn't estimated nor considered.

[1]:
https://developer.apple.com/documentation/devicemanagement/app_and_book_management/handling_error_responses

# 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
2024-07-16 12:16:00 -04:00
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
Victor Lyuboslavsky 5cc5e527e5 Fixing Homebrew intellij/pycharm CE false negative. (#20461)
#19853
Fixing Homebrew intellij/pycharm CE false negative.

# 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-15 12:47:10 -05:00
Tim Lee 60c45c3d7d HotFix err on script timeouts for legacy orbit versions (#20462) 2024-07-15 11:17:20 -06:00
Victor Lyuboslavsky dc7a3cd827 Stop channel bug fix and reload frequency (#20425)
Unreleased bug fix for #19352
2024-07-15 09:25:44 -05:00
Roberto Dip f20e4037b2 send an APNs push to hosts with pending commands every minute (#19941)
Initial naive implementation that sends push notifications to hosts with
pending enqueued commands every 1 minute.

# 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. -->

- [ ] 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-12 15:39:59 -03:00