Commit Graph
173 Commits
Author SHA1 Message Date
Artemis TosiniandRoberto Dip a0b11a29d2 Dump pprof when orbit is given a SIGUSR1. Fixes #8456 (#8485)
Co-authored-by: Roberto Dip <me@roperzh.com>
2022-10-28 16:39:47 -04:00
Lucas Manuel Rodriguez 7d855c3879 Add update channels to orbit_info (#8310) 2022-10-27 09:52:18 -05:00
Marcos Oviedo 131cc7eeec Orbit MSI installer now includes the necessary manifest file to use windows_event_log as a logger_plugin. (#8343)
* Orbit MSI installer now includes the necessary manifest file to use windows_event_log as a logger_plugin
2022-10-27 10:19:30 -03:00
Marcos Oviedo 8b77939494 Fixed an Orbit MSI installer bug that caused Orbit files not to be removed during uninstallation (#8333) 2022-10-25 09:00:37 -03:00
Roberto Dip bd17b38bc3 fix issue in fleet desktop causing it to spam free installations (#8396)
the `switch` statement that checks for errors (including license errors) issues a `continue` before we even have the chance to wait for the ticker.

this has the drawback that premium users will have to wait 5 minutes before they see policy info, but the alternative would be to use labels and go-to, at least with the current code structure.

related to https://github.com/fleetdm/fleet/issues/8373
2022-10-21 09:56:18 -07:00
Marcos Oviedo ec3f49881f 8009 fleet desktop icon duplication (#8017)
* Adding a new synchronization mechanism between fleet-desktop app and Orbit service. Improved windows service teardown to ensure that fleet-desktop does not get force killed without getting signaled. Improved windows process enumeration to avoid unnecessary delays during windows service start and windows service teardown. Updating windows service to reflect service teardown extra time due to synchronization.
2022-10-13 10:58:37 -03:00
Juan Fernandez 6939af045d Fleet desktop should use lightweight endpoint for getting failing policies count (#8159)
Fleet desktop should use lightweight endpoint for getting failing policies count
2022-10-12 17:13:43 -03:00
Lucas Manuel Rodriguez b016fc8a3a Orbit: Add retries to launchctl bootstrap to fix issue with MDM push (#8187)
* Add retries to launchctl bootstrap to fix MDM push

* Increment retries from 5 to 30
2022-10-12 15:59:01 -03:00
Lucas Manuel Rodriguez bec3824ddb Update mk-ca-bundle.pl tool in repository (#8184)
* Update mk-ca-bundle.pl in repository

* Update certs.pem with new version of mk-ca-bundle.pl

* Add extra check against curl.se site
2022-10-12 12:01:18 -03:00
Lucas Manuel Rodriguez 8de3e9f258 Fix Orbit bug when setting empty command_line_flags in agent options (#8176) 2022-10-11 20:11:01 -03:00
Roberto Dip e630fabf89 token rotation for fleet desktop (#7779)
This implements what's described in detail here https://github.com/fleetdm/fleet/blob/main/proposals/fleet-desktop-token-rotation.md
2022-10-10 17:15:35 -03:00
Lucas Manuel RodriguezandZach Wasserman 832b29f8c7 Update go-tuf to v0.5.0 (bis) (#8112)
* Update go-tuf to v0.5.0

This was triggered by the security advisory
[GHSA-3633-5h82-39pq](https://github.com/theupdateframework/go-tuf/security/advisories/GHSA-3633-5h82-39pq).
Fleet's use of go-tuf is not vulnerable to this issue due to not using
key thresholds greater than 1.

There were some API changes that necessitate changing the initialization
code for the TUF client. See
https://github.com/theupdateframework/go-tuf/issues/379 for further
discussion.

* Add changes file

* Update default root metadata

* Add review changes to update-go-tuf branch

* Update tests

* Add more checks to roots output

Co-authored-by: Zach Wasserman <zach@fleetdm.com>
2022-10-07 17:03:39 -03:00
Zach Wasserman 44dc5ab175 Add handling for Apple Team ID in Notarization (#7991)
Fleet's Notarization workflows no longer work without this argument, so this is added as an optional argument for Notarization.
2022-10-04 09:48:21 -07:00
Lucas Manuel Rodriguez a4d7e81475 Orbit to support environments with revoked enroll secrets (#8056)
* Support environments with revoked enroll secrets

* Add instructions on how to fix Orbit enroll

* Rename to last_recorded_error

* Add alternative instructions
2022-10-03 17:28:19 -03:00
Roberto Dip b165c5217e ping the capabilities API when the loop starts (#8005) 2022-09-28 15:49:08 -03:00
Roberto Dip 474fd8fab8 fix flag formatting in Orbit (#7981) 2022-09-27 19:31:23 +00:00
Zach Wasserman f7b341cb6e Use dark theme icon in Fleet Desktop by default (#7973)
This seems to be a better fit as a default due to what renders best in Ubuntu.

Keeps themes the same as prior Desktop releases.
2022-09-27 08:56:16 -07:00
Lucas Manuel Rodriguez edb8fce195 Fix post-merge issue (#7971) 2022-09-27 12:30:00 -03:00
Zach Wasserman 855cca9368 Update notarization to use notarytool (#7962)
Updating from github.com/mitchellh/gon (old API) to the newer xcrun notarytool.

See https://github.com/fleetdm/fleet/actions/runs/3132173324/jobs/5084249006 for example run.
2022-09-27 08:25:42 -07:00
Lucas Manuel Rodriguez 3ee29c38ad Orbit: Handle SIGTERM on unix and kill pre-existing fleet-desktop processes at startup (#7966)
* Handle SIGTERM on unix and kill pre-existing fleet-desktop processes at startup

* Add unix build tag

* Remove unused import
2022-09-27 11:57:56 -03:00
Marcos Oviedo 381f628be7 Bug 7874: Adding SCM calls to register Orbit as a windows service (#7934)
* Bug 7874: Adding SCM calls to register Orbit as a windows service
2022-09-27 11:52:41 -03:00
Roberto Dip a509bdd0ac add backwards compatiblity to orbit enrollment via the API (#7921) 2022-09-26 11:44:09 -03:00
Roberto Dip 2fcb27ed3f add headers denoting capabilities between fleet server / desktop / orbit (#7833)
This adds a new mechanism to allow us to handle compatibility issues between Orbit, Fleet Server and Fleet Desktop.

The general idea is to _always_ send a custom header of the form:

```
fleet-capabilities-header = "X-Fleet-Capabilities:" capabilities
capabilities              = capability * (,)
capability                = string
```

Both from the server to the clients (Orbit, Fleet Desktop) and vice-versa. For an example, see: https://github.com/fleetdm/fleet/commit/8c0bbdd291f54e03e19766bcdfead0fb8067f60c

Also, the following applies:

- Backwards compat: if the header is not present, assume that orbit/fleet doesn't have the capability
- The current capabilities endpoint will be removed

### Motivation

This solution is trying to solve the following problems:

- We have three independent processes communicating with each other (Fleet Desktop, Orbit and Fleet Server). Each process can be updated independently, and therefore we need a way for each process to know what features are supported by its peers.
- We originally implemented a dedicated API endpoint in the server that returned a list of the capabilities (or "features") enabled, we found this, and any other server-only solution (like API versioning) to be insufficient because:
  - There are cases in which the server also needs to know which features are supported by its clients
  - Clients needed to poll for changes to detect if the capabilities supported by the server change, by sending the capabilities on each request we have a much cleaner way to handling different responses.
- We are also introducing an unauthenticated endpoint to get the server features, this gives us flexibility if we need to implement different authentication mechanisms, and was one of the pitfalls of the first implementation.

Related to https://github.com/fleetdm/fleet/issues/7929
2022-09-26 07:53:53 -03:00
Sharvil Shah 1b59b05862 Orbit enroll retry on unauth (#7928) 2022-09-24 03:16:33 +05:30
Juan Fernandez d7ca8fcd66 Reverted changes made to Fleet Desktop - should not use the lightweight 'desktop' endpoint (#7919)
Reverted changes made to Fleet Desktop. Desktop should not use the lightweight 'desktop' endpoint
2022-09-23 15:18:19 -04:00
Sharvil ShahandRoberto Dip 7d4e2e2b4b Orbit remote management for flags (#7246)
Co-authored-by: Roberto Dip <dip.jesusr@gmail.com>
2022-09-24 00:30:23 +05:30
Zach Wasserman c01bf03435 Windows desktop theme detection (#7363)
Windows portion of #6675. Detect dark vs. light theme and change the icon to match (as best as we can).
2022-09-23 10:07:38 -07:00
Zach WassermanandLucas Rodriguez bdad9ac1d3 Use Group SID on fleetctl on Windows (#7854)
This is intended to allow packages to be built on localizations other than English.

See #5065.

Co-authored-by: Lucas Rodriguez <lucas@fleetdm.com>
2022-09-21 11:39:26 -07:00
Shawn Maddock 8e9396c65c fixes #7856 (#7858) 2022-09-20 19:41:22 -03:00
Roberto Dip 15c93f02ea add retry logic for native notarization and codesigning (#7806)
Related to #7130, this adds logic to retry native notarization up to three times if it fails for some reason.

Since we're adding retries in various places, I added a new package under pkg for this purpose.
2022-09-19 13:08:39 -03:00
Marcos Oviedo d5a37dfd1a Bug 6479: Storing proxy certificate in a secure location to avoid unexpected deletion. (#7811)
This prevents proxy certificate used by --insecure mode from being deleted when stored in a user-writable location.
2022-09-19 09:42:53 -03:00
Juan Fernandez 4ef883b311 Feature 6946: Fleet Desktop should use minimal api end-point for data (#7536)
Updated desktop client to use new EE desktop endpoint.
2022-09-15 12:12:50 -04:00
Katheryn SatterleeandZach Wasserman 3eb79ed74f Add information on update channels (#7760)
* Add information on update channels

Added additional context around when the `stable` and `edge` channels are updated with new versions of osquery.

* Update orbit/README.md

Co-authored-by: Zach Wasserman <zach@fleetdm.com>

* Update README.md

Co-authored-by: Zach Wasserman <zach@fleetdm.com>
2022-09-14 14:48:24 -05:00
Tomas Touceda 8457e55b53 Bump go to 1.19.1 (#7690)
* Bump go to 1.19.1

* Bump remaining go-version to the 1.19.1

* Add extra paths for test-go

* Oops, putting the right path in the right place

* gofmt file

* gofmt ALL THE THINGS

* Moar changes

* Actually, go.mod doesn't like minor versions
2022-09-12 20:32:43 -03:00
Zach Wasserman 5d35b467d8 Remove errors tooltips from Fleet Desktop menu (#7678)
Now that these errors are available in log files, we think this adds
more confusion for end users.
2022-09-12 08:35:26 -07:00
Roberto Dip 740aafd817 Revert token rotation (#7628)
This reverts all changes related to token rotation.
2022-09-08 15:04:02 -03:00
Roberto Dip 1c26e2555d ensure Orbit identifier file can be read by the outside world (#7608)
As stated by the title, this fixes a bug in token rotation caused by a file having existing read-only permissions. This affects Fleet Desktop after is upgraded if an existing Orbit created a file that's not accessible by non-root users.

I have also included 77a59ac to fix an URL format
2022-09-07 14:37:54 -03:00
Roberto DipandMartin Angers 9174c7c711 token rotation for Fleet Desktop (#7517)
See https://github.com/fleetdm/fleet/issues/6348 for a very detailed rundown

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2022-09-06 20:25:29 -03:00
Lucas Manuel Rodriguez 7d8c38751d Add TUF update guide (#7368)
* Add TUF guide

* Move docs to orbit/docs

* Add fixes
2022-08-25 10:17:20 -05:00
Zach Wasserman ecb428a904 Prepare for Orbit 1.1.0 (#7315) 2022-08-19 08:27:50 -07:00
Sharvil Shah 1e62613450 orbit: rename unified_log table from extension to macadmins_unified_log (#7295) 2022-08-19 07:29:14 +05:30
Roberto Dip 6fead4c08d better handling of path differences for MSI installers (#7035)
Related to #7036, Tested in:

- [x] macOS via `fleetctl package --type=msi` (non-native)
- [x] Linux native via `docker run -v "$(pwd)" fleetdm/fleetctl package --type=msi` (native)
- [x] Windows via `fleetctl pacakge --type=msi` (thanks to @edwardsb) (non-native)
2022-08-05 17:12:05 -03:00
Artemis Tosini b56d2e452e Stop the previous desktop agent when updating on macOS. Fixes #6441 (#7015) 2022-08-02 17:03:14 -04:00
Scott Blake 52583e240a Update cleanup_macos.sh (#6977)
* Update cleanup_macos.sh

Remove the installer package receipt.

* Update cleanup_macos.sh

Continue on error
2022-08-02 12:46:45 -03:00
Roberto Dip 5a44d01566 update documentation of orbit/pkg/packaging (#6819)
This updates the documentation of orbit/pkg/packaging mainly to note that the exported functions are not safe for concurrent usage (subject to change.)
2022-07-25 20:14:20 -03:00
Roberto Dip d63f56f8c0 add support for notarization in fleetdm/fleetctl images (#6818)
#6674
2022-07-25 20:06:10 -03:00
github-actions[bot]andzwass f4cdf921d0 Update Orbit CA certs [automated] (#6735)
Generated automatically with curl mk-ca-bundle.pl script.

Co-authored-by: zwass <zwass@users.noreply.github.com>
2022-07-19 08:00:40 -03:00
Lucas Manuel Rodriguez ae27d42a37 Add blueprint for Fleet Packager service (#6229)
* Add blueprint for fleet packager service

* Fix formatting

* Add rate-limit comments and remove API versioning

* Add review comments and notarization alternative

* Other optimizations

* Add storing of state and fix typo

* Add error case for /create

* Add installers for Sandbox document

* Remove already done optimization

* Add S3 alternative to package storage

* Move to proposals directory

* Last amends to specs

* Add fleetctl proposal

* Add comment from Guillaume
2022-07-18 14:30:17 -03:00
Zach Wasserman 3838ae3a7e Update Orbit changelog for 1.0.0 release (#6678) 2022-07-14 16:03:08 -07:00
Roberto Dip f7dd8c86cd implement a docker image to package orbit natively in Linux (#6504)
Related to #6364 and #6363, this:

- Adds a new Docker image, `fleetdm/fleetctl` equipped with all necessary dependencies to build Fleet-osquery binaries for all platforms
- Modifies the package generation logic to special case this scenario via an environment variable `FLEETCTL_NATIVE_TOOLING`
- Adds a new GitHub workflow to test this

There are more details in the README, but part of the special-casing logic is in place to output the binaries to a folder named `build` when they are run with `FLEETCTL_NATIVE_TOOLING`, this is so we can persist the binary generated by the docker container via a bind mount:

```bash
docker run -v "$(pwd):/build" fleetdm/fleetctl package --type=msi
```

To test this changeset, I have generated packages for all platforms, both via the new Docker image and via the classic `fleetctl package`.
2022-07-11 09:49:13 -03:00