Commit Graph
443 Commits
Author SHA1 Message Date
Sarah Gillespie 9f0404fbe1 Add fallback checks for MDM unenrollment during migration flow (#19860)
Follow up to address additional issues uncovered during QA of #19512
2024-06-18 20:05:44 -03:00
Dante Catalfamo c9d8f852f1 Add missing changelogs from #19706 (#19832)
#19706
2024-06-18 11:49:22 -04:00
Dante Catalfamo 88ce609aae Remove incorrect comment in windows_extension (#19833)
Remove comment left in by accident from previous iteration.

Caught by @lucasmrod 🙂 
https://github.com/fleetdm/fleet/pull/19709#discussion_r1644550889
2024-06-18 11:47:48 -04:00
Sarah Gillespie 0cb2767f18 Add support for --end-user-email option when building fleetd packages for Linux (#19795) 2024-06-18 10:10:19 -05:00
Lucas Manuel Rodriguez cde6365732 Add missing orbit/changes files (#19831)
Missing orbit/changes file for #19709 and #19726.
2024-06-18 11:33:05 -03:00
Dante Catalfamo e9efbef41a MDM Azure enable scripts by default (#19706)
#17528
2024-06-17 16:37:15 -04:00
Dante Catalfamo 72dd25c9cb Disable mdm_bridge table on Windows Server (#19709)
#19239
2024-06-14 16:56:58 -04:00
Sarah Gillespie c6042de9c9 Fix bug where MDM migration fails when attempting to renew enrollment profiles on macOS Sonoma devices (#19726) 2024-06-13 14:13:43 -05:00
github-actions[bot]andlucasmrod 780cdbab36 Update versions of fleetd components in Fleet's TUF [automated] (#19712)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-06-13 09:54:14 -03:00
Jahziel Villasana-Espinoza 0b98411e5b fix: avoid overwriting old host data when using MacOS Migration Assistant to move to a new machine (#19682)
> Related issue: #17934 

# 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] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [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-06-12 13:30:50 -04:00
github-actions[bot]andlucasmrod 2a1ace1ed2 Update versions of fleetd components in Fleet's TUF [automated] (#19678)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-06-11 20:36:23 -03:00
Lucas Manuel RodriguezandSharon Katz 606635b131 Release fleetd 1.26.0 (#19673)
- **Release fleetd 1.26.0**

---------

Co-authored-by: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com>
2024-06-11 19:51:57 -03:00
Lucas Manuel Rodriguez 1a475b857c Move changes from orbit to fleet (#19672)
Moving changes file to fleet (PR:
https://github.com/fleetdm/fleet/commit/4571b540fbaea41aa1144e87377a02a79b57f878)
2024-06-11 19:03:16 -03:00
Jacob ShandlingandJacob Shandling 4197076b16 fleetd tcc_access table: handle non-existent user tcc.db (#19660)
## Follow up to #19355 

- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-06-11 13:40:59 -07:00
Lucas Manuel Rodriguez 7c427c8ee8 Revert "Update pmset_darwin.go" (to reduce testing of 1.26.0) (#19661)
This reverts commit aa7a2689f1ce84049aa8510db795a8eeaf8f91cd.
2024-06-11 17:19:19 -03:00
Brock Walters 0220f8fb8c Update pmset_darwin.go (#19639)
From the pmset man page:

-g custom displays custom settings for all power sources.

i.e., pmset -g is incomplete. 

What would be even better is pmset -g everything which outputs results
from all -g options but the schema of this data is inconsistent (it's
not all key/vals) so would probably require more work.
2024-06-11 14:30:09 -04:00
Dante Catalfamo ecef0d4263 fleetd_logs table (#19489)
#18234
2024-06-11 11:02:50 -04:00
Martin Angers 6dd365f266 Fix scripts that block execution of subsequent scripts when timing out on Windows (#19485) 2024-06-11 09:21:57 -04:00
Lucas Manuel Rodriguez 7eb3628fe6 Support RPM upgrades on fleetd packages (#19494)
#18534

- [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] 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-06-10 16:49:45 -03:00
0ea339c7e6 Add macOS tcc_access table to fleetd (#19355)
## Addresses #18222 

Table results:
<img width="2991" alt="Screenshot 2024-05-29 at 6 15 21 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/eb87e744-658a-4937-92a4-30b6038a4625">

Optimized querying of host `TCC.db`s as constrained by query `WHERE`
clauses on `uid`:
<img width="1419" alt="Screenshot 2024-06-03 at 6 20 50 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/62475537-61c5-4d75-8b8e-10fe7d21462d">
<img width="1419" alt="Screenshot 2024-06-03 at 6 19 31 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/9901095f-5a61-4671-b45e-5935837f2f0c">
<img width="1419" alt="Screenshot 2024-06-03 at 6 15 01 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/6c6891cc-6baf-4b00-b446-a967d80cacfd">
<img width="1419" alt="Screenshot 2024-06-03 at 6 17 54 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/cadbb76d-abab-405f-8b65-683885e9e164">



- [x] Changes file added for user-visible changes in `orbit/changes/`.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality on macOS (only
supported OS)

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2024-06-06 13:52:06 -07:00
Tim Lee dcc2cdac4b Add fleetd SOFA user agent (#19359) 2024-06-06 12:24:43 -06:00
gillespi314 949acfb2bd Merge branch 'main' into feat-software-self-service 2024-05-31 16:35:56 -05:00
Jacob ShandlingandJacob Shandling 4571b540fb Fix modal background scrollbars showing up when no scroll necessary (#19422)
## Addresses #19284 

![Screenshot-2024-05-24-at-21725PM](https://github.com/fleetdm/fleet/assets/61553566/11b02fec-a91f-4156-b8f6-a5637f570834)

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

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-05-31 13:53:38 -07:00
Martin Angers 6b9fecf172 Fix conflicts 2024-05-29 16:08:51 -04:00
Martin Angers 669d84128e Software SS: add menu item to Fleet Desktop (#19289) 2024-05-27 14:00:03 -04:00
github-actions[bot]andlucasmrod 4f315b89d3 Update versions of fleetd components in Fleet's TUF [automated] (#19220)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-05-24 09:26:23 -03:00
Roberto Dip 987b64a0c7 update to go1.22.3 + dependencies (#19142)
For #16795, this:

- Updates Go to go1.22.3
- Per
https://github.com/fleetdm/fleet/issues/16795#issuecomment-2100450618, I
also ran the following to update the versions requested by @getvictor

```
go get github.com/kataras/golog@v0.1.12
go get github.com/kataras/iris/v12@v12.2.11
go get github.com/sethvargo/go-password@v0.3.0
```

**Notes**

After this is merged people will need to update their Go version. I use
gvm and I did it like:

```
$ gvm install go1.22.3
$ gvm use go1.22.3 --default
```

**Relevant changes**

The release notes mention:

> Previously, the variables declared by a “for” loop were created once
> and updated by each iteration. In Go 1.22, each iteration of the loop
> creates new variables, to avoid accidental sharing bugs.

However, we already have a lint rule (see
https://github.com/fleetdm/fleet/pull/13877) for this scenario, so it
shouldn't affect us.
2024-05-23 16:23:38 -03:00
Victor Lyuboslavsky 5eb48b4f88 ignore osquery error when valid host info data is returned (#19233)
#19218
This fixes the "exit status 78" error seen at orbit startup.

Manually tested by forcing orbit to take the "error" path.

# 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.
- [ ] Added/updated tests
- [x] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [ ] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [ ] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).
2024-05-23 12:31:39 -05:00
Lucas Manuel Rodriguez a10befe657 Release fleetd 1.25.0 (#19203) 2024-05-22 14:38:24 -03:00
Roberto Dip 8d9dcafbbc Merge remote-tracking branch 'origin/main' into feat-software-installers 2024-05-16 17:23:39 -03:00
Lucas Manuel Rodriguez bb310e685d Support Ubuntu 24.04 with Xorg (by detecting user's DISPLAY environment variable) (#18996)
#18925 (Should also fix #17660.)

Tests:
- Ubuntu 22.04.2
	- Wayland
		- Works with chrome  
		- Doesn't work with Firefox. 
	- Xorg
		- Works with Chrome.  
		- Works with Firefox. 
- Ubuntu 24.04
	- Wayland
		- Doesn't work with Chrome. 
		- Doesn't work with Firefox. 
- Xorg (when using Xorg it defaults to `DISPLAY=:1`, and with the
changes in this PR it works):
		- Works with Chrome.  
		- Works with Firefox.  
---

How to change between Wayland and Xorg:

- Set `WaylandEnable=false` in `/etc/gdm3/custom.conf` and reboot.

---

How to determine what's running:
```sh
$ loginctl
SESSION  UID USER SEAT  TTY 
      2 1000 luk  seat0 tty2
     c2 1000 luk        

$ loginctl show-session 2 -p Type
# will output
Type=wayland
or
Type=x11
```
---

- [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
  - For Orbit and Fleet Desktop changes:
- [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-05-16 08:39:30 -03:00
Roberto Dip 1ef19e4ff2 Merge remote-tracking branch 'origin/main' into feat-software-installers 2024-05-15 19:55:02 -03:00
Roberto Dip ad94dff814 installer report and rollback fixes (#19046)
for https://github.com/fleetdm/fleet/issues/19020

- Fixes the rollback logic to get the right script for the software
being installed
- Fixes the messages displayed in the install results

# 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-05-15 19:18:35 -03:00
Dante Catalfamo 5fb52f6baf Install script extension test (#19025)
Fixes a test I accidentally broke in #19012
2024-05-15 12:17:18 -04:00
Dante Catalfamo 6e8e1bd0b4 Install script extension (#19012)
Because windows won't run powershell scripts without it 👎
2024-05-15 10:31:13 -04:00
Dante CatalfamoandRoberto Dip 71c0026168 Orbit software installer flow (#18797)
# 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
  - For Orbit and Fleet Desktop changes:
- [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)).

---------

Co-authored-by: Roberto Dip <rroperzh@gmail.com>
2024-05-14 17:25:35 -03:00
github-actions[bot]andlucasmrod 5887a69193 Update versions of fleetd components in Fleet's TUF [automated] (#18894)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-05-09 17:25:39 -03:00
643fc8314b Orbit config receiver (#18518)
New interface for adding periodic jobs that rely on notifications/config
changes in Orbit.

Previously if we wanted to have recurring checks in Orbit, we would add
them into a chain of `GetConfig` calls. This call chain would be run
periodically by one of the runners registered with the cli application
framework.

The new method to register `OrbitConfigReceivers` with the
`OrbitClient`, and then register the orbit client itself with the
application framework.

Instead of having giving each fetcher an internal reference to the
previous fetcher that it must call, the receiver is registered with the
client and the new config is passed to the receiver.

This is the old `GetConfig()` interface:

```go
type OrbitConfigFetcher interface {
	GetConfig() (*fleet.OrbitConfig, error)
}
```

This is the new `OrbitConfigReceiver` interface:

```go
type OrbitConfigReceiver interface {
	Run(*OrbitConfig) error
}
```

To register a new receiver, you call the `RegisterConfigReceiver` method
on the client.

```go
orbitClient.RegisterConfigReceiver(extRunner)
```

Downsides of the old method:
- Spaghetti call chain setup
- Cascading failure, of one fails, all after it fail
- Run in series,  one long function call holds up the rest
- Anything that wants to restart orbit is added as a Runner to the
application, meaning there could be several timers calling `GetConfig`
and running the chain

Benefits of the new method:
- Clean `RegisterConfigReceiver` api, no call chaining required
- Config receivers can be added at runtime
- Isolated receivers, one failing call don't effect others
- All calls are run in parallel in goroutines, no calls can hold up the
rest
- No more need for multiple runners, using a context cancel, any
receiver can queue a call to restart orbit
- Single point to handle errors and logging for all receivers
- Panic recovery to stop orbit from crashing
- Easier to test, configs are passed in and do not require a call chain

This branch contains a little bit of code from the installer method I
was working on because I branched it off of that. (oops)

Not all code comments surrounding old `GetConfig()` methods have been
fully updated yet

Possible changes:
- Update the interface to take a context, so we can let receivers know
to exit early. I can imagine two cases for this:
  - The application is about to restart
  - We can set a timeout for how long receivers are allowed to take

Closes #12662

---------

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
Co-authored-by: Roberto Dip <dip.jesusr@gmail.com>
2024-05-09 15:22:56 -04:00
Lucas Manuel Rodriguez e5cdafc075 Add cleanup of idle connections in fleetd (#18857)
#18783

- [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] 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-05-09 08:54:11 -03:00
Martin Angers 8367166278 Add uninstalled but available software installers to the "List software titles" API (#18842) 2024-05-08 12:41:57 -04:00
Victor Lyuboslavsky a453979202 Updated macadmins and added new tables. (#18819)
#18808 
Added the new `sofa_security_release_info` and `sofa_unpatched_cves`
tables from `macadmins/osquery-extension` 1.0.1

These tables do not have detailed documentation in macadmins repo, so
not adding documentation at this point.

# 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] Manual QA for all new/changed functionality
  - For Orbit and Fleet Desktop changes:
- [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-05-08 08:57:16 -05:00
Dante Catalfamo 2c6e7c71a8 Zsh script support (#18411)
#17321
2024-04-30 14:38:56 -04:00
Victor Lyuboslavsky 9ff682e0ff Windows orbit.exe and fleet-desktop.exe are now signed. (#18201)
#17187 

Windows orbit.exe and fleet-desktop.exe are now signed.

Signed fleet-desktop.exe artifact at:
https://github.com/fleetdm/fleet/actions/runs/8834788809
Signed orbit.exe artifact at:
https://github.com/fleetdm/fleet/actions/runs/8834817940

For signing fleetctl.exe, opened a new issue:
https://github.com/fleetdm/fleet/issues/18540
2024-04-26 12:46:23 -05:00
github-actions[bot] a44bde8eee Update versions of fleetd components in Fleet's TUF [automated] (#18488) 2024-04-25 10:43:01 -05:00
github-actions[bot]andlucasmrod e0bcf05242 Update versions of fleetd components in Fleet's TUF [automated] (#18406)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-04-18 17:49:03 -03:00
github-actions[bot]andlucasmrod 4c69e9c656 Update versions of fleetd components in Fleet's TUF [automated] (#18388)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-04-18 09:32:37 -03:00
Lucas Manuel Rodriguez 78fc11dd4e Release fleetd 1.24.0 (#18378)
- **Release fleetd 1.24.0**
2024-04-17 18:37:53 -03:00
Dante Catalfamo 48036577eb Interpret windows exit codes as a signed integer (#18282)
#17695

The windows exit code is a 32-bit unsigned integer, but the command
interpreter treats it like a signed integer. When a process is killed,
it returns 0xFFFFFFFF (interpreted as -1). We convert the integer to an
signed 32-bit integer to flip it to a -1 to match our expectations, and
fit in our db column.

https://en.wikipedia.org/wiki/Exit_status#Windows

FIxed on both the client and server side.
2024-04-16 10:53:50 -04:00
github-actions[bot]andlucasmrod 5146420294 Update versions of fleetd components in Fleet's TUF [automated] (#18213)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2024-04-11 10:13:33 -03:00
Lucas Manuel Rodriguez 23772c69b7 Create releaser.sh to release fleetd updates (#18134)
#16131

`releaser.sh` was used to release fleetd 1.23.0.
2024-04-09 18:37:55 -03:00