* Partial implementation of Bootstrap Token
Fetching the token from the db and sending it back to the client when the client asks for it ie sends the GetBootstrapTokenRequest is not implemented
Also earlier code for Bootstrap Token from commit 58c3782 "mdm: add SetBootstrapToken command." is removed
* implements rest of the bootstrap token feature - micromdm now sends bootstrap token back to the client, when client requests it
* regenerate some proto files
* use original proto generator versions
checkin.pb.go: golang/protobuf@v1.2.0
mdm.pb.go: gogo/protobuf@v1.3.2
device.pb.go: golang/protobuf@v1.0.0
* cleanup syntax
* use more idiomatic naming
* clean up BootstrapToken storage
* add GetBootstrapToken test
* remove extra newline
Co-authored-by: Jesse Peterson <jessepeterson@users.noreply.github.com>
* add doc comments
Co-authored-by: Ilkka Vanhatalo <ilkka.vanhatalo@helsinki.fi>
Co-authored-by: Jesse Peterson <jessepeterson@users.noreply.github.com>
* Refactor MDM service to return a payload from check-ins
* Documented public methods, add documentation to main service interface
* Remove interface-implementing comments
- Upgrade to micromdm/scep v2 & updated API usage
- Use interfaces rather than concrete types in a few places
- Switch to Mozilla's PKCS7 fork (actually @omorsi's fork of that fork)
- Import order: stdlib, project/self, 3rd party
* Rework the DEP sync runner loop. Primarily to fix#582. Also add & make more consistent logging, dedup some code, and clean up.
* Group vars in var(), remove commented code
Adds the ability to send a POST request to assign one or more serials to
a profile ID that was defined with the define profile endpoint.
POST /v1/dep/assign
{
"id" : "profile_id",
"serials" : [a,b,c,d]
}
When sending a push notification, allow adding an ?expiration=<unix_epoch_time> value.
Apple will retry delivery until this time. The default behavior only tries once.
In iOS 10.13/macOS 10.15 a new, BYOD specific enrollment type was added, called User Enrollment.
This enrollment type replaces the typical UDID field in checkin and acknowledge requests with a EnrollmentID field which is unique per each enrollment. One important aspect of this enrollment type is that no personally identifiable information is available to the MDM (UDID, SerialNumber).
The implementation implemented here adds the new EnrollmentID field where appropriate, and ensures that the device tables do not store the enrollment ID.
I will follow up this change set with one that allows listing/removing current enrollment IDs in a similar way that mdmctl get devices and mdmctl get users does.
Instead of defaulting to sending a DeviceConfigured command on all enrollments, only do that if the user has configured a blueprint.
Not sending DeviceConfigured by default will allow a workflow service to make decisions about enrollment.
quick resolve for https://github.com/micromdm/micromdm/issues/580
this just ensures that each time a command is moved to completed it's time is recorded in the struct. useful to prune completed commands by date.