Commit Graph
3607 Commits
Author SHA1 Message Date
Juan Fernandez 8e589f8ee6 Updated DEP enrollment updates logic for macOS (#37402)
**Related issue:** Resolves #36188 

This amends the DEP enrollment logic changed in [this
PR](https://github.com/fleetdm/fleet/pull/37295).
2025-12-17 12:44:05 -04:00
RachelElysia 93be9ddaff Fleet UI: Fixed click area of edit software file button (#37359) 2025-12-17 11:03:53 -05:00
Jordan Montgomery 3064259b88 Hide builtin labels on host page (#37393)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32777

# 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
2025-12-17 10:17:10 -05:00
Juan Fernandez 67ede3cd31 Android certs new activities (#37360)
**Related issue:** Resolves #36695 

Create activities when certificate templates are created/deleted via UI.
2025-12-17 11:06:04 -04:00
jacobshandling ca2fc6030f Create, list, delete Android certificates from the UI (#37314)
**Related issue:** Resolves #36689 

<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 08
02 PM"
src="https://github.com/user-attachments/assets/4f491c80-403f-4188-8cab-552e997c6e9c"
/>
<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09
18 PM"
src="https://github.com/user-attachments/assets/b6e4d9ad-40c1-45c3-8b77-e14d17a2bc7e"
/>
<img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09
22 PM"
src="https://github.com/user-attachments/assets/661beee2-3ee2-4269-ab0b-ca070c1a40b8"
/>




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

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

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added comprehensive Android certificate management in OS Settings with
create, list, and delete operations
* Integrated certificate management with premium tier gating and MDM
enablement checks
  * Supports team-scoped certificates with pagination controls
* Includes validation for certificate names and certificate authority
selection

* **Refactor**
* Generalized heading component to support multiple entity types beyond
configuration profiles

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 15:39:07 -08:00
Scott GressandLucas Manuel Rodriguez efb0c03513 Link newly-enrolled Windows/Linux host with SCIM user (#37327)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37271

# Details

This PR addresses a gap where Windows or Linux hosts enrolling via
end-user authentication were not linked to existing SCIM user data.

# 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

Tested on a Linux VM using Okta, verified that after enrolling it
populated SCIM attributes for the user:
<img width="858" height="299" alt="image"
src="https://github.com/user-attachments/assets/dc3bf70e-62cb-40a6-aebe-fef3db6d8f53"
/>

---------

Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2025-12-16 17:05:29 -06:00
Scott Gress e8999e8ddb Stream "list hosts" endpoint (#37258)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35007

# Details

This PR implements a new `StreamHosts` service method and utilizes this
method in `listHostsEndpoint`. The purpose of this method is to allow
the "list hosts" endpoint to stream a JSON response down one host at a
time (more or less), so that the entire JSON payload doesn't have to sit
in memory all at once. The response can be very large when software and
users are populated using the optional `populate_software` and
`populate_users` querystring options.

**Notes:**

* The `ListHosts` database method currently returns the entire result
set at once. The assumption with this iteration is that it was
populating the extra data in each host that was pushing the response to
untenable sizes. If we're still seeing OOM issues after this PR, we can
refactor to also use an iterator to stream rows from the database.
* The `listHostsEndpoint` method calls `StreamHosts` to get a host
iterator, but also creates its own iterator to supply to the response,
because we (sometimes) need to populate `Labels` on each host response
object. The `StreamHosts` method only returns `Host`s not
`HostResponse`s, hence the need for the wrapper.
* A new response type `StreamHostsResponse` was created because other
methods utilize the existing `ListHostsResponse`. We could keep just
`ListHostsResponse` and toggle how it responds based on whether an
iterator is provided, but keeping the types separate is simpler to
reason about and test.

# 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
- [X] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

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



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

* **New Features**
* Hosts listing API now streams results incrementally for faster initial
responses and better performance on large inventories or complex
queries.
* Host details (optional labels, software and MDM info) are
progressively enriched and delivered as available, allowing partial
results while remaining data loads.
* Streaming provides clearer partial-error reporting so partial results
can be returned even when some enrichments fail.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 12:40:41 -06:00
Juan Fernandez 43181eb49c Update backend and GitOps to handle AppleOSUpdateSettings.UpdateNewHosts (#37295)
**Related issue:** Resolves #36188 

Update backend and GitOps to handle AppleOSUpdateSettings.UpdateNewHosts
2025-12-16 14:38:28 -04:00
Magnus Jensen b4f2741b50 XML escape $FLEET_SECRET in XML files (#37255)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32920 

# 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
- [x] QA'd all new/changed functionality manually
2025-12-16 09:51:48 -04:00
Marko Lisica b233493d45 Update enrollment links font to monospaced (#37279)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36754

# 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


Screenshots:

<img width="849" height="394" alt="Screenshot 2025-12-15 at 18 03 06"
src="https://github.com/user-attachments/assets/054d0d99-59b7-4664-b682-fb68a5cccad8"
/>
<img width="882" height="421" alt="Screenshot 2025-12-15 at 18 02 42"
src="https://github.com/user-attachments/assets/87ac021e-d88a-4cbf-8b46-8f674d838d3c"
/>
2025-12-16 14:35:46 +01:00
RachelElysia d8a3af4e88 Fleet UI: Ability to update android configuration + FE cleanups (#37065) 2025-12-15 09:26:33 -05:00
RachelElysia 3e7c4d1850 Fleet UI: Add software links go to relevant platform add software page (#37202) 2025-12-15 09:25:07 -05:00
Lucas Manuel RodriguezandIan Littman 78b926da5d Add backend changes for team labels (#37116)
Resolves #36781.

---

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [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] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)
- [X] QA'd all new/changed functionality manually

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

## Summary by CodeRabbit

* **New Features**
* Team labels are now supported, allowing labels to be assigned to
specific teams.

* **Bug Fixes**
* Label memberships properly clean up when hosts are transferred between
teams.
  * Team deletion now cascades cleanup of associated team labels.
* Label query results are scoped to prevent stale or misapplied results.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

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

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2025-12-14 20:02:15 -03:00
Magnus Jensen b2e01a4f54 Add filter param and count to MDM commands endpoint (#37125)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36868 

Returning the count does not seem to really affect the performance with
my data set, but let us see what the load test shows.

# 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
- [x] QA'd all new/changed functionality manually
2025-12-12 16:26:31 -04:00
Scott Gress 1915e7122f Add "update new hosts to latest" to OS Updates form for MacOS (#37103)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36088

# 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
- [X] QA'd all new/changed functionality manually
Saving this value currently results in a 400 response from the server
since it's not a valid key yet. We can keep this in draft until the
backend is merged if we want to e2e test with it.

### Controls -> OS Settings "Target" section

#### All platforms

- [X] Update success banner message to "Successfully updated."

<img width="200" alt="image"
src="https://github.com/user-attachments/assets/bc43ec79-41d1-4dd3-947c-8152051fd209"
/>

#### macOS / iOS / iPadOS

- [X] Update tooltip text for "Minimum version" to `Enrolled hosts are
updated to exactly this version.`

<img width="250" alt="Image"
src="https://github.com/user-attachments/assets/7d870224-395e-4bc9-937e-be599da57a97"
/>

- [X] Make "available from Apple" a link, replacing "Learn more", and
link to https://fleetdm.com/learn-more-about/apple-available-os-updates

<img width="250" height="363" alt="image"
src="https://github.com/user-attachments/assets/8191ec2d-bf0a-4cf6-9b1a-1272c0ff69b0"
/>

> Note - this URL is current a 404

- [X] Remove text referring to platform from "End user experience"
heading, i.e. it should just say "End user experience" for all platforms
where it appears, not e.g. "End user experience on macOS"

#### macOS Only

- [X] Add new "Update new hosts to latest" checkbox
<img width="316" height="406" alt="Image"
src="https://github.com/user-attachments/assets/71aec05a-b809-436d-8bfd-cd3e14b27ea1"
/>

- [X] Reflects the `macos_updates.update_new_hosts` setting for the team
or (for no team) global config (only testable via automated tests right
now)
- [X] Update End user experience text to "When a minimum version is
enforced, end users see a native macOS notification (DDM) once per day."
(see above)

### Global activity feed

- [X] When "Update new hosts to latest" is enabled, activity should say
`[Actor's name] enabled OS updates for all new macOS hosts on the [team
name] team. macOS hosts will upgrade to the lastest version when they
enroll.`
- [X] When "Update new hosts to latest" is disabled, activity should say
`[Actor's name] disabled updates for all new macOS hosts on the [team
name] team.`

(tested via automated tests)
2025-12-12 11:46:07 -06:00
Juan Fernandez 5071735f64 Added new 'update_new_hosts' OS Setting config field (#37027)
**Related issue:** Resolves #36189 

Added new 'update_new_hosts' OS Setting config field
2025-12-11 19:48:30 -04:00
RachelElysia ae0d30fe48 Fleet UI: Allow search in transfer teams dropdown (#37144) 2025-12-11 16:00:35 -05:00
Gabriel Hernandez aa3cae53e7 add ability to resend window profiles on host details and my device pages (#37043)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35509

This adds the ability in the UI to resend windows profiles in the OS
settings modal on both the host details and my device pages

- [x] Changefile
- [x] QA'd all new/changed functionality manually
2025-12-11 13:11:34 -06:00
RachelElysia 137216ce40 Fleet UI: Remove ability to transfer host to current team (#36974) 2025-12-11 12:34:57 -05:00
Sarah Gillespie d619746ebf Ingest Windows host certificates via osquery (#36771) 2025-12-11 09:53:41 -06:00
Victor Lyuboslavsky 276af0f5b0 Refactored RDS IAM authentication logic into a dedicated rdsauth package (#36847)
Simplified and modularized IAM auth setup for MySQL connections.

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

Manually QA'ed by setting up RDS with IAM and running Fleet like:
```
FLEET_MYSQL_ADDRESS=fleet-iam-test-public.xxxxxxxxx.us-east-2.rds.amazonaws.com:3306 \
  FLEET_MYSQL_USERNAME=fleet_iam \
  FLEET_MYSQL_DATABASE=fleet \
  FLEET_MYSQL_REGION=us-east-2 \
./build/fleet serve
```

# 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.



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

## Summary by CodeRabbit

* **Refactor**
* Reorganized IAM authentication infrastructure for RDS databases to
improve code organization and maintainability.
* Enhanced the database connection layer to support flexible
authentication configuration methods while maintaining full backward
compatibility with existing configurations.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-10 16:21:35 -06:00
Jordan Montgomery e9b8e47e58 36693 Do not send Automatic ENrollment Profile to Apple when it hasn't actually changed (#36893)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36693

If a prior automatic enrollment(setup assistant) profile exists,
compares it to the one being sent in the request and only revalidates it
with Apple when it changes

# 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)
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [x] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [x] QA'd all new/changed functionality manually
2025-12-10 14:31:18 -05:00
melpikeandRachael Shaw 5eafe1e2e0 Update tables schema with note about using "count" (#36636)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35762 

# Checklist for submitter

- [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] QA'd all new/changed functionality manually

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2025-12-10 12:11:47 -07:00
Ian Littman fe2a9a867e Swap minio to rustfs (#36851)
Resolves #36909.

# 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

- [x] QA'd all new/changed functionality manually
2025-12-10 10:03:48 -06:00
Martin Angers 7582a084f6 Android config: policy reconciliation/application (#36627) 2025-12-09 14:48:55 -05:00
Brian Rotich 87faea21d9 Fix UI error message when adding duplicate software title to a team (#36394)
Resolves #36021. Fix the copy shown when a user adds a customer software to a team with a
duplicate title.
2025-12-09 08:48:10 -05:00
Luke Heath 70ab8c2925 Adding changes for Fleet v4.77.0 (#35382) (#36614) 2025-12-08 16:32:47 -06:00
Ian Littman 62755cbd82 Bump Go to 1.25.5, Alpine to 3.23.0 where relevant, bump Trivy to current version (#36848)
Fixes vulns reported in
https://github.com/fleetdm/fleet/actions/runs/19999992703. We'll
definitely want to at least cherry-pick this.
2025-12-07 20:04:14 -06:00
Jahziel Villasana-Espinoza eb87048714 34376 android sw gitops (#36595)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34376

# 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] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)
- [x] QA'd all new/changed functionality manually

## New Fleet configuration settings

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [x] Verified that the setting is exported via `fleetctl
generate-gitops`
- [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)
2025-12-05 20:01:57 -05:00
jacobshandling 5cc79a5ca8 Update FileUploader button layout and styling (#36808)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36804

- Update text/icon order when relevant, remove redundant `label` causing
padding inconsistencies

<img width="965" height="1521" alt="Screenshot 2025-12-05 at 2 10 14 PM"
src="https://github.com/user-attachments/assets/fb8df8f4-f98a-4a26-8c82-b846576529a9"
/>

- Confirm UI/UX everywhere it's used:
<img width="619" height="553" alt="Screenshot 2025-12-05 at 2 23 23 PM"
src="https://github.com/user-attachments/assets/87295511-e84b-4f68-8403-2fb1dc1c7ccf"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 23 06 PM"
src="https://github.com/user-attachments/assets/e6f995af-ba77-477d-84ad-0acc4104314e"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 19 59 PM"
src="https://github.com/user-attachments/assets/20bd6cd9-2340-4dbb-a9cc-8c46fe64a847"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 20 25 PM"
src="https://github.com/user-attachments/assets/62c8694a-2380-47b9-b59b-6878a4f49d8e"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 21 19 PM"
src="https://github.com/user-attachments/assets/7ec9487a-3387-4060-aebb-421c5e878329"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 17 29 PM"
src="https://github.com/user-attachments/assets/f8509f38-a143-4a96-84f3-3c791cd5177c"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 17 15 PM"
src="https://github.com/user-attachments/assets/acc42d69-8c79-4a11-a0eb-fadf4dc10523"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 16 50 PM"
src="https://github.com/user-attachments/assets/eea89d0d-648c-4d1b-94e8-cba0226200fc"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 21 35 PM"
src="https://github.com/user-attachments/assets/36dc034d-dfa8-4dd1-8b76-a282e4e52aca"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 17 45 PM"
src="https://github.com/user-attachments/assets/a7050ad9-c0a2-42e0-a76f-15b9bb171d8b"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 22 45 PM"
src="https://github.com/user-attachments/assets/cb3a0d7c-270a-46aa-ae6a-e2695e41c26a"
/>
<img width="1464" height="959" alt="Screenshot 2025-12-05 at 2 19 14 PM"
src="https://github.com/user-attachments/assets/982a072c-2523-4bf5-b67a-82506ac844cc"
/>


# 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
2025-12-05 14:59:12 -08:00
jacobshandling d6c1cd65ee Add internal error state for file uploader, apply to Okta Conditional Access (#36798)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36762 
<img width="852" height="624" alt="Screenshot 2025-12-05 at 1 07 26 PM"
src="https://github.com/user-attachments/assets/f8624566-faaf-4c56-a1b5-608ea2bb976d"
/>



# 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
2025-12-05 13:46:53 -08:00
Juan FernandezandVictor Lyuboslavsky a098a6c9bc Android certificate crud: validate variable replacement (#36648)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36533 

If variables can't be interpolated return 400.

# 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

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

## Summary by CodeRabbit

* **Bug Fixes**
* Corrected HTTP status code returned when certificate template variable
interpolation fails
* Certificate delivery status now properly reflects failed
interpolation, improving visibility into deployment issues

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

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

---------

Co-authored-by: Victor Lyuboslavsky <2685025+getvictor@users.noreply.github.com>
2025-12-05 12:14:14 -06:00
jacobshandling 26b33f37aa Add missing website redirect (#36732)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36731 

- [x] Changes file added for user-visible changes in `changes/`
- [x] QA'd all new/changed functionality manually
2025-12-05 08:54:10 -08:00
jacobshandling 2fd9a3f004 Improve login form tabbing (#36736)
**Related issue:** Resolves #36735 

Fixed the order of tabbing on the log in page while maintaining update
styling:

![ezgif-2a83bf92c68732c0](https://github.com/user-attachments/assets/f4a6b3ea-0e03-42c4-83da-407bf24eee8b)

- [x] Changes file added for user-visible changes in `changes/`
- [x] QA'd all new/changed functionality manually
2025-12-05 08:53:31 -08:00
RachelElysia 1922e772d7 Fleet UI: Disable host action buttons on click (noticeable on slow connections) (#36707) 2025-12-05 07:04:58 -05:00
jacobshandling e7414a3c51 Error when trying to filter software_titles with platform without a team_id (#36658)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34072 

# 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] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved request validation: filtering software titles by platform now
requires a team_id. The system returns a clear error message if platform
filtering is attempted without specifying a team.

* **Tests**
* Added test coverage for platform-based software title filtering and
validation scenarios.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-04 16:55:46 -08:00
jacobshandling 2521daa1fe Allow saving Fleet Queries with invalid* SQL, update error text, some JS –> TS housekeeping (#36637)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35058 

- Open the Query save or save-as-new-ing flows in the UI even when a
syntax error is found in the Query's SQL.
- Continue blocking save when the query is empty
- Update tests
- JS –> TS housekeeping

<img width="1162" height="1248" alt="Screenshot 2025-12-02 at 4 31
47 PM"
src="https://github.com/user-attachments/assets/23b4e70d-f104-4b0e-b316-c03fb6492f59"
/>

<img width="1162" height="1248" alt="Screenshot 2025-12-02 at 4 31
50 PM"
src="https://github.com/user-attachments/assets/5b5ad0b7-36f0-4c5e-a2ff-e9665263c8f1"
/>


# 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] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

* "invalid" according to Fleet's UI. Though we make efforts to fix false
negatives here as we become aware of them, that parsing is imperfectly
aligned with SQL that osquery considers valid
2025-12-04 11:18:48 -08:00
Zach Wasserman 7c6484dd63 Redact API tokens in fleetctl config set (#36692)
**Related issue:** Resolves #34626

# 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] QA'd all new/changed functionality manually
2025-12-04 10:06:57 -08:00
RachelElysia 092b55a760 FE: Ensure ids are unique (#36124) 2025-12-04 09:54:52 -05:00
Juan Fernandez 068ffeaf40 Use auth header for android end-points (#36594)
**Related issue:** Resolves #36287 

Updated 'fleetd/certificates/<id>' and 'fleetd/certificates/<id>/status'
to authenticate using the orbit_node_key provided in the
'Authentication' header.
2025-12-03 15:42:03 -04:00
Martin AngersandRachelElysia 5a8e2774bf Feature branch: Android Setup Experience support (#35951)
Feature branch for
https://github.com/fleetdm/fleet/issues/33761#issuecomment-3548996114


---------

Co-authored-by: RachelElysia <71795832+RachelElysia@users.noreply.github.com>
2025-12-02 12:27:20 -05:00
Gabriel Hernandez e16c3c7272 change TurnOnMDMMessage component to generic TurnOnMessage and use in end user auth page (#36477)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35296

This makes the TurnOnMDMMessage component more generic and display a
configurage "Turn on" message. We then are able to use this in the End
user auth page on the controls page.

- [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] QA'd all new/changed functionality manually
2025-12-02 12:11:10 +00:00
Gabriel Hernandez f63ed0a4c6 make UI elements have consistant spacing on mdm page (#36487)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35371

This makes the spacing between UI elements on the mdm page consistant.
Specifically we just remove margins around the video element in the end
user migration section

- [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-12-02 12:07:54 +00:00
Konstantin Sykulev 04e6f1b261 Notify android devices of certificate_template changes (#36258)
**Related issue:** Resolves #35465

# 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
- [ ] QA'd all new/changed functionality manually

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added certificate template delivery support for MDM-enrolled Android
devices via managed configurations.
* Enhanced certificate templates with delivery status, challenge
information, and certificate authority type details.
* Improved host certificate template management with expanded database
operations for lookup, insertion, and status updates.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-01 17:30:18 -06:00
jacobshandling d87f69563f Fix and improve handling of "installed" software scenarios (#36516)
**Related issue:** Resolves #31973 

Addresses a few closely related issues around determining the
appropriate UI to display for installed software

- Pass the inherited host's `softwareUpdatedAt` to the handler
responsible for determining the software's "UI display status" so it can
calculate whether it is "recently installed", as intended.
- In the scenario where the above is _not_ passed in for some reason,
default to "installed" ui display status any time the software's status
is "installed"
- Add a check that ensures the above default "installed" ui status is
captured even when `installed_versions` is `null`. This scenario
previously returned an "uninstalled" ui display status, which caused
this bug initially

<img width="1720" height="880" alt="Screenshot 2025-12-01 at 12 02
29 PM"
src="https://github.com/user-attachments/assets/20874ff5-133c-4b74-8634-2cdc2d3a1497"
/>

- [x] Changes file added for user-visible changes in `changes/
- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2025-12-01 13:17:42 -08:00
Juan FernandezandLucas Manuel Rodriguez ec71fb814e Added missing detail column to host_certificate_templates (#36397)
**Related issue:** Resolves #36292 

- Allow clients to specify details about the certificate template status
change.
- Allow clients to see the details of the certificate template status
change.

---------

Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2025-12-01 14:46:14 -04:00
Magnus Jensen 75a9170502 Always return fields for Windows MDM command result even if pending (#36483)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #31819 

I also ended up tweaking the return value for windows commands in the
`commands` endpoint, so it aligns everywhere.

# 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
- [x] QA'd all new/changed functionality manually

MDM Command result with a pending command:
<img width="770" height="334" alt="Screenshot 2025-12-01 at 12 36 55"
src="https://github.com/user-attachments/assets/51adb4bd-cc07-455c-8255-e1ec654521d2"
/>

MDM comman result with a result:
<img width="764" height="517" alt="Screenshot 2025-12-01 at 12 36 07"
src="https://github.com/user-attachments/assets/dec2f1c1-e756-4170-a1d0-5496dc8039b9"
/>
2025-12-01 13:53:22 -03:00
Gabriel HernandezandMagnus Jensen 37985e3df6 feat activity audit fancy search activities (#35825)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #29727

**new filters:**

<img width="720" height="931" alt="image"
src="https://github.com/user-attachments/assets/bba33904-24ae-4c12-b2ed-49152588e636"
/>

**new type filter**

<img width="411" height="433" alt="image"
src="https://github.com/user-attachments/assets/14b060df-f01b-48ce-8dff-ca01e5fad6d6"
/>

> NOTE: i will be doing a follow up PR for keyboard navigation

- [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] Added/updated automated tests
- [x] QA'd all new/changed functionality manually

---------

Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2025-12-01 16:48:43 +00:00
Magnus Jensen 06761243d7 Optimize clean up apple profiles query (#36405)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35601 

# 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
2025-11-27 17:02:57 -03:00
Sarah Gillespie 5850840d04 Fix references to enable-scripts flag in error messages and comments (#36340) 2025-11-26 13:53:57 -06:00