fleet/cmd/fleetctl/fleetctl
Victor Lyuboslavsky c4479c6a84
Add require_all_software_windows config option (#43011)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42853

This PR simply adds the `require_all_software_windows` config option. It
doesn't use it. The logic to use it will be hooked up in subsequent PRs.

The fleetctl TestIntegrationsPreview test is expected to fail since it
builds the server against main and doesn't know about our new config
option.

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

## Testing

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

## New Fleet configuration settings

- [x] Verified that the setting is exported via `fleetctl
generate-gitops`
- Not exported. generate-gitops does not export
require_all_software_windows (or require_all_software_macos either). The
generateControls function (generate_gitops.go) outputs a "TODO: update
with your setup_experience configuration" placeholder when any setup
experience config exists, rather than exporting individual field values.
This is a pre-existing limitation that applies equally to both fields -
not something introduced by our PR.
- [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)
- Yes. PR #42046 adds require_all_software_windows to both docs/REST
API/rest-api.md and docs/Configuration/yaml-files.md.
- [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)
- Yes, it gets cleared to false - both when setup_experience: is present
without the field, and when setup_experience: is omitted entirely. This
is the same behavior as the existing require_all_software_macos field
- [x] Verified that any relevant UI is disabled when GitOps mode is
enabled
- Covered by #42854 (frontend subtask). The existing macOS checkbox in
InstallSoftwareForm.tsx:271 already checks gitOpsModeEnabled to disable
itself. The Windows checkbox to be added in #42854 will follow the same
pattern.


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

## Summary by CodeRabbit

* **New Features**
* Added a Windows setup experience software requirement setting. When
enabled, Windows devices will cancel the Autopilot setup if any required
software installation fails.

* **Tests**
* Added test coverage for the new Windows software requirement
configuration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-06 17:39:59 -05:00
..
templates/new Fix typo in installation instructions (#42702) 2026-03-30 18:34:29 -04:00
testdata Add require_all_software_windows config option (#43011) 2026-04-06 17:39:59 -05:00
testing_utils Enforce GitOps exceptions (#42191) 2026-03-27 15:38:08 -05:00
api.go Update error message for Fleet API address (#38600) 2026-02-24 09:06:03 -07:00
api_test.go Feat/31914 patch policy (#41518) 2026-03-13 16:47:09 -04:00
apply.go Activate deprecation warnings (#41449) 2026-04-06 09:59:32 -05:00
apply_deprecated_test.go Activate deprecation warnings (#41449) 2026-04-06 09:59:32 -05:00
apply_test.go Add require_all_software_windows config option (#43011) 2026-04-06 17:39:59 -05:00
config.go fleetctl config set --token: Simplify output message (#39788) 2026-02-13 09:34:25 -05:00
config_test.go Fix fleetctl config help display for missing arguments (#37769) 2026-01-08 09:55:18 -05:00
convert.go Add aliases to fleetctl commands and flags (#40548) 2026-02-27 08:38:29 -06:00
convert_test.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
debug.go Fixed typo in debug.go (#31135) 2025-07-22 22:00:47 -05:00
debug_test.go Moved some integration tests into their own package. (#28978) 2025-05-09 09:26:57 -05:00
delete.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
delete_test.go Move NewActivity to activity bounded context (#39521) 2026-02-25 14:11:03 -06:00
docker_test.go Moved some integration tests into their own package. (#28978) 2025-05-09 09:26:57 -05:00
flags.go Add aliases to fleetctl commands and flags (#40548) 2026-02-27 08:38:29 -06:00
fleetctl.go Use fleetctl new templates for new instances (#42768) 2026-04-03 09:58:03 -05:00
generate.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
generate_gitops.go ACME MDM -> main (#42926) 2026-04-02 15:56:31 -05:00
generate_gitops_test.go Implement FMA software policy automation (#42533) 2026-03-30 11:25:46 -05:00
generate_test.go Moved some integration tests into their own package. (#28978) 2025-05-09 09:26:57 -05:00
get.go Activate deprecation warnings (#41449) 2026-04-06 09:59:32 -05:00
get_test.go Feat/31914 patch policy (#41518) 2026-03-13 16:47:09 -04:00
gitops.go Activate deprecation warnings (#41449) 2026-04-06 09:59:32 -05:00
gitops_test.go Implement FMA software policy automation (#42533) 2026-03-30 11:25:46 -05:00
goquery.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
hosts.go Add aliases to fleetctl commands and flags (#40548) 2026-02-27 08:38:29 -06:00
hosts_test.go Add aliases to fleetctl commands and flags (#40548) 2026-02-27 08:38:29 -06:00
kill_process.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
kill_process_windows.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
login.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
logout.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
logout_test.go Moved some integration tests into their own package. (#28978) 2025-05-09 09:26:57 -05:00
mdm.go [fleetctl] api command: support request body, including file uploads (#30806) 2025-07-29 08:15:23 -05:00
mdm_test.go ACME MDM -> main (#42926) 2026-04-02 15:56:31 -05:00
new.go Update fleetctl new readme (#42236) 2026-03-25 10:43:45 -05:00
new_test.go Add fleetctl new command (#41909) 2026-03-20 17:27:27 -05:00
package.go Add initial Arch Linux support (#33096) 2025-09-18 18:55:31 -03:00
preview.go Use fleetctl new templates for new instances (#42768) 2026-04-03 09:58:03 -05:00
query.go Activate deprecation warnings (#41449) 2026-04-06 09:59:32 -05:00
query_output.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
query_test.go Final slog migration PR: test infrastructure + tools + remaining standalone files (#40727) 2026-02-28 05:52:21 -06:00
scripts.go Add Python script support for macOS and Linux (#38562) 2026-03-24 10:01:54 -04:00
scripts_test.go Add Python script support for macOS and Linux (#38562) 2026-03-24 10:01:54 -04:00
session_test.go Show Manage Automations disabled button with tooltip on Queries page (#39302) 2026-02-09 15:16:28 -03:00
setup.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
testing_utils.go Add API time on GitOps errors to ease troubleshooting (#43000) 2026-04-06 10:58:41 -03:00
trigger.go Moved fleetctl to fleetctl package. (#28932) 2025-05-07 15:53:35 -05:00
trigger_test.go Final slog migration PR: test infrastructure + tools + remaining standalone files (#40727) 2026-02-28 05:52:21 -06:00
upgrade_packs.go Support report/fleet as spec "kinds" (#40586) 2026-02-26 13:07:21 -06:00
upgrade_packs_test.go Support report/fleet as spec "kinds" (#40586) 2026-02-26 13:07:21 -06:00
user.go Add aliases to fleetctl commands and flags (#40548) 2026-02-27 08:38:29 -06:00
users_test.go Fix TOCTOU race in last global admin protection (#42172) 2026-04-01 15:00:08 -03:00
vulnerability_data_stream.go Migrating vulnerabilities pkgs to slog. (#40106) 2026-02-20 15:36:38 -06:00