fleet/server/service
Jordan Montgomery f1662e1da6
Mark dep assignments as failed on certain server errors (#31523)
Putting this up for comments

On certain errors(like a network error, perhaps even Apple ratelimiting)
we previously would drop assignments during the DEP sync and leave the
host_dep_assignments row null and the assignment unset on the Apple
side. Because of how the sync works it is entirely possible when this
happens that we would happily go along, update the cursor and never
return to resync these devices unless and until the admin did something
that forced a resync like changing something about the cloud config
profile.

Now any devices that for any reason don't get returned by the response
get marked as failed so that our logic for retrying and processing
cooldowns picks them up for later retry.

Explanation here as far as what I think is going wrong:
https://github.com/fleetdm/fleet/issues/31385#issuecomment-3145117080

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

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] 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-08-06 13:15:43 -04:00
..
async Update to Go 1.24.1 (#27506) 2025-03-31 11:14:09 -05:00
calendar Update Google Calendar event bodies and relevant previews in the Fleet UI (#28715) 2025-05-01 13:12:53 -07:00
conditional_access_microsoft_proxy Microsoft Compliance Partner backend changes (#29540) 2025-06-11 14:22:46 -03:00
contract Fleet server verifies HTTP signature (#30825) 2025-07-16 20:08:27 +02:00
externalsvc
integrationtest Add SCEP endpoint for host identity. (#30589) 2025-07-11 11:44:07 -03:00
middleware Replace home-made SAML implementation with https://github.com/crewjam/saml (#28486) 2025-07-07 15:13:46 -03:00
mock Update nanomdm dependency with latest bug fixes and improvements. (#23906) 2024-11-20 11:47:11 -06:00
osquery_utils Ability to set TPM PIN protector policy on host. (#31484) 2025-08-01 13:32:19 -04:00
redis_key_value Make software batch endpoint asynchronous (#22258) 2024-09-20 11:55:47 -03:00
redis_lock Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
redis_policy_set Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
schedule Clear cron schedule errors before each run (#26775) 2025-03-03 16:41:48 -06:00
testdata Add support for IdP department to SCIM and add FLEET_VAR_HOST_END_USER_IDP_DEPARTMENT fleet variable (#30375) 2025-06-29 15:23:03 -03:00
activities.go Cancel upcoming activities: create past canceled activities (#27956) 2025-04-09 16:08:51 -04:00
activities_test.go Cancel upcoming activities: create past canceled activities (#27956) 2025-04-09 16:08:51 -04:00
appconfig.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
appconfig_test.go Add config for requiring BitLocker PIN (#31109) 2025-07-23 14:38:49 -05:00
apple_mdm.go Fail DDM profiles if response is UnknownDeclarationType (#31606) 2025-08-06 14:38:25 +02:00
apple_mdm_ddm_test.go Updated SQL modes in tests to match production. (#31445) 2025-08-03 08:18:13 +02:00
apple_mdm_test.go Fail DDM profiles if response is UnknownDeclarationType (#31606) 2025-08-06 14:38:25 +02:00
base_client.go TPM osquery-perf support (#30994) 2025-07-18 10:19:05 -03:00
base_client_errors.go fleetctl: Handle "password reset required" errors (#27132) 2025-03-17 09:44:59 -07:00
base_client_test.go TPM osquery-perf support (#30994) 2025-07-18 10:19:05 -03:00
build_tags_test.go Return 405 when receiving POST request on the route path (#16750) 2024-02-14 12:40:43 -03:00
calendar.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
campaigns.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
campaigns_test.go Improved label(s) validation when running queries (#23834) 2024-11-21 16:13:30 -06:00
carves.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
carves_test.go Update carve request block id mismatch error code from 500 –> 400 (#17974) 2024-04-04 09:38:10 -07:00
client.go [fleetctl] api command: support request body, including file uploads (#30806) 2025-07-29 08:15:23 -05:00
client_appconfig.go fleetctl gitops --dry-run now errors on duplicate (or conflicting) global/team enroll secrets. (#19344) 2024-05-31 07:01:13 -05:00
client_carves.go
client_debug.go Merge conflicts 2024-04-16 10:20:59 -05:00
client_hosts.go 17257 validate bulk ops request filters (#17514) 2024-03-11 10:02:51 -06:00
client_labels.go Improved label(s) validation when running queries (#23834) 2024-11-21 16:13:30 -06:00
client_live_query.go fleetctl, API, copy updates around host identifiers (#20220) 2024-07-09 10:25:01 -07:00
client_live_query_test.go fleetctl, API, copy updates around host identifiers (#20220) 2024-07-09 10:25:01 -07:00
client_mdm.go Add ability to upload EULA via gitops (#30332) 2025-07-01 17:28:13 +01:00
client_mdm_test.go fix fleetctl to set different CmdUID for Windows (#14895) 2023-11-02 15:06:37 -03:00
client_packs.go Add fleetctl upgrade-packs command to migrate 2017 packs to queries (#13078) 2023-08-08 08:21:57 -04:00
client_policies.go Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
client_profiles.go Fix macos_setup not always being exported correctly by generate-gitops (#30504) 2025-07-02 09:07:58 -03:00
client_queries.go Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
client_scripts.go Fix macos_setup not always being exported correctly by generate-gitops (#30504) 2025-07-02 09:07:58 -03:00
client_secret_variables.go Adding secret support to scripts via gitops. (#24649) 2024-12-11 15:05:48 -06:00
client_sessions.go Added scim/details endpoint (#28007) 2025-04-10 14:08:45 -05:00
client_setup.go
client_software.go Decrease software batch apply polling interval from 5s to 1s (#30414) 2025-07-02 15:49:37 -05:00
client_targets.go
client_teams.go Add VPP install automation in GitOps (#25400) 2025-01-14 12:52:39 -06:00
client_test.go Error when deleting non managed GitOps labels #28440 (#29067) 2025-05-13 20:16:16 -04:00
client_trigger.go
client_users.go Return token when creating API-only users (#19525) 2024-06-13 19:10:27 -03:00
conditional_access_microsoft.go Microsoft Compliance Partner backend changes (#29540) 2025-06-11 14:22:46 -03:00
cron_schedules.go
cron_schedules_test.go
debug_handler.go Refactoring service layer. Part 1 (#25945) 2025-02-03 11:23:26 -06:00
debug_handler_test.go
device_client.go TPM osquery-perf support (#30994) 2025-07-18 10:19:05 -03:00
device_client_test.go 7766 backmerge main (#14324) 2023-10-05 11:39:48 -06:00
devices.go Implement self-service install status endpoints (#28424) 2025-04-24 12:20:21 -05:00
devices_test.go 28342: Do not report error if host already escrowed (#30652) 2025-07-09 12:47:17 -04:00
endpoint_campaigns.go Refactoring service layer. Part 1 (#25945) 2025-02-03 11:23:26 -06:00
endpoint_middleware.go Refactoring service layer. Part 1 (#25945) 2025-02-03 11:23:26 -06:00
endpoint_middleware_test.go Fleet server verifies HTTP signature (#30825) 2025-07-16 20:08:27 +02:00
endpoint_setup.go Apply starter library during for fleetctl preview server (#30519) 2025-07-16 08:12:32 -06:00
endpoint_setup_test.go Apply starter library during for fleetctl preview server (#30519) 2025-07-16 08:12:32 -06:00
endpoint_utils.go Refactoring endpoint_utils (#26342) 2025-02-18 11:09:43 -06:00
endpoint_utils_test.go Added GET enterprise API endpoint. (#26555) 2025-02-26 10:47:05 -06:00
frontend.go Hook up Android fleetdm.com/proxy (#29645) 2025-06-12 19:42:15 -05:00
frontend_test.go Hook up Android fleetdm.com/proxy (#29645) 2025-06-12 19:42:15 -05:00
full_test.go Return 405 when receiving POST request on the route path (#16750) 2024-02-14 12:40:43 -03:00
global_policies.go Activity feed: Surface team_id and team_name in policy and query activities (#28394) 2025-07-29 17:57:21 -05:00
global_policies_test.go Add GitOps for policy labels (#27781) 2025-04-04 09:46:51 -05:00
global_schedule.go Microsoft Compliance Partner backend changes (#29540) 2025-06-11 14:22:46 -03:00
global_schedule_test.go 21855 – Paginate and filter Queries on the server, update platform filtering from compatible to targeted platforms (#24446) 2024-12-11 10:50:28 -08:00
handler.go Add service discovery API endpoint (#31089) 2025-07-23 12:11:32 +01:00
handler_test.go Update OPA dependency to v1.4.2 (#29454) 2025-05-27 11:48:38 -05:00
hosts.go Implement BitLocker "action required" status (#31451) 2025-08-05 11:23:27 -05:00
hosts_test.go Implement BitLocker "action required" status (#31451) 2025-08-05 11:23:27 -05:00
http_auth_test.go Added scim/details endpoint (#28007) 2025-04-10 14:08:45 -05:00
integration_core_test.go Updated SQL modes in tests to match production. (#31445) 2025-08-03 08:18:13 +02:00
integration_desktop_test.go BMAA: Add personal enrollment type including aggregate counts (#31091) 2025-07-22 17:24:19 -04:00
integration_ds_only_test.go Moving Go integration tests to integration test job (#21126) 2024-08-07 14:00:25 +02:00
integration_enterprise_test.go Updated SQL modes in tests to match production. (#31445) 2025-08-03 08:18:13 +02:00
integration_install_test.go 30311: Fix race condition in test (#30903) 2025-07-17 10:20:49 -04:00
integration_live_queries_test.go Updated SQL modes in tests to match production. (#31445) 2025-08-03 08:18:13 +02:00
integration_logger_test.go Do not log error if missing EULA (#31598) 2025-08-05 16:39:49 +02:00
integration_mdm_ddm_test.go Fail DDM profiles if response is UnknownDeclarationType (#31606) 2025-08-06 14:38:25 +02:00
integration_mdm_dep_test.go Wait for expected profiles to be sent before releasing device (#31381) 2025-07-31 17:50:57 +02:00
integration_mdm_lifecycle_test.go BMAA: Add personal enrollment type including aggregate counts (#31091) 2025-07-22 17:24:19 -04:00
integration_mdm_profiles_test.go Updated SQL modes in tests to match production. (#31445) 2025-08-03 08:18:13 +02:00
integration_mdm_release_worker_test.go Wait for expected profiles to be sent before releasing device (#31381) 2025-07-31 17:50:57 +02:00
integration_mdm_setup_experience_test.go Wait for expected profiles to be sent before releasing device (#31381) 2025-07-31 17:50:57 +02:00
integration_mdm_test.go Mark dep assignments as failed on certain server errors (#31523) 2025-08-06 13:15:43 -04:00
integration_smtp_test.go 🧹 friday cleanup party: substitute deprecated import of go-kit (#19774) 2024-06-17 10:27:31 -03:00
integration_sso_test.go Add sso_server_url configuration for dual URL SSO setups (#31497) 2025-08-01 20:32:15 +02:00
integration_vpp_install_test.go remove 'lock' on verification commands when MDM is turned off (#31023) 2025-07-17 21:50:18 -04:00
invites.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
invites_test.go Allow opting in users to email verification on login (#24273) 2024-12-05 08:37:10 -06:00
jitter.go Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
jitter_test.go Update to Go 1.24.1 (#27506) 2025-03-31 11:14:09 -05:00
labels.go Add support for host vitals labels (#30278) 2025-06-30 09:58:58 -05:00
labels_test.go Support host vital labels with department without groups (#30598) 2025-07-07 16:03:53 -03:00
linux_mdm.go Implement BitLocker "action required" status (#31451) 2025-08-05 11:23:27 -05:00
linux_mdm_test.go Update GET /hosts/:id/encryption_key to return archived key when current key is unavailable (#30396) 2025-07-02 14:57:25 -05:00
live_queries.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
mail_test.go Allow opting in users to email verification on login (#24273) 2024-12-05 08:37:10 -06:00
maintained_apps.go Switch Fleet-maintained apps to use manifest-based structure (#27201) 2025-03-20 21:21:56 -05:00
mdm.go Implement BitLocker "action required" status (#31451) 2025-08-05 11:23:27 -05:00
mdm_scep.go Updating scep package with latest fixes (#22372) 2024-09-27 07:04:11 -05:00
mdm_test.go Implement BitLocker "action required" status (#31451) 2025-08-05 11:23:27 -05:00
mem_failing_policies_set_test.go
metrics.go
metrics_appconfig.go
metrics_change_email.go
metrics_invites.go
metrics_labels.go add ability to create manual labels (#18303) 2024-04-16 17:22:08 +01:00
metrics_sessions.go Replace home-made SAML implementation with https://github.com/crewjam/saml (#28486) 2025-07-07 15:13:46 -03:00
metrics_users.go
microsoft_mdm.go Add activity details for BYOD MDM enrollments (#31191) 2025-07-24 10:28:50 -05:00
microsoft_mdm_test.go fix: process Add commands in Windows MDM profiles (#17570) 2024-03-12 15:21:17 -04:00
orbit.go Ability to set TPM PIN protector policy on host. (#31484) 2025-08-01 13:32:19 -04:00
orbit_client.go fleetd generate TPM key and issue SCEP certificate (#30932) 2025-07-18 11:31:52 -03:00
orbit_client_test.go Perform early restart before starting sub-systems and minor refactor of orbit sub-systems (#20610) 2024-07-19 12:44:43 -03:00
orbit_test.go Re-verify Linux disk encryption #26693 (#29034) 2025-05-22 16:15:26 -04:00
osquery.go Fleet server verifies HTTP signature (#30825) 2025-07-16 20:08:27 +02:00
osquery_test.go BMAA: Add personal enrollment type including aggregate counts (#31091) 2025-07-22 17:24:19 -04:00
packs.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
packs_test.go Activity feed webhooks backend (#19261) 2024-05-24 11:25:27 -05:00
queries.go Activity feed: Surface team_id and team_name in policy and query activities (#28394) 2025-07-29 17:57:21 -05:00
queries_test.go 30311: Fix race condition in test (#30903) 2025-07-17 10:20:49 -04:00
scheduled_queries.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
scheduled_queries_test.go
scim.go Added scim/details endpoint (#28007) 2025-04-10 14:08:45 -05:00
scripts.go 21979: Extended wipe end-point to allow for doWipe Win CMD (#29770) 2025-06-11 13:56:07 -04:00
scripts_test.go 21979: Extended wipe end-point to allow for doWipe Win CMD (#29770) 2025-06-11 13:56:07 -04:00
secret_variables.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
secret_variables_test.go Adding secret support to scripts via gitops. (#24649) 2024-12-11 15:05:48 -06:00
service.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
service_appconfig.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
service_appconfig_test.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
service_campaign_test.go Improvements to go tests in CI (#21545) 2024-08-26 08:55:53 -05:00
service_campaigns.go Full-stack: Granular host count data for live queries/policies (#27258) 2025-03-19 09:53:55 -07:00
service_errors.go
service_users.go Allow opting in users to email verification on login (#24273) 2024-12-05 08:37:10 -06:00
sessions.go Fixed an issue where SSO URLs with trailing slashes (#31548) 2025-08-04 19:08:43 +02:00
sessions_test.go Fixed an issue where SSO URLs with trailing slashes (#31548) 2025-08-04 19:08:43 +02:00
setup_experience.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
setup_experience_test.go Embedded secrets validation (#24624) 2024-12-17 17:14:12 -05:00
software.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
software_installers.go Add endpoint + supporting code for self-service uninstall script results (#29712) 2025-06-06 13:17:18 -06:00
software_installers_test.go Extract UpgradeCode from MSI custom packages, use for better uninstall script generation (#30969) 2025-07-17 10:33:23 -05:00
software_test.go Fixing tests. (#17073) 2024-02-22 16:03:13 -06:00
software_titles.go Add experimental software title name update endpoint for titles with a bundle ID (#26938) 2025-03-07 11:36:17 -06:00
software_titles_test.go Add experimental software title name update endpoint for titles with a bundle ID (#26938) 2025-03-07 11:36:17 -06:00
status.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
targets.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
targets_test.go
team_policies.go Activity feed: Surface team_id and team_name in policy and query activities (#28394) 2025-07-29 17:57:21 -05:00
team_policies_test.go Add VPP policy automation support to backend (#25154) 2025-01-13 15:53:24 -06:00
team_schedule.go Microsoft Compliance Partner backend changes (#29540) 2025-06-11 14:22:46 -03:00
team_schedule_test.go 21855 – Paginate and filter Queries on the server, update platform filtering from compatible to targeted platforms (#24446) 2024-12-11 10:50:28 -08:00
teams.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
teams_test.go Microsoft Compliance Partner backend changes (#29540) 2025-06-11 14:22:46 -03:00
testing_client.go Managed Apple account user enrollment - integrate PoC changes (#30755) 2025-07-15 15:02:11 -04:00
testing_utils.go Add service discovery API endpoint (#31089) 2025-07-23 12:11:32 +01:00
translator.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
transport.go BMAA: Add personal enrollment type including aggregate counts (#31091) 2025-07-22 17:24:19 -04:00
transport_setup.go
transport_test.go Filter hosts by batch script execution status (#29547) 2025-06-05 18:53:14 -06:00
trigger.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
user_roles.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
users.go Migrate from aws-sdk-go v1 to v2 (#30308) 2025-06-30 17:45:39 -03:00
users_test.go Allow opting in users to email verification on login (#24273) 2024-12-05 08:37:10 -06:00
validation_setup.go Full-stack: Make "Server url" validation conditions consistent across Fleet, update Web Address form validation and submission logic per Fleet best practices (frontend/docs/patterns.md) (#27455) 2025-03-27 13:56:38 -07:00
vpp.go BE: Return software title id in adding vpp response (#29304) 2025-05-20 16:47:38 -04:00
vpp_test.go BE: Return software title id in adding vpp response (#29304) 2025-05-20 16:47:38 -04:00
vulnerabilities.go service.errorer to fleet.Errorer (#26362) 2025-02-14 16:19:34 -06:00
vulnerabilities_test.go Updated /api/v1/fleet/vulnerabilities/{cve} endpoint (#21463) 2024-08-21 12:52:28 -05:00