Skip to content

v0.4.0

Compare
Choose a tag to compare
@jessepeterson jessepeterson released this 11 Aug 19:54
· 37 commits to main since this release
b1e9cba

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
  • 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
    • Propagate a Status Report identifier through to saved values, errors, declarations, and reports.
  • 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)
    • 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.
  • 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