Skip to content

[Guide] Add Apple DDM support and example in documentation#48131

Open
melpike wants to merge 5 commits into
docs-v4.90.0from
melpike-guide-support-ddm-38986
Open

[Guide] Add Apple DDM support and example in documentation#48131
melpike wants to merge 5 commits into
docs-v4.90.0from
melpike-guide-support-ddm-38986

Conversation

@melpike

@melpike melpike commented Jun 23, 2026

Copy link
Copy Markdown
Member

Added support for Apple Declarative Device Management (DDM) profiles, including configurations and assets, along with an example JSON structure for asset declarations.

Related issue: Resolves # 38986

Added support for Apple Declarative Device Management (DDM) profiles, including configurations and assets, along with an example JSON structure for asset declarations.
@melpike melpike marked this pull request as ready for review July 1, 2026 16:07

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@melpike melpike requested a review from JordanMontgomery July 1, 2026 16:07

@JordanMontgomery JordanMontgomery left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One other change we're gonna be making here is trimming down the forbidden declarations list:

var ForbiddenDeclTypes = map[string]struct{}{
	"com.apple.configuration.account.caldav":               {},
	"com.apple.configuration.account.carddav":              {},
	"com.apple.configuration.account.exchange":             {},
	"com.apple.configuration.account.google":               {},
	"com.apple.configuration.account.ldap":                 {},
	"com.apple.configuration.account.mail":                 {},
	"com.apple.configuration.screensharing.connection":     {},
	"com.apple.configuration.security.certificate":         {},
	"com.apple.configuration.security.identity":            {},
	"com.apple.configuration.security.passkey.attestation": {},
	"com.apple.configuration.services.configuration-files": {},
	"com.apple.configuration.watch.enrollment":             {},
}

Most of these are forbidden because they require an asset - we'll be removing those. At least con.apple.configuration.watch.enrollment, however, is forbidden for other reasons(requires a special enrollment URL IIRC). We won't be removing that and we won't be allowing management declarations. Unless of course they add the existing "allow all declarations" flag. Do we want to call that behavior out somewhere?

Comment thread articles/custom-os-settings.md Outdated

For macOS hosts, Fleet supports uploading Apple Declarative Device Management (DDM) profiles as `.json` files. Fleet supports the following declaration types:

- **Configurations** (`com.apple.configuration.*`): Enforce settings like passcode policies, account configurations, and more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to call out that assets should be uploaded on the assets tab or something similar since there's a different upload pipe for them?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good call!

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! Added.

### Device and user scope

Currently, on macOS and Windows hosts, Fleet supports enforcing OS settings at the device (device scoped) and user (user scoped) levels. The iOS, iPadOS, and Android platforms only support device-scoped configuration profiles. User-scoped declaration (DDM) profiles for macOS are coming soon.
Currently, on macOS and Windows hosts, Fleet supports enforcing OS settings at the device (device scoped) and user (user scoped) levels. The iOS, iPadOS, and Android platforms only support device-scoped configuration profiles.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have an example of a .mobileconfig below with PayloadScope, do we want something similar for DDM configurations?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added an example but lmk if it's not a great one.

One other change we're gonna be making here is trimming down the forbidden declarations list

@JordanMontgomery Happy to add this in—do we have that list of what will be forbidden? Or did you mean just mention it?

Updated the instructions for adding configuration profiles and assets in Fleet, including clarifications on user-scoped profiles and editing existing profiles.

@mike-j-thomas mike-j-thomas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Good to merge once Jordan's feedback is resolved.

@melpike melpike requested a review from JordanMontgomery July 6, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants