
Carloandjkatz01
3517ff661e
iOS/iPadOS managed config: validator (#43963) (#44930)
Part of #38790 (iOS / iPadOS managed app configuration).
Closes #43963.
Adds `ValidateAppleAppConfiguration` and the
`FleetVarsSupportedInAppleAppConfig` allow-list in
`server/fleet/vpp.go`. Walks the decoded plist (keys + string values) so
XML-entity-encoded `$FLEET_VAR_*` tokens can't slip past the disallow
check, and rejects non-XML plist formats (binary, OpenStep, GNUStep)
since Apple's `InstallApplication` only accepts XML.
Stacked PRs (review bottom up):
- #43963 validator (this PR)
- 43964 datastore
- 43965 service wiring
- 43969 gitops
- 43966 InstallApplication Configuration dict injection
- 43967 Fleet variable expansion
- 43968 send-paths audit
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added validation for Apple managed app configurations to allow only
supported Fleet variable placeholders, reject malformed plist formats,
and accept empty payloads.
* **Bug Fixes**
* Improved handling of app configuration payloads to ensure consistent
validation and error responses across Android and iOS flows.
* **Tests**
* Added comprehensive tests covering plist validation,
allowed/disallowed variables, and edge cases to increase reliability.
[](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/44930)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: jkatz01 <yehonatankatz@gmail.com>
2026-05-12 13:23:31 -04:00
..
2026-05-08 15:29:59 -04:00
2026-05-05 13:27:57 -05:00
2026-05-07 17:02:51 -05:00
2026-05-08 12:08:10 -04:00
2026-05-08 12:08:10 -04:00
2026-05-08 11:17:40 -04:00
2026-05-12 13:23:31 -04:00
2026-05-11 22:21:57 +02:00
2026-05-12 13:23:31 -04:00
2026-05-07 10:24:18 -04:00
2026-05-08 15:33:36 +02:00
2026-05-12 08:51:30 +02:00
2026-05-11 08:46:02 -05:00
2026-05-12 13:23:31 -04:00
2026-05-07 22:21:22 -06:00
2026-05-11 08:46:02 -05:00