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 Catalfamo
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 Dip
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 Dip
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
Dante Catalfamo
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-Espinoza
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 Fairburn
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