Releases: jessepeterson/kmfddm
Releases · jessepeterson/kmfddm
v0.7.0
Thanks to our contributors for this release!
Changes
v0.6.0
Thanks to our contributors for this release!
New
- Dynamic declarations and storage: #91
- This feature allows for having dynamic declarations and composing declaration systems together.
- As an example of this feature we include "shard" management properties declaration. See the Operations Guide for more info.
- API for removing an enrollment from all sets: #102
- Use new
./tools/api-enrollment-sets-delete-all.sh
script or/v1/enrollment-sets-all/{id}
HTTP endpoint.
- Use new
Other
v0.5.0
Thanks to our contributors for this release: @natewalck!
Fixed
- syncdir.py: use same environment variables as the existing tools: #86
- syncdir.py: set default HTTPS SSL context for Python: #87
Other
v0.4.1
Thanks to our many contributors and supports for this release!
NOTE: This release has MySQL storage backend schema changes. Please apply the changes in the schema.00003.sql
file if you have an existing MySQL backend installation.
Fixed
- Properly handle a nullable column in the MySQL backend: da651c7
Other
- The stored, generated MySQL column is now a traditional column; embed server token MySQL functions directly into statements: f78cb24
- Return a 404 error when declarations are not found: 23ace61
- Release zips built with latest minor Go version, start build tests with Go 1.21.x: f403530
- Documentation changes: 40e7c16
- Code rearrangement: 3ebc4a0
v0.4.0
Thanks to our many contributors and supporters for this release!
NOTE: This release has MySQL storage backend schema changes. Please apply the changes in the schema.00001.sql
and schema.00002.sql
files if you have an existing MySQL backend installation.
New
- Declaration "touch" — ability to change a declaration's
ServerToken
without changing the declaration itself: 0f808d0, 33375ef- Use the
/v1/declarations/{id}/touch
HTTP API - Or use the helper tool:
./tools/api-declaration-touch.sh
- Use the
- Status report updates: #47
- Store (and later retrieve) entire status reports when DDM clients send them:
- Use the
/v1/status-reports/{id}
HTTP endpoint. - Or use the helper tool:
./tools/api-status-report-get-last.sh
- Use the
- Propagate a Status Report identifier through to saved values, errors, declarations, and reports.
- Store (and later retrieve) entire status reports when DDM clients send them:
- Begin work on Operations Guide: #47
- Add OpenAPI docs: #4, 33375ef, #38.
- Notification revamp: #35
- API endpoint for notifying enrollments, sets, and declarations:
/v1/notify
- API endpoints for declarations, sets, and enrollments can optionally NOT notify enrollments. Ostensibly to support "collating"/rolling-up of notifications (i.e. in the case of multiple updates).
- Add
nonotify=1
parameters to those HTTP endpoints (see OpenAPI docs)
- Add
- Introduction of small
syncdir.py
Python script/tool: synchronize declarations and sets from a directory and uploads them to a KMFDDM server. Ostensibly to support SCM/git collections of sets and declarations. Like @natewalck's ddm_examples repo.
- API endpoint for notifying enrollments, sets, and declarations:
- Add
jsonpath
package for Status Report parsing and handling: #39 - Revamp GH actions, Makefile, and add Docker containers in GHCR: 089006d, 215ec5c, 63c7c73
- Internal Go APIs to "stat" a declaration: i.e. read its modification time: #48
- MySQL storage backend now has options to limit error and status report accumulation. See the Ops Guide: #47
Fixed
- Update the
current
record in the declaration status retrieval API for the file storage backend: #34, 0d1a0df - Fix missing returns on error cases in DDM HTTP endpoints: bc55bae
- Fix Makefile release target: 215ec5c
Other
- Storage tests are no longer in an internal Go package allowing 3rd parties to re-use the tests: 856b665
- Misc. code rearrangements & refactors: 2d771c4, 2263546, 60d9089, #38
- Misc documentation improvements: 92fac01, #38, #47
- Refactor notifier to abstract command sending and use NanoCMD's "foss" command enqueuer.
- We now codegen the declaration identifier references from the Apple schema YAML using
admgenddmrefs
from the admgen project: 3132b37, 3132b37, 43e7ab8- Update the references for the latest Apple seed release(s): aa30bdf
- Refactor how we log (and attach to context) the enrollment ID from the DDM endpoints: #38
v0.3.1
Thanks to our contributors this release: @natewalck!
Fixed
ideclr.py
: MovePredicate
key in activation payload to inside of payload: 7f38da5- File storage backend:
Other
v0.3.0
New
- File storage backend. Zero-dependency storage backend enabled by default: fa276e0, #24
- The
-storage-dsn
flag specifies the directory to write DDM storage files to when using-storage file
(the default). If no DSN is provided then a default ofdb
is used. - To use the MySQL backend as before you'll need to provide the
-storage mysql
flag (and of course the-storage-dsn
flag).
- The
Other
- Dump status to files (instead of just stdout): bacb284
- A filename (or
-
) is now required for the-dump-status
flag.
- A filename (or
- Minor update to latest
admgen
-generated MDM command: d468e08 - Docs update to the QuickStart guide that mentioned MicroMDM v1.11 support.
v0.2.0
New
- Allow "single-target" MDM enqueue endpoints (186f5dd)
- Allows use with MicroMDM!
- MicroMDM v1.11 is required: this version brought support for both raw command enqueueing and DDM protocol hand-off (micromdm/micromdm#864, micromdm/micromdm#882)
- Use the
-micromdm
switch to KMFDDM (in addition to the enqueue URL per the Quickstart guide). This will change the HTTP calling semantics to be compatible with MicroMDM as well as limit commands to a single device. - Use the
-dm
switch with MicroMDM (similar to NanoMDM).
Fixed
Other
v0.1.1
v0.1.0
Initial release