Commit Graph
10500 Commits
Author SHA1 Message Date
George Karr 3e1b5dc16e Re-enable ability to select Nodeport for service setup #14854 (#16624) 2024-02-06 14:49:13 -06:00
Rachael Shaw acd8d91350 Add redirect for use in CLI (#16622)
Add redirect for a "more info" link printed to the CLI (so if the docs
URL changes, we don't need to update it in the product as well).

For https://github.com/fleetdm/fleet/issues/16382 (subtask of #9949)
2024-02-06 14:48:11 -06:00
JD b3452a67a7 Article: Fleet 4.44.0 release (#16625)
Article: Fleet 4.44.0 release
https://github.com/fleetdm/fleet/issues/15984
2024-02-06 13:38:55 -05:00
Jacob ShandlingandJacob Shandling 72ce7bcb74 UI – Instead of not rendering, cosmetically hide ManageQueryAutomations modal to maintain its state (#16609)
## Addresses #16538 


![Screenshot-2024-02-05-at-14512PM](https://github.com/fleetdm/fleet/assets/61553566/ed0baf64-7a3c-4787-83b8-b29285f11601)


## Checklist for submitter

- [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-02-06 10:12:54 -08:00
Luke Heath 2e93b52490 Add :product label to new requests (#16600)
This will ensure all feature requests are seen and responded to daily
during product design's new daily "new requests" ritual.
2024-02-06 11:32:40 -06:00
Sarah Gillespie a4228cc45c Fix UI bug in host query params reconciliation (#16432) 2024-02-06 10:04:07 -06:00
Sarah Gillespie 7b5feff8c9 Add upcoming activities count to host vitals UI (#16533) 2024-02-06 10:03:01 -06:00
Sarah Gillespie 424ffef185 Add count to host upcoming activities API response (#16511) 2024-02-06 10:02:38 -06:00
RachelElysia 379ab87805 Fleet UI: Unreleased missing word (#16619) 2024-02-06 10:52:41 -05:00
Jahziel Villasana-Espinoza cf9f83604f fix: return a better message when checking status of async script (#16611)
> Related issue: #16431

# 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/` or
`orbit/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-02-06 10:37:53 -05:00
Jahziel Villasana-Espinoza e1dbbda706 feat: update fleetctl output to reference fleetd (#16612)
> Related issue: #16382

# 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/` or
`orbit/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-02-06 09:30:00 -05:00
RachelElysiaandRachael Shaw f076769ee2 Documentation: Spelling and grammar fixes (#16403)
---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2024-02-06 09:19:42 -05:00
Jacob ShandlingandJacob Shandling 653d4be7f9 UI - update buttons around enroll secrets (#16565)
## Addresses #16155 

<img width="767" alt="Screenshot 2024-02-02 at 9 45 02 AM"
src="https://github.com/fleetdm/fleet/assets/61553566/3fea0949-2b1e-45e2-98c9-ff20f2c68864">


- [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-02-05 17:17:11 -08:00
Eric 6d7947da1e Website: Update heading on /device-management (#16614)
Closes: https://github.com/fleetdm/confidential/issues/5282

Changes:
- Updated a heading on the /device-management page
2024-02-05 18:04:44 -06:00
Noah Talerman 7fdda53dca API design: Upcoming activities: Run scripts on online/offline hosts (#15931)
API changes for the "Upcoming activities: Run scripts on online/offline
hosts" (#15529) story

Changes:
- Script endpoints are available in Fleet Free and Fleet Premium
- Update `POST /scripts/run` to add a script to the bottom of the
upcoming activities
- Update `POST /scripts/run/sync`
- Add `GET /hosts/:id/activities` to show past activity feed
- Add `GET /hosts/:id/activities/upcoming` to show upcoming activity
feed
- Move docs for `GET /hosts/:id/scripts` to a new "Get host's scripts
section" under "Hosts"
2024-02-05 18:37:35 -05:00
Noah Talerman c0f6e1f1cb API design: Add API endpoint to get manual enrollment profile (#16252) (#16255)
API changes for the "Add API endpoint to get manual enrollment profile"
story: #16252
2024-02-05 18:35:44 -05:00
Eric 98e825e434 Update osquery schema version, regenerate merged schema JSON (#16597)
For https://github.com/fleetdm/fleet/issues/13891

Changes:
- Updated the version of the osquery schema used to generate
osqeury_fleet_schema.json (`5.9.1` » `5.11.0`)
- Removed the table override file for the `atom_packages` table (It was
removed from the osquery schema, our override file was previously hiding
the table)
- Ran the `generate-merged-schema` script to regenerate
osquery_fleet_schema.json
2024-02-05 17:30:41 -06:00
Eric adbb86aa14 Website: update linux logo on /explore-data (#16613)
Closes: #16519

Changes:
- Replaced the image used for the Linux device on
/try-fleet/explore-data
2024-02-05 17:29:06 -06:00
Sarah Gillespie 95035af767 Add loading state to OS updates target form (#16610)
Follow up to #16604
2024-02-05 16:20:59 -06:00
Sarah Gillespie b3e28f1522 Fix unreleased bugs in OS updates UI (#16604) 2024-02-05 15:09:51 -06:00
Luke HeathandNoah Talerman 8a35c6cf39 Add product label to new issue URL (#16599)
This will ensure all product design requests are seen and responded to
daily during product design's new daily "new requests" ritual.

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2024-02-05 14:24:34 -06:00
RachelElysia 42cfce3ee1 Fleet UI: Replace references of team members for users (#16515) 2024-02-05 14:11:01 -05:00
Jahziel Villasana-Espinoza feaf6f5a71 feat: add db table for host lock and wipe (#16580)
> Related issue: #16386 

# 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/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [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] Manual QA for all new/changed functionality
2024-02-05 13:45:27 -05:00
Luke Heath 1982611c05 Finalize 4.44.0 changelog (#16576) 2024-02-05 12:17:50 -06:00
Martin Angers 792d76e2cd Fix stack trace, duplicates and better coverage of captured errors in APM (#16516) 2024-02-05 11:53:39 -05:00
Roberto DipandGabe Hernandez a1b23acfea fix the hover state of chevron-right icons (#16595)
for #16133, pair-programmed with @ghernandez345 



# 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/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Gabe Hernandez <ghernandez345@gmail.com>
2024-02-05 13:12:18 -03:00
Martin Angers 9c37db2a05 Remove unnecessary nested transactions in batch-set of MDM profiles (#16449) 2024-02-05 10:51:32 -05:00
Roberto Dip fa89dff66f fix race in orbit test (#16589)
The scheduled test run
https://github.com/fleetdm/fleet/actions/runs/7764392848 failed with a
panic because `TestWindowsMDMEnrollmentPrevented` timed out:

```
2024-02-03T05:05:26.3041218Z === RUN   TestWindowsMDMEnrollmentPrevented
2024-02-03T05:05:26.3044251Z === RUN   TestWindowsMDMEnrollmentPrevented/{RenewEnrollmentProfile:false_RotateDiskEncryptionKey:false_NeedsMDMMigration:false_NeedsProgrammaticWindowsMDMEnrollment:true_WindowsMDMDiscoveryEndpoint:http://example.com/_NeedsProgrammaticWindowsMDMUnenrollment:false_PendingScriptExecutionIDs:[]_EnforceBitLockerEncryption:false}
2024-02-03T05:05:26.3047208Z coverage: 2.5% of statements in github.com/fleetdm/fleet/v4/...
2024-02-03T05:05:26.3047963Z panic: test timed out after 1h0m0s
2024-02-03T05:05:26.3048482Z running tests:
2024-02-03T05:05:26.3049005Z 	TestWindowsMDMEnrollmentPrevented (59m52s)
2024-02-03T05:05:26.3052172Z 	TestWindowsMDMEnrollmentPrevented/{RenewEnrollmentProfile:false_RotateDiskEncryptionKey:false_NeedsMDMMigration:false_NeedsProgrammaticWindowsMDMEnrollment:true_WindowsMDMDiscoveryEndpoint:http://example.com/_NeedsProgrammaticWindowsMDMUnenrollment:false_PendingScriptExecutionIDs:[]_EnforceBitLockerEncryption:false} (59m52s)
[...]
2024-02-03T05:05:26.3068624Z goroutine 69 [chan receive]:
2024-02-03T05:05:26.3069997Z github.com/fleetdm/fleet/v4/orbit/pkg/update.TestWindowsMDMEnrollmentPrevented.func2.1({{0xe3ada3, 0x12}, {0x0, 0x0}, {0xe37311, 0xc}})
2024-02-03T05:05:26.3072376Z 	/home/runner/work/fleet/fleet/orbit/pkg/update/notifications_test.go:295 +0x65
2024-02-03T05:05:26.3074514Z github.com/fleetdm/fleet/v4/orbit/pkg/update.(*windowsMDMEnrollmentConfigFetcher).attemptEnrollment(0xc0000f8cf0, {0x0, 0x0, 0x0, 0x1, {0xe3ada3, 0x12}, 0x0, {0x0, 0x0, ...}, ...})
```

I was able to reproduce locally 1/4th of the times, after putting the
following print statements:

```diff
                        if cfg.NeedsProgrammaticWindowsMDMEnrollment {
                                fetcher.execEnrollFn = func(args WindowsMDMEnrollmentArgs) error {
-                                       <-chProceed    // will be unblocked only when allowed
+                                       fmt.Println("fetcher.execEnrollFn A: ", apiCallCount)
+                                       <-chProceed // will be unblocked only when allowed
+                                       fmt.Println("fetcher.execEnrollFn B: ", apiCallCount)
                                        apiCallCount++ // no need for sync, single-threaded call of this func is guaranteed by the fetcher's mutex
                                        return apiErr
                                }
@@ -301,7 +303,9 @@ func TestWindowsMDMEnrollmentPrevented(t *testing.T) {
                                }
                        } else {
                                fetcher.execUnenrollFn = func(args WindowsMDMEnrollmentArgs) error {
-                                       <-chProceed    // will be unblocked only when allowed
+                                       fmt.Println("fetcher.execUnenrollFn A: ", apiCallCount)
+                                       <-chProceed // will be unblocked only when allowed
+                                       fmt.Println("fetcher.execUnenrollFn B: ", apiCallCount)
                                        apiCallCount++ // no need for sync, single-threaded call of this func is guaranteed by the fetcher's mutex
                                        return apiErr
                                }
@@ -317,23 +321,33 @@ func TestWindowsMDMEnrollmentPrevented(t *testing.T) {

                        started := make(chan struct{})
                        go func() {
+                               fmt.Println("before close started")
                                close(started)
+                               fmt.Println("aftre close started")

                                // the first call will block in enroll/unenroll func
+                               fmt.Println("before inner fetchergetconfig")
                                cfg, err := fetcher.GetConfig()
+                               fmt.Println("after inner fetchergetconfig")
                                assertResult(cfg, err)
                        }()

+                       fmt.Println("before started")
                        <-started
+                       fmt.Println("after started")
                        // this call will happen while the first call is blocked in
                        // enroll/unenrollfn, so it won't call the API (won't be able to lock the
                        // mutex). However it will still complete successfully without being
                        // blocked by the other call in progress.
+                       fmt.Println("before first fetchergetconfig")
                        cfg, err := fetcher.GetConfig()
+                       fmt.Println("before first fetchergetconfig")
                        assertResult(cfg, err)

                        // unblock the first call and wait for it to complete
+                       fmt.Println("before close chProceed 1")
                        close(chProceed)
+                       fmt.Println("after close chProceed 2")
                        time.Sleep(100 * time.Millisecond)
```

This is the output I've got every time the test hung:

```
before started
before close started
aftre close started
after started
before first fetchergetconfig
before inner fetchergetconfig
after inner fetchergetconfig
fetcher.execEnrollFn A:  0
```

And this is the output when the tests passed

```
before started
before close started
aftre close started
before inner fetchergetconfig
fetcher.execUnenrollFn A:  0
after started
before first fetchergetconfig
before first fetchergetconfig
before close chProceed 1
after close chProceed 2
fetcher.execUnenrollFn B:  0
after inner fetchergetconfig
fetcher.execUnenrollFn A:  1
fetcher.execUnenrollFn B:  1
```

Note how the deadlock occurs when `GetConfig` is called first outside of
the goroutine. I added some logic to prevent this, but I'm confident
there must be a better way to accomplish the same. cc: @mna you're the
king of concurrency, do you have any ideas?
2024-02-05 12:06:25 -03:00
Martin Angers 9abb572194 Rename mdm profiles updated_at to uploaded_at and remove automatic setting (#16425) 2024-02-05 10:01:38 -05:00
Jahziel Villasana-EspinozaandRoberto Dip fa46cfba20 fix: filter out software from parallels vm (#16520)
> Related issue: #15855

I followed a similar pattern to `sanitizeSoftware`, a function that
modifies the `Software`. I was originally going to update
`sanitizeSoftware` itself, but decided against it
1. to avoid making lots of changes to the function signature and
internals
2. because the logic this issue requires is pretty different from what
`sanitizeSoftware` is trying to do, so seemed to warrant its own
function.

# 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/` or
`orbit/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

---------

Co-authored-by: Roberto Dip <me@roperzh.com>
2024-02-05 10:00:08 -05:00
Noah Talerman 9069850585 Docs and articles: Remove Windows MDM feature flag (#16399)
- Remove feature flag from the docs and articles (it no longer exists)
- Remove mention of Windows MDM not being ready for production
2024-02-05 09:11:45 -05:00
Roberto Dip efe68e2c66 fix puppet tests and add CI workers (#16529)
for #16059
2024-02-05 09:50:18 -03:00
Roberto Dip d4ef9be990 fix query generation for docs + update them (#16537)
this fixes the `go:generate` directive + adds the changes for the files
generated automatically after running `make generate-doc`
2024-02-05 09:50:05 -03:00
Roberto Dip e35d1dacbd improve validation of windows profiles (#16563)
for #16316, this improves the XML validation of Windows profiles and
ensures we support two ways of embedding XML:

- Escape the XML
- Use a wrapping `<![CDATA[ ... ]]>` element
2024-02-05 09:49:55 -03:00
Lucas Manuel Rodriguez 5360029d67 Allow custom osquery database on fleetd (#16554)
#16014

- [X] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
- [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-02-05 09:41:06 -03:00
Victor LyuboslavskyandRachael Shaw 78911e9595 Updated docs for PATCH teams/:id/users (#16336)
Updated docs for PATCH teams/:id/users
#16275

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2024-02-04 14:52:45 -06:00
Mike McNeilandSampfluger88 10bac0c469 Handbook: Event strategy (#16587)
Co-authored-by: Sampfluger88 <sampfluger88@gmail.com>
2024-02-03 23:22:42 -06:00
Noah Talerman c1fb5c549c Pricing page: Add "Variable agent versions" (#16513)
- Add item for pricing page for the "Remotely configure fleetd update
channels in agent options" (#13825) feature
  - Fleet Premium only
2024-02-03 21:18:20 -06:00
Sam Pfluger 6b26e67a1f Update why-this-way.md (#16586) 2024-02-03 18:55:14 -06:00
Sam PflugerandMike McNeil 3e1683cde5 Demand update (#16568)
Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2024-02-03 18:37:20 -06:00
Noah Talerman 39f58b5805 Update features.yml (#16578)
Updates made during "🪶 Feature checkpoint" call on 2024-02-02

- Fold in internal commitments (Q1 product design OKRs)
- Update other feature commitments
2024-02-03 18:20:11 -06:00
Jacob ShandlingandJacob Shandling c086d5a231 Make "create_n_policies" script (#16517)
## Tool for testing policies-related features

When you just need a bunch of random policies:
<img width="1487" alt="Screenshot 2024-01-31 at 1 30 54 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/77165bb9-8194-44e5-b57f-9e691de44785">

<img width="948" alt="Screenshot 2024-01-31 at 1 31 17 PM"
src="https://github.com/fleetdm/fleet/assets/61553566/ad72ae8c-926f-461f-8824-53b8ae0d4c2f">


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

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-02-02 16:26:47 -08:00
Eric c5736af55e Website: fix incorrect conditional statement in Datadog script (#16583)
Changes:
- Updated a conditional statement in the
`send-aggregated-metrics-to-datadog` script. (`===` » `!==`)
2024-02-02 18:22:49 -06:00
Roberto Dip db58539c9d set exit_code = -1 for scripts that are pending before upgrade to 4.44.0 (#16581)
for https://github.com/fleetdm/fleet/issues/16547

# 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-02-02 21:20:56 -03:00
Victor Lyuboslavsky dbf53cae6a Policies are now unique for (team_id, name). (#16501)
#13643 

Updating the `policies` table to use a checksum column for uniqueness.
The checksum is computed with team_id (which may be null) and name. This
change is modeled on the checksum in the software table.

# 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/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [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] Manual QA for all new/changed functionality
2024-02-02 17:41:32 -06:00
Eric b7a85fba48 Website: Update usage analytics sent to Datadog (#16572)
Related to: #16458

Changes:
- Updated the receive-usage-analytics webhook not to send metrics to
Datadog.
- Updated the send-aggregated-metrics-to-datadog script to build
aggregated metrics from the JSON values reported by Fleet instances
(stored errors, host count by orbit version, host count by osquery
version, host count by operating system), and updated the script to not
report metrics from Fleet instances using the development premium
license key.
2024-02-02 17:23:33 -06:00
Roberto Dip d479f93f49 add internal docs to set end user email (#16573)
for #15057
2024-02-02 18:13:07 -03:00
Roberto Dip 7ddf275a64 fix treatment of sync scripts + prevent running expired scripts on fleet upgrade (#16567)
for #16547

# 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
- 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] Manual QA for all new/changed functionality
2024-02-02 17:57:46 -03:00
Noah Talerman ffa929b24d Server configuration docs: enable_scheduled_query_stats (#16571)
- Clearly document the behavior for `enable_scheduled_query_stats`
2024-02-02 15:49:53 -05:00
Noah Talerman 558ef6497f fleetdm.com/tables: Add Fleet override for process_file_events docs (#16503)
- To address the bug, we decided to document the current behavior: The
`process_file_events table` will only emit events for changes and files
in directories that existed before osquery starts.
2024-02-02 15:47:23 -05:00