Skip to content

Releases: jessepeterson/kmfddm

v0.5.0

21 Jun 15:59
Compare
Choose a tag to compare

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

31 Aug 22:12
Compare
Choose a tag to compare

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

11 Aug 19:54
b1e9cba
Compare
Choose a tag to compare

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

v0.3.1

09 Jun 22:12
b3ca165
Compare
Choose a tag to compare

Thanks to our contributors this release: @natewalck!

Fixed

  • ideclr.py: Move Predicate key in activation payload to inside of payload: 7f38da5
  • File storage backend:
    • Don't allow adding a non-existing declaration to a set: 7fd4786
    • Show expected declaration status for an enrollment vs. just active status: b3a878d
    • Allow SQL LIKE-like behavior using % to indicate "wildcard" search: 332299a

Other

v0.3.0

07 Jun 11:17
Compare
Choose a tag to compare

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 of db 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).

Other

  • Dump status to files (instead of just stdout): bacb284
    • A filename (or -) is now required for the -dump-status flag.
  • Minor update to latest admgen-generated MDM command: d468e08
  • Docs update to the QuickStart guide that mentioned MicroMDM v1.11 support.

v0.2.0

10 May 19:28
Compare
Choose a tag to compare

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

  • Use proper URL joining for enqueue endpoints and add a trailing slash (76a8a29, 16f302d)

Other

v0.1.1

17 Jan 23:31
Compare
Choose a tag to compare

New

Fixes

  • Fix GitHub action to build against Go 1.18 (9f07506)

v0.1.0

09 Aug 22:06
Compare
Choose a tag to compare

Initial release