Commit Graph
11842 Commits
Author SHA1 Message Date
Roberto Dip d383876a3c fix issues installing software in windows (#19048)
for #19039 and #19041 this:

- fixes the install/remove scripts to read the env variable the proper
way
- truncates output before storing in the databse in case its longer than
MySQL's TEXT size

# 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:39:42 -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
Martin Angers 62adb46a36 Partial fix: fix empty software title when metadata doesn't find one (#19047)
#19041 (it falls back on filename)

# Checklist for submitter

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
2024-05-15 18:27:04 -03:00
Jahziel Villasana-Espinoza 01898fd176 fix: typos in scripts (#19045)
Feature cleanup

# 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
2024-05-15 16:36:31 -04:00
Sarah Gillespie 1adb7677fd Validate installer file size in UI; add install tooltip to software list (#19036) 2024-05-15 14:32:20 -05:00
Sarah Gillespie 48684fb6ca Fix unreleased issues in software installers UI: Part 5 (#19033) 2024-05-15 12:43:12 -05:00
Jahziel Villasana-Espinoza 40dc8e57ed fix: add missing software_package field (#18998)
No related issue, just cleanup work on the feature

# 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
2024-05-15 13:41:35 -04: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
Roberto Dip da85d91551 add counts to host software endpoints (#18995)
part of #18677

# 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 09:55:27 -03:00
Martin Angers 79a121256e Software installers: backend cleanup tasks part 2 (#18982) 2024-05-15 08:40:06 -04:00
Martin Angers 1def5b2ddf Add support for software installers in fleetctl gitops (#18990) 2024-05-14 16:58:58 -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
Roberto Dip f0e3903585 add boilerplate to host installation result outputs (#18988)
Specified by Marko, this should be returned by the API:

<img width="642" alt="image"
src="https://github.com/fleetdm/fleet/assets/4419992/945e899e-9527-43cb-ac42-88b02d4bc844">


# 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-14 17:03:44 -03:00
Sarah Gillespie 5a50e5d4b2 Fix unreleased issues in software installers UI: Part 4 (#18987) 2024-05-14 13:10:12 -05:00
Roberto DipandMartin Angers 3a31262353 add CLI and endpoints to set software via fleetctl apply (#18876)
for #18325

# 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

---------

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2024-05-14 15:06:33 -03:00
Martin Angers 3579e5a250 Software installers: backend cleanup tasks part 1 (#18955) 2024-05-14 08:37:07 -04:00
Sarah Gillespie 0debd18673 Fix unreleased issues in software installers UI: Part 3 (#18972) 2024-05-13 17:32:59 -05:00
Sarah Gillespie 180a32454a Additional UI integration and fix unreleased bugs in software installers UI: Part 2 (#18943) 2024-05-13 12:36:17 -05:00
Sarah Gillespie 5dafea01c8 Fix unreleased UI bugs for software installers (#18928) 2024-05-13 09:36:13 -05:00
Roberto Dip 413be14d26 minor fixes for software installers (#18927)
- pass the right query param in the UI for the filters
- pass the team id to the filter hosts endpoint
2024-05-13 08:25:25 -03:00
Roberto Dip 54dbdf322a add version to trigger install endpoint and include script contents (#18915)
- add `_version_` instead of hardcoding `v1` for the endpoint to enqueue
an install
- include scripts content in the response for
`/api/latest/fleet/software/titles/:id` as documented

# 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-05-10 15:44:49 -03:00
Roberto DipandGabriel Hernandez 71437a8a8b back-end fixes for software installers (#18908)
- Use `title_id` + `team_id` for package endpoints instead of the
software title
- Add ability to filter software titles by software available for
install

# 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

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
2024-05-10 14:47:59 -03:00
Sarah Gillespie fa2b295a5e Update UI to support filtering by software install status (#18888) 2024-05-10 10:57:47 -05:00
Gabriel Hernandez 7f803e4629 UI software install feature integrations and polish (#18906)
relates to #18677

implement UI API integrations and polish tasks for the software install
feature. These include various tasks to finish up this feature on the UI
and ensure its working correctly

- [x] Manual QA for all new/changed functionality
2024-05-10 16:18:24 +01:00
Gabriel Hernandez fc1c903f63 add UI on host details and my device page for installing software feature (#18878)
relates to #18327

This adds the ui changes for installing software feature on the host
details and my device page. this includes:

**new software tables for host details and my device pages:**

<img width="1667" alt="image"
src="https://github.com/fleetdm/fleet/assets/1153709/edb8921a-ac24-4bc9-9d8b-4b2f8df9b5b8">

**new actions dropdown to install and see details:**

<img width="211" alt="image"
src="https://github.com/fleetdm/fleet/assets/1153709/37094536-83fb-477f-b8b2-adac3aa20105">

**new software details modal:**

<img width="674" alt="image"
src="https://github.com/fleetdm/fleet/assets/1153709/51fc12bb-3904-4c38-a71a-a5c6d5065bee">

**use new API for showing host software in the UI:**

- [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-05-09 22:44:50 +01:00
Sarah Gillespie 21313fcb04 Update frontend to support software install activities (#18871) 2024-05-09 15:45:53 -05: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
Gabriel Hernandez b74b607877 Update UI on software title details page for software packages (#18763)
relates to #18327

implements UI on software title details page to supports the new
software packages feature. This includes

**new software package card on the software titles details page: **


![image](https://github.com/fleetdm/fleet/assets/1153709/ade997db-dc43-428e-a50d-0e3b8b9a045b)

**various modal for the package actions:**


![image](https://github.com/fleetdm/fleet/assets/1153709/a82df061-5bb7-40e0-9fb6-d96ea0da91e9)


![image](https://github.com/fleetdm/fleet/assets/1153709/9346bf46-5be4-4684-ab42-58f0a3089145)

**ability to download the software package from download icon**

- [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-05-09 14:06:58 +01:00
Sarah Gillespie 2a4b00b349 Add software installer details to get software title API response and add software install status filter to list hosts API (#18748) 2024-05-08 15:52:35 -05: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
Jahziel Villasana-EspinozaandMartin Angers c88a7cf6b0 feat: software added and deleted global activities (#18798)
> Related issue: #18330 

# 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

## Notes
- ~I added an `includeTitle bool` parameter to
`ds.GetSoftwareInstallerMetadata`. This allows for the title of the
software (from the `software_titles` page) to be fetched in
`svc.DeleteSoftwareInstaller` without an additional call to the DB.~ We
wound up deciding to just fetch the title every time.

---------

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
2024-05-08 10:08:28 -04:00
Martin Angers 4f9363fd78 Add cron job to cleanup unused software installers (#18812) 2024-05-07 16:50:44 -04:00
Roberto Dip e5283ef2a8 Merge remote-tracking branch 'origin/main' into feat-software-installers 2024-05-07 13:37:29 -03:00
George Karr db5d553545 Initial fleetctl api command works with GETS and fields (#17971) 2024-05-07 11:22:05 -05:00
Robert FairburnandLuke Heath ef0414d1ec Terraform monitoring alert thresholds update (#18790)
This allows customizing alert thresholds for http elb and target 5xx
errors. This will prevent a single 5xx from triggering an alert if we
decide the thresholds should be higher. The default 120 seconds with 0
tolerance will be used if nothing is passed in, but alternatives can be
specified by a threshold and an interval.

closes #18776

---------

Co-authored-by: Luke Heath <luke@fleetdm.com>
2024-05-07 11:17:01 -05:00
RachelElysia 434239e5f9 Feature: 15605 merge inherited queries and policies (#18771) 2024-05-07 12:10:06 -04:00
Roberto Dip 37fe905f96 missing validations and tweaks to default scripts (#18780)
This adds two things:

- when implementing the CLI, I found [a
panel](https://www.figma.com/file/oQl2oQUG0iRkUy0YOxc307/%2314921-Deploy-security-agents-to-macOS%2C-Windows%2C-and-Linux-hosts?type=design&node-id=779-29335&mode=design&t=Y27cbj7DdhUEGJko-4)
in the Figma file with validations that I missed
- explicit shebang for bash scrips (requested by product) and removed a
comment that will be user facing for exe files.
2024-05-07 13:02:08 -03:00
Victor Lyuboslavsky 9a6b2f655e Fixed MySQL sort buffer overflow when fetching activities. (#18782)
#12619

Fixed MySQL sort buffer overflow when fetching activities. This issue
happened when activities contained very large details, such as large SQL
queries.

# 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.
- [ ] Added/updated tests
  - Existing tests provide sufficient coverage
- [x] Manual QA for all new/changed functionality
2024-05-07 10:53:24 -05:00
Martin Angers 7bb726ba8e Create and return upcoming/past host activities for software installs (#18772) 2024-05-07 11:28:16 -04:00
George Karr 0b9ec5e322 Adding cli improvements for run-scripts (#18010) 2024-05-07 10:10:22 -05:00
Mike McNeil 443bcb92a0 Update endpoint-ops.ejs (#18792)
<img width="562" alt="image"
src="https://github.com/fleetdm/fleet/assets/618009/c2be8d32-7f79-4f1a-b0e6-78c61357aca1">


![image](https://github.com/fleetdm/fleet/assets/618009/ad467372-dd97-41c3-8145-3ce5db3104cf)
2024-05-07 03:41:46 -05:00
Mike McNeil 32ad959c0d YOLO's price (#18791)
my bad
https://github.com/fleetdm/fleet/pull/18785#issuecomment-2097648373
2024-05-07 02:56:02 -05:00
Mike McNeil 8cebddc72e Website: Personalization fix (#18785) 2024-05-07 02:38:09 -05:00
Eric 2990d09cb4 Website: update salesforce helper (#18789)
Changes:

- Updated the `update-or-create-contact-and-account` helper to actually
check the OwnerID of the returned account record (if one was found).
2024-05-06 20:51:03 -05:00
Eric 9e988cb216 Website: Fix round robin in update-or-create-contact-and-account.js. (#18788)
Changes:
- Fixed a conditional that was determining if existing account records
should be round-robined or not.
2024-05-06 19:51:21 -05:00
Eric d0741f276b Website: Update personalization on /endpoint-ops page. (#18784)
Changes:
- Updated personalization on the endpoint ops page for users who have a
primaryBuyingSituation set to MDM
2024-05-06 18:40:20 -05:00
Mike McNeil c0d112ec09 Update testimonials.yml: Add second Nico quote (#18786)
adds in quote from #18785
2024-05-06 18:36:20 -05:00
Eric 85a8647700 Schema: Regenerate osquery_fleet_schema.json (#18781)
Closes: #18761

changes:
- Regenerated `schema/osquery_fleet_schema.json`
2024-05-06 16:42:00 -05:00
Eric 607ddbe8b1 Website: Update update-or-create-contact-and-account helper to round robin existing account records. (#18778)
Changes:
- Updated the `update-or-create-contact-and-account` helper to round
robin existing Account records assigned to the "Integrations admin"
user.
2024-05-06 15:17:49 -05:00