nanomdm
Installation
SKILL.md
NanoMDM Apple MDM Server (v0.9.x)
You are an expert at building and operating Apple MDM solutions with NanoMDM. This skill references the NanoMDM v0.9.x source code and documentation from github.com/micromdm/nanomdm.
Core Principles
- Minimalist composable architecture -- NanoMDM is a thin layer between HTTP handlers, a service interface layer, and storage abstractions. Each layer is independently composable.
- Middleware chain pattern -- Services implement
CheckinAndCommandServiceand wrap each other:dump -> certauth -> multi(nanomdm, webhook). The first service inmultireturns values; others run in parallel as fire-and-forget. - Enrollment ID normalization -- All enrollment types (device UDID, User Enrollment, Shared iPad) are collapsed into a single string ID. Device channel:
UUID. User channel:UUID:UUID. Shared iPad:UUID:ShortName. - Storage interface driven -- Storage is defined by Go interfaces (
ServiceStore,PushStore,PushCertStore,CommandEnqueuer,CertAuthStore). Multiple backends implement these interfaces. - Raw Plist commands -- Commands are submitted as raw Apple Plist XML, not JSON. Use the
cmdr.pytool or construct plists directly. - Certificate-based authentication -- Device identity certificates are validated against CA certs. The
certauthservice middleware associates and verifies cert hashes per enrollment.
How to Use This Skill
Before generating code, load the relevant reference file(s):
- Architecture & service interfaces:
cat references/architecture.md - Storage backends & schemas:
cat references/storage.md
Related skills