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