Nico
f2b2e23b0a
GitOps changes for custom org's logo uploads (#44550)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44333
# 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.
## Testing
- [x] Added/updated automated tests. Also added some integration tests
as a follow-up of the first PR
(https://github.com/fleetdm/fleet/pull/44390).
- [x] QA'd all new/changed functionality manually
#### generate-gitops
- Branched off to main, no URLs set, then ran generate-gitops on this
branch. Deprecated keys gone, new keys present.
<img width="447" height="170" alt="nourls_new"
src="https://github.com/user-attachments/assets/61931615-d61b-44d3-8095-f7a2b9bd8871"
/>
- Branched off to main, set external URLs for both light and dark modes,
then ran generate-gitops on this branch. Deprecated keys gone, new keys
set with the external URLs.
<img width="637" height="471" alt="externalurl_main"
src="https://github.com/user-attachments/assets/c3782756-acc2-4b99-812d-86e145f11ad5"
/>
<img width="459" height="168" alt="externalurl_new"
src="https://github.com/user-attachments/assets/aa2d8825-3c47-40ba-ab91-bb8202afe81a"
/>
- Within this branch, after uploading a custom logo for light mode, ran
generate-gitops. The logo was saved in lib/org_logo/light.webp
<img width="1510" height="639" alt="Screenshot 2026-05-04 at 4 06 59 PM"
src="https://github.com/user-attachments/assets/13318c24-8fa4-4e29-b629-ff723d4afe5a"
/>
<img width="786" height="172" alt="Screenshot 2026-05-04 at 4 07 30 PM"
src="https://github.com/user-attachments/assets/b46bd1df-7dcd-4489-b7da-4cbad77b25b8"
/>
#### gitops
- Applied gitops with two external URLs. Verified in the UI that those
are still present
<img width="944" height="189" alt="Screenshot 2026-05-04 at 7 54 53 AM"
src="https://github.com/user-attachments/assets/a34813ca-beb1-403e-9793-d42cc9c72f8b"
/>
<img width="637" height="259" alt="Screenshot 2026-05-04 at 8 01 04 AM"
src="https://github.com/user-attachments/assets/74c2cd56-ab1d-4ddd-9b8e-22c49e9ae9d5"
/>
- Applied gitops with "" as the URLs to clear them. Verified the default
fleet logo is shown.
<img width="460" height="201" alt="Screenshot 2026-05-04 at 8 15 11 AM"
src="https://github.com/user-attachments/assets/dcbafea3-b4ea-44aa-9045-08c4f5a64e98"
/>
<img width="648" height="269" alt="Screenshot 2026-05-04 at 8 15 50 AM"
src="https://github.com/user-attachments/assets/451a28f9-e929-4b84-93d3-a7dd9afd5eca"
/>
- Applied gitops with a custom logo for light theme, using
**org_logo_path_light_mode**:
<img width="948" height="207" alt="Screenshot 2026-05-04 at 4 10 05 PM"
src="https://github.com/user-attachments/assets/b1418cd4-31cc-4e53-b566-9af11ec21970"
/>
<img width="774" height="168" alt="Screenshot 2026-05-04 at 4 10 35 PM"
src="https://github.com/user-attachments/assets/63f596eb-308f-4122-ad86-e1d718e9b525"
/>
## New Fleet configuration settings
- [x] 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)
- See https://github.com/fleetdm/fleet/pull/43808.
- [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**
* GitOps support for uploading custom org logos (dark/light) via local
files.
* `fleetctl generate-gitops` exports Fleet-hosted logos as local files
and inserts path references.
* New API endpoints to upload, delete, and fetch org logos.
* **Deprecated**
* Legacy logo keys consolidated into mode-specific URL keys
(`org_logo_url_dark_mode`, `org_logo_url_light_mode`).
* **Bug Fixes / Validation**
* Validation/error when both a path and URL are provided for the same
mode; file size and image-format checks enforced.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-05 18:18:08 +02:00
..
2026-04-06 10:11:07 -05:00
2026-02-26 12:48:54 -06:00
2026-03-26 10:59:42 -03:00
2026-03-03 01:01:42 -06:00
2026-04-30 11:24:31 -04:00
2026-04-29 11:14:50 -04:00
2026-03-30 16:37:18 -05:00
2026-03-10 12:55:42 -05:00
2026-03-17 15:04:33 -04:00
2026-02-26 17:39:10 -06:00
2026-03-03 01:01:42 -06:00
2026-04-10 11:12:38 -04:00
2026-04-28 07:37:05 -06:00
2026-05-05 11:12:23 -05:00
2026-03-26 12:12:41 -06:00
2026-05-01 11:38:08 -06:00
2026-04-20 09:14:52 -04:00
2026-04-28 07:38:15 -06:00
2026-05-04 15:43:34 +02:00
2026-03-11 13:42:33 -03:00
2026-03-11 13:42:33 -03:00
2026-03-16 15:51:28 -05:00
2026-04-22 13:08:59 -04:00
2026-04-22 13:08:59 -04:00
2026-03-13 08:38:55 -05:00
2026-05-05 18:18:08 +02:00
2026-05-05 18:18:08 +02:00
2026-03-16 15:51:28 -05:00
2026-03-26 10:59:42 -03:00
2026-04-08 11:07:06 -03:00
2026-03-26 10:59:42 -03:00
2026-03-26 10:59:42 -03:00
2026-04-28 09:12:43 -03:00
2026-04-07 11:04:08 -03:00
2026-03-26 10:59:42 -03:00
2026-04-13 16:02:23 -03:00
2026-04-28 09:12:43 -03:00
2026-03-26 15:52:28 -04:00
2026-04-06 09:59:32 -05:00
2026-04-28 09:12:43 -03:00
2026-05-05 11:12:23 -05:00
2026-03-26 10:59:42 -03:00
2026-04-16 11:11:39 -04:00
2026-05-05 18:18:08 +02:00
2026-02-26 17:40:46 -06:00
2026-02-25 13:54:45 -06:00
2026-02-26 17:40:46 -06:00
2026-03-16 16:09:43 -05:00
2026-02-26 17:40:46 -06:00
2026-02-26 17:40:46 -06:00
2026-03-26 10:59:42 -03:00
2026-04-03 09:58:03 -05:00
2026-03-12 18:06:54 -04:00
2026-05-05 10:26:47 -04:00
2026-03-12 18:06:54 -04:00
2026-03-12 18:06:54 -04:00
2026-04-08 09:56:38 -04:00
2026-04-30 11:28:30 -04:00
2026-02-25 14:11:03 -06:00
2026-02-25 22:20:35 -06:00
2026-02-26 17:40:46 -06:00
2026-05-05 14:42:52 +02:00
2026-03-26 07:04:18 -04:00
2026-04-24 14:34:37 -05:00
2026-05-01 10:19:45 -03:00
2026-02-25 14:11:03 -06:00
2026-04-15 07:36:45 -05:00
2026-04-08 11:14:19 -06:00
2026-03-30 16:37:18 -05:00
2026-05-05 18:18:08 +02:00
2026-05-05 18:18:08 +02:00
2026-03-26 10:59:42 -03:00
2026-03-08 21:54:06 -05:00
2026-04-13 16:02:23 -03:00
2026-05-01 14:01:46 -06:00
2026-04-20 14:05:21 -04:00
2026-04-28 07:38:15 -06:00
2026-04-13 12:17:23 -05:00
2026-05-04 15:43:34 +02:00
2026-03-30 16:37:18 -05:00
2026-04-14 09:39:26 -05:00
2026-05-04 13:33:42 -06:00
2026-02-28 05:52:21 -06:00
2026-04-08 11:07:06 -03:00
2026-04-01 15:00:08 -03:00
2026-04-28 09:12:43 -03:00
2026-05-01 10:19:45 -03:00
2026-05-01 10:19:45 -03:00
2026-02-26 07:16:44 -06:00
2026-03-18 13:58:58 -05:00
2026-03-17 09:59:03 -05:00
2026-03-18 14:49:08 -04:00
2026-02-28 05:52:21 -06:00
2026-04-22 17:53:59 -05:00
2026-04-30 15:44:19 -05:00
2026-03-10 17:15:09 +00:00
2026-04-28 15:37:43 -05:00
2026-04-28 15:39:03 -05:00
2026-05-01 14:01:46 -06:00
2026-04-13 12:17:23 -05:00
2026-04-22 12:00:58 -04:00
2026-05-01 14:01:46 -06:00
2026-05-05 18:18:08 +02:00
2026-05-05 18:18:08 +02:00
2026-04-24 15:21:34 -03:00
2026-04-06 11:51:39 -05:00
2026-02-25 14:11:03 -06:00
2026-04-30 11:28:30 -04:00
2026-04-30 11:28:30 -04:00
2026-04-28 15:37:43 -05:00
2026-04-13 16:02:23 -03:00
2026-04-28 09:12:43 -03:00
2026-04-28 09:12:43 -03:00
2026-02-25 14:11:03 -06:00
2026-04-03 15:59:32 -05:00
2026-02-26 17:40:46 -06:00
2026-02-26 17:40:46 -06:00
2026-05-05 14:42:52 +02:00
2026-03-10 10:15:01 -03:00
2026-03-24 12:17:21 +00:00
2026-04-28 13:35:50 -05:00
2026-04-28 13:35:50 -05:00
2026-04-21 17:06:23 -05:00
2026-04-28 09:12:43 -03:00
2026-03-18 13:27:53 -04:00
2026-03-13 08:38:55 -05:00
2026-04-06 12:36:47 -04:00
2026-03-30 21:33:21 -07:00
2026-03-11 13:42:33 -03:00
2026-03-13 16:47:09 -04:00
2026-04-30 11:28:30 -04:00
2026-02-25 14:11:03 -06:00
2026-04-13 16:02:23 -03:00
2026-05-05 11:12:23 -05:00
2026-04-07 15:23:59 -05:00
2026-05-05 18:18:08 +02:00
2026-04-29 10:43:39 -03:00
2026-05-05 10:26:47 -04:00
2026-04-16 11:11:39 -04:00
2026-04-16 11:11:39 -04:00
2026-03-31 09:34:12 -04:00
2026-03-19 13:02:42 -04:00
2026-02-25 13:54:45 -06:00
2026-03-12 15:36:44 -05:00
2026-04-02 13:18:15 -05:00