Commit graph

3803 commits

Author SHA1 Message Date
Dante Catalfamo
56e12f4aca
Fix WhatsApp and VS Code icons not displaying correctly (#33887)
**Related issue:** Resolves #28388

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually
2025-10-10 16:57:46 -07:00
Magnus Jensen
897350079c
Fix typo in install software preview for windows and linux (#34037) 2025-10-10 09:21:31 -03:00
Juan Fernandez
a6d1bd1e81
Added link component to live query results (#34019)
**Related issue:** Resolves #33249 

Added link component shown in the Host column to the host details page.
2025-10-09 12:15:13 -04:00
Noah Talerman
e7e1e1548f
Fleet product copy tweak (#34020)
- "IdP":
https://fleetdm.com/guides/foreign-vitals-map-idp-users-to-hosts
2025-10-09 10:00:39 -04:00
RachelElysia
9858f04071
Fleet uI: Script batch fix unreleased font size, padding (#33956) 2025-10-08 13:31:57 -04:00
RachelElysia
f21e9f67b2
Fleet UI: Remove install tooltip and add timestamp to InstallDetails modal (#33991) 2025-10-08 13:30:58 -04:00
Scott Gress
4697123f6e
Stop setup experience on software install fail: admin (#33968)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33110 
**Related issue:** Resolves #33109  

# Details

This PR implements the new "cancel setup if any software fails on macos"
flag, including both backend and frontend logic.

Half of the file changes are updating test expectations / auto-generated
schema.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [X] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [X] Added/updated automated tests
- [X] QA'd all new/changed functionality manually

## New Fleet configuration settings

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
`macos_setup` is still excluded from generate-girtops
- [X] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
Documented [here](https://github.com/fleetdm/fleet/pull/33016/files)
- [X] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [X] Verified that any relevant UI is disabled when GitOps mode is
enabled


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Added a macOS setup option: “Cancel setup if software install fails.”
  - Configure at global or team level; team settings override global.
- Toggle available in Setup Experience > Install software > Advanced
options.
  - Saved state persists and can be updated without leaving the page.
  - Devices honor the resolved setting during provisioning.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2025-10-08 17:51:52 +01:00
Gabriel Hernandez
09b7f56a64
add UI to support install software for ios and ipad on setup experience (#33973)
**Related issue:** Resolves #33701

Adds the UI needed to install software for ios and ipad during the setup
experience.

> NOTE: the video still needs to be recorded and placed in the code for
ios and ipad

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [ ] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2025-10-08 16:20:00 +01:00
Jahziel Villasana-Espinoza
0a3c6c35d3
Android software ingestion (#33826)
> Closes #33581 


<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)


## Testing

- [x] Added/updated automated tests

- [x] QA'd all new/changed functionality manually

## Database migrations

- [x] Checked table schema to confirm autoupdate
- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

---------

Co-authored-by: RachelElysia <rachel@fleetdm.com>
2025-10-08 10:24:38 -04:00
RachelElysia
18984f9ffa
Fleet UI: Fix "existing software" error message and make other add sw error messages consistent (#33947) 2025-10-08 09:17:07 -04:00
RachelElysia
b7068c2be9
Fleet UI: Update generateResultCountText to handle "certificates" (#33952) 2025-10-07 17:24:05 -04:00
Zach Wasserman
41c53860e3
Add support for VSCode fork extensions in software inventory (#33595)
**Related issue:** Resolves #31397

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [x] Added/updated automated tests

- [x] QA'd all new/changed functionality manually

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-10-07 14:05:22 -07:00
Rachael Shaw
75104bfbcb
Rename "Single sign-on options" settings page to "Single sign-on (SSO)" (#33946)
As part of https://github.com/fleetdm/fleet/issues/25798, we planned to
rename "Single sign-on options" to "Single sign-on (SSO)". However, we
missed adding a check for the copy change in the test plan, so we didn't
catch that the change didn't make it in.

The documentation/guide changes referencing the new page name were
already merged as part of 4.71.
2025-10-07 13:38:37 -05:00
RachelElysia
ad73c5ce01
Fleet UI: Show Android software inventory (#33809)
## Issue
Closes #33580
Part of Story #33060 

## Description
- Anything related to adding "android_apps" into the FE code
- Add to frontend interfaces `interfaces/platform.ts` for platforms that
do not support vuln scanning
- Add `application_id` key and `source: "android_apps"` value to
`ISoftware`
- Add source type conversion `android_apps: "Application (Android)"` for
rendering type in UI
  - Add to `INSTALLABLE_SOURCE_PLATFORM_CONVERSION`
- Show unsupported vuln empty state in software details page for
`source: "android_apps"`
  - Add android icon to software icons
- Use android icon as default fallback for `source: "android_apps"`
software
- Show android host details page > software library tab, but with
unsupported empty state correct showing android link instead of hiding
tab all together
- Show android host details page > software inventory tab > vuln filter
on, vuln not supported empty state

## Testing

- [x] QA'd all new/changed functionality manually
-
> FE code was manually QAed with hard coded data but will require BE
changes to be merged to E2E QA
2025-10-07 14:08:25 -04:00
jacobshandling
bb608296fe
Add gap between batch details tab table and table header (#33899)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33888 

<img width="1252" height="563" alt="Screenshot 2025-10-06 at 2 00 40 PM"
src="https://github.com/user-attachments/assets/2a021874-688a-4a14-a2b3-43eaa11c7af1"
/>

- [x] QA'd all new/changed functionality manually

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-10-07 09:33:46 -07:00
RachelElysia
6edc78d8ec
Fleet UI: Resurface post-install script output (#33765) 2025-10-07 11:02:39 -04:00
Martin Angers
adee5f78ed
Bugfix: error when package added that matches software title with existing VPP app (#33727) 2025-10-07 10:15:12 -04:00
Ian Littman
153301e892
Update copy to indicate that iOS/iPadOS work with vitals labels (#33919)
For #32072. Should be cherry-picked to 4.75 since that's where the
support was added.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [x] Confirmed that the fix is not expected to adversely impact load
test results
2025-10-07 06:07:51 -05:00
Magnus Jensen
58c9df8796
Smallstep qa fixes (#33885) 2025-10-06 16:32:29 -05:00
Scott Gress
12ab93d9e0
Update "Setting up your device" page for MacOS Setup Experience (#33770)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33173

# Details

This PR updates the "Setting up your device" page which appears in Linux
and Windows (and as of https://github.com/fleetdm/fleet/issues/30117,
MacOS) setup experiences. Front-end updates:

* Lots of renaming of things that were software-specific to now more
generically refer to "setup step"
* Removed the "My Device" heading
* Moved the info button inside the table header
* Added status of setup script run to the table
* Updated the empty state to not refer specifically to software
* Added optional `setup_only` query param to the `/device` page which,
if set, will always show the "setting up your device" page even if all
setup is complete. Normally as soon as setup finishes, the front-end
redirects to the regular My Device page. In the case of MacOS setup
experience, we don't want this to happen as we expect to either 1) keep
the setup experience up indefinitely if we're blocking device setup on
software install failure, or 2) close the setup dialog on successful
completion. This query param is also handy for testing.
* Added new "Configuration complete" state to be shown when all setup
steps are finished (successfully or not). This is only applicable on
MacOS, since other platforms will redirect to the My Device page when
finished.

This PR also includes one small backend change to the
`/device/{token}/setup_experience/status` API endpoint, to have it
return a `scripts` array alongside the existing `software` array. This
endpoint is not documented publicly.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [X] Added/updated automated tests
Updated existing DeviceUserPage tests that check the SettingUpYourDevice
content, and added new tests for the new scripts content and the new
query param.

- [X] QA'd all new/changed functionality manually

<img width="1028" height="867" alt="Screenshot 2025-10-02 at 7 20 28 PM"
src="https://github.com/user-attachments/assets/7adab2c2-dac1-4463-96fc-13094da2c379"
/>

(note that as of now we'd only have at most one script, showing multiple
here to demonstrate the different states)

<img width="1031" height="524" alt="Screenshot 2025-10-02 at 7 22 01 PM"
src="https://github.com/user-attachments/assets/bedaa840-d7ef-4b6f-8daf-6ac3b447594f"
/>

<img width="1222" height="760" alt="image"
src="https://github.com/user-attachments/assets/42cf82d5-53e0-4c4d-b60e-9ac2cc86af68"
/>

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2025-10-06 16:45:53 +01:00
Gabriel Hernandez
83a637469c
handle all three ios and ipad unenrollment states and diplay correct copy in unenroll modal (#33804)
This is a quick fix to handle all three cases when showing the unenroll
modal for ios and ipad devices.
It also adds better naming to the functions that check the enrollment
type.

- [x] QA'd all new/changed functionality manually
2025-10-06 10:44:58 +01:00
Sarah Gillespie
d41d4f871e
Add Smallstep to AddCertAuthorityModal (#33518)
Fixes unreleased bug found during demo prep
2025-10-03 10:26:51 -03:00
Juan Fernandez
ff333f7751
Avoid overriding local state with server state on ChangeManagement component (#33626)
Resolves #28713 

Fixed bug with the ChangeManagement component were server state was
overriding local UI state.
2025-10-02 21:15:38 -04:00
Ian Littman
d958046651
Add missing reference to Android hosts on label criteria (#33755)
Fixes a miss in #31464.

## Testing

- [ ] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [x] Confirmed that the fix is not expected to adversely impact load
test results
2025-10-02 13:57:50 -05:00
Rachael Shaw
9651668e33
Copy change: Add a step to the BitLocker PIN modal (#33729)
Follow-up copy change for BitLocker PIN modal on "My device" page, based
on [dogfooding
feedback](https://github.com/fleetdm/fleet/issues/32898#issuecomment-3308662704).

For user story:

+ #32898
2025-10-02 13:11:31 -05:00
Noah Talerman
ea9caec7e3
Fleet product: Copy typo (#33734)
- Missing space
2025-10-02 10:52:36 -04:00
RachelElysia
3dae9c1d44
Fleet UI: Fix header unstyled button (#33724) 2025-10-02 09:35:34 -04:00
RachelElysia
147afd4e5b
Fleet UI: Green progress bar (#33725) 2025-10-02 09:34:50 -04:00
RachelElysia
9cdf51333c
Fleet UI: UX Cleanups to match new patterns (#33730) 2025-10-02 09:34:25 -04:00
RachelElysia
4f6c8800d2
Fleet UI: Fix <dl> tag adverse effect, view all host adverse effect (#33715) 2025-10-01 15:38:45 -04:00
jacobshandling
956ba0a8b1
UI: Confirm before running scripts (#33679)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #28711 and #33685

- Adds a confirmation step to 2 run script user flows:
  - Host details > Actions > Run script > Actions > Run
- Host details > Actions > Run script > Click script name for script
details > More actions > Run
- For each user flow, canceling / going back takes the user to wherever
they came from, e.g., to the run script (scripts table) modal or to the
script details modal
- Confirming the script run always redirects to the run script (scripts
table) modal
- Consolidates and streamlines logic of the script modal group
- Clarify + solidify modal options in script modal group

<img width="1208" height="693" alt="Screenshot 2025-09-30 at 4 12 46 PM"
src="https://github.com/user-attachments/assets/160d4105-cbd1-48f5-9d52-1e11f81f87f5"
/>

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/
- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Added a confirmation dialog before running a script from a host’s
details, clearly showing the script and host names.
- Improvements
- Streamlined script run flow with clearer loading indicators and
smoother transitions between modals.
- Enhanced modal behavior: consistent close/cancel handling and the
ability to return to the previous view after canceling a run.
- More consistent actions in script details and run views, reducing
unexpected refreshes and interruptions.
- Chores
- Internal test updates to improve reliability of user interaction
simulations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-10-01 10:15:30 -07:00
jacobshandling
6037c67217
More flexible regex, 8k years in future scheduled time (#33706)
Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-10-01 09:05:02 -07:00
RachelElysia
85032e8aa0
FE: Buggy test fix (#33694) 2025-10-01 10:12:51 -04:00
RachelElysia
34a3504c6e
Fleet UI: Animate arrows for host actions dd and reveal buttons (#33660) 2025-09-30 23:01:26 -04:00
RachelElysia
cd9a7be95b
Fleet UI: Followup row hover unreleased fix, comment cleans (#33658) 2025-09-30 22:59:45 -04:00
Luke Heath
25e14ef90d
Add gray default avatar icon and update padding (#33598) 2025-09-30 12:52:06 -05:00
RachelElysia
676fcabe40
Fleet UI: Fix link, info banner spacing, certificates modal padding (#33637) 2025-09-30 13:44:39 -04:00
RachelElysia
4be5f35822
Fleet UI: Update labels page styling (#33628) 2025-09-30 13:43:54 -04:00
RachelElysia
8c7b309450
Fleet UI: Change org logo to light background on product and My Device Page (#33639) 2025-09-30 13:30:55 -04:00
RachelElysia
f283db01b4
Fleet UI: Fix wobble links in truncated text cell links (#33631) 2025-09-30 13:30:44 -04:00
Zach Wasserman
8271c5cea7
Remove console.log in frontend ActionsDropdown (#33613) 2025-09-29 20:50:17 -05:00
Ian Littman
6f6120b592
Add missing absolute timestamp tooltips to script list item upload and query modification table timestamps (#33599)
Fixes #33068.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [x] QA'd all new/changed functionality manually

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-29 16:57:51 -05:00
RachelElysia
efc64389b1
Fleet UI [Feature]: UI reskin (#33558) 2025-09-29 12:10:41 -05:00
Gabriel Hernandez
c6474eca82
add card for consistancy on the os versions empty table (#33470)
**Related issue:** Fixes #31688

updates the empty table state on os versions table to be consistant with
other empty states

**before**

<img width="1032" height="339" alt="image"
src="https://github.com/user-attachments/assets/bf5e353e-fc0e-4d40-b864-c9a47e8f93c1"
/>

**after**

<img width="1086" height="366" alt="image"
src="https://github.com/user-attachments/assets/2d2c7800-bbb7-4721-949b-bdfbb9adfb24"
/>


- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] QA'd all new/changed functionality manually
2025-09-29 18:10:24 +01:00
Scott Gress
62799c3ad4
Fix path for Controls top nav link (#33556)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33222

# Details

This PR fixes an issue where clicking "Controls" in the top nav doesn't
go to the expected page when the current page is a Controls tab like
"Scripts". The expected page is the default "Controls" page, i.e. the
first tab (currently the "OS Settings" tab).

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [ ] Added/updated automated tests
I made a pass at this but it requires either the router or mocking the
`<Link>/<ContextLink>` components which seems like overkill for this.

- [X] QA'd all new/changed functionality manually

![33222](https://github.com/user-attachments/assets/e3af7a65-f216-45ee-b75c-40b090608942)
2025-09-29 15:04:31 +01:00
Carlo
99d31dd4ad
Unenroll Android BYOD hosts (#33546)
Implements #31822. Admins can now unenroll Android hosts, and when a user deletes their work profile from an Android device, that host is automagically unenrolled from Fleet.
2025-09-29 08:15:30 -04:00
jacobshandling
b5e52ced7f
Add tooltip+truncation to Hosts table hostname column (#33532)
## #32155 

`hostname` and `UUID` columns truncate appropriately:

![ezgif-5eb0ee8702a8ec](https://github.com/user-attachments/assets/4e9762e6-0ef4-4c60-8221-e2006a604133)


- [x] Changes file added for user-visible changes in `changes/`
- [x] QA'd all new/changed functionality manually

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-26 14:59:36 -07:00
Ian Littman
3f703b557a
Allow setting software icons via GitOps (#32886)
Fixes #31897.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [ ] Added/updated automated tests

- [ ] QA'd all new/changed functionality manually

## New Fleet configuration settings

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [x] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [x] Verified that any relevant UI is disabled when GitOps mode is
enabled

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- GitOps now supports software icons: generate and include icon
files/paths in specs for packages and App Store apps.
  - CLI adds flags to control concurrent icon uploads/updates.
- Icons are uploaded, updated, or deleted automatically during GitOps
runs.
  - UI YAML modal now includes icon_url and offers icon download.

- Improvements
  - Robust path resolution for icon assets across specs.
  - Non-YAML outputs handle both string and byte file contents.

- Bug Fixes
  - Removes stale icons after App Store app re-association.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Scott Gress <scottmgress@gmail.com>
Co-authored-by: Scott Gress <scott@fleetdm.com>
Co-authored-by: Jahziel Villasana-Espinoza <jahziel@fleetdm.com>
2025-09-26 15:59:48 -05:00
jacobshandling
d38439fe5a
Revert "Fix Linux software install tooltip (#33483)" (#33528)
See
https://fleetdm.slack.com/archives/C084F4MKYSJ/p1758916964587199?thread_ts=1758839346.144999&cid=C084F4MKYSJ

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-26 13:42:50 -07:00
Lucas Manuel Rodriguez
6c5d75e2e0
Fix conditional access deletion (#33481)
Resolves #32419.

I took a stab at it while fixing #32420.

Sorry, missed to record with audio:
- I test with the proxy being down (to simulate failure when deleting)
and that the delete modal is not closed.
- Spinner during the delete API request.
- Cancel button disabled during the delete API request/.
- Tenant ID is cleared after successful deletion.


https://github.com/user-attachments/assets/dbad0613-a8bd-455d-8741-83c626328437

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

## Testing

- [X] QA'd all new/changed functionality manually
2025-09-26 13:02:52 -03:00