For #26623 - Updated `github.com/groob/plist` to `github.com/micromdm/plist` -- it was renamed - Added validation that restricts DigiCert Fleet variables to `com.apple.security.pkcs12` payloads plus additional restrictions - Added validation that restricts Custom SCEP Fleet variables to `com.apple.security.scep` payloads plus additional restrictions - Enabled multiple CAs (Fleet variables) to be present in an Apple MDM profile. But each CA can only be used once. For example, we can have DigiCert CA and Custom SCEP CA in one Apple profile. # Checklist for submitter - [x] If database migrations are included, checked table schema to confirm autoupdate - For database migrations: - [x] Checked schema for all modified table for columns that will auto-update timestamps during migration. - [x] Confirmed that updating the timestamps is acceptable, and will not cause unwanted side effects. - [x] Ensured the correct collation is explicitly set for character columns (`COLLATE utf8mb4_unicode_ci`). - [x] Added/updated automated tests - [x] A detailed QA plan exists on the associated ticket (if it isn't there, work with the product group's QA engineer to add it) - [x] Manual QA for all new/changed functionality
MicroMDM touchless migration
This Go script reads information from a MicroMDM database and outputs:
- SCEP, APNs and ADE certificates.
- A file with MySQL statements to import the records into a Fleet database.
Usage
The only requirement is to have a compatible version of Go installed, and a MicroMDM database.
Here's an example of how a successful run looks like:
$ go run tools/mdm/migration/micromdm/touchless/main.go --db ~/projects/micromdm/micromdm.db
2024/09/11 10:05:53 Open DB for devices
2024/09/11 10:05:53 Found 1 devices
2024/09/11 10:05:53 Wrote device/enrollment records to dump.sql
2024/09/11 10:05:53 Open DB for SCEP cert and key
2024/09/11 10:05:53 Wrote SCEP cert/key to scep.cert/scep.key