Directories
¶
| Path | Synopsis |
|---|---|
|
appleplatformservices
|
|
|
axm
Package axm is a client for the Apple Business Manager and Apple School Manager APIs: OAuth client-assertion authentication, every documented endpoint as a typed method, explicit pagination, and the device assignment workflows built on org device activities.
|
Package axm is a client for the Apple Business Manager and Apple School Manager APIs: OAuth client-assertion authentication, every documented endpoint as a typed method, explicit pagination, and the device assignment workflows built on org device activities. |
|
axm/axmtest
Package axmtest is an in-process fake of the Apple Business Manager and Apple School Manager APIs: the OAuth token endpoint, every documented resource endpoint with JSON:API bodies and cursor pagination, an activity engine, and fault injection.
|
Package axmtest is an in-process fake of the Apple Business Manager and Apple School Manager APIs: the OAuth token endpoint, every documented resource endpoint with JSON:API bodies and cursor pagination, an activity engine, and fault injection. |
|
dep
Package dep is the client for Apple's Automated Device Enrollment web service (the DEP service behind Apple Business Manager and Apple School Manager): OAuth 1.0a sessions for many accounts, every endpoint of the Device assignment API, the server token lifecycle including the token PKI exchange, a device syncer, and a state-driven profile assigner.
|
Package dep is the client for Apple's Automated Device Enrollment web service (the DEP service behind Apple Business Manager and Apple School Manager): OAuth 1.0a sessions for many accounts, every endpoint of the Device assignment API, the server token lifecycle including the token PKI exchange, a device syncer, and a state-driven profile assigner. |
|
dep/deptest
Package deptest is the test bed for the DEP feature: a fake DEP service over httptest that speaks Apple's Device assignment API, the contract suite every dep.Store backend must satisfy, and a Failing store that injects errors by method name.
|
Package deptest is the test bed for the DEP feature: a fake DEP service over httptest that speaks Apple's Device assignment API, the contract suite every dep.Store backend must satisfy, and a Failing store that injects errors by method name. |
|
gdmf
Package gdmf reads Apple's software lookup service, the public catalog of operating system versions at https://gdmf.apple.com/v2/pmv, and answers "what is the latest version for this device".
|
Package gdmf reads Apple's software lookup service, the public catalog of operating system versions at https://gdmf.apple.com/v2/pmv, and answers "what is the latest version for this device". |
|
gdmf/gdmftest
Package gdmftest fakes Apple's software lookup service for tests: a fixture catalog, an HTTP server that serves it, and an in-memory Lookup.
|
Package gdmftest fakes Apple's software lookup service for tests: a fixture catalog, an HTTP server that serves it, and an in-memory Lookup. |
|
push
Package push is the vocabulary of an MDM push: a Pusher sends one notification per Target and reports a Result, Coalescer collapses bursts, and CertStore supplies the push certificate for a topic.
|
Package push is the vocabulary of an MDM push: a Pusher sends one notification per Target and reports a Result, Coalescer collapses bursts, and CertStore supplies the push certificate for a topic. |
|
push/apns
Package apns is the APNs HTTP/2 client for MDM pushes.
|
Package apns is the APNs HTTP/2 client for MDM pushes. |
|
push/pushtest
Package pushtest provides a scripted push.Pusher and an in-process APNs server so push behaviour is testable without Apple.
|
Package pushtest provides a scripted push.Pusher and an in-process APNs server so push behaviour is testable without Apple. |
|
Package clock abstracts time behind a Clock interface with a Real implementation for production and a manually advanced Fake for tests.
|
Package clock abstracts time behind a Clock interface with a Real implementation for production and a manually advanced Fake for tests. |
|
cmd
|
|
|
admgen
command
Package main is the admgen command, which regenerates the schema/ packages from the vendored Apple device management YAML and verifies that the checked-in output is current.
|
Package main is the admgen command, which regenerates the schema/ packages from the vendored Apple device management YAML and verifies that the checked-in output is current. |
|
internal
|
|
|
canonjson
Package canonjson produces the JSON Canonicalization Scheme (JCS) form of a JSON value as specified by RFC 8785.
|
Package canonjson produces the JSON Canonicalization Scheme (JCS) form of a JSON value as specified by RFC 8785. |
|
cbor
Package cbor decodes and encodes the small, strict subset of CBOR that Apple's Managed Device Attestation objects use.
|
Package cbor decodes and encodes the small, strict subset of CBOR that Apple's Managed Device Attestation objects use. |
|
layout
Package layout builds this module's package import graph so tests can assert the tier boundaries the repository layout claims.
|
Package layout builds this module's package import graph so tests can assert the tier boundaries the repository layout claims. |
|
schemagen
Package schemagen turns Apple's device management YAML schema into the Go packages under schema/: a strict loader, an intermediate model, and emitters for types, registries, Validate methods, support tables, and conformance tests.
|
Package schemagen turns Apple's device management YAML schema into the Go packages under schema/: a strict loader, an intermediate model, and emitters for types, registries, Validate methods, support tables, and conformance tests. |
|
mdmprotocol
|
|
|
cms
Package cms signs and verifies the CMS (PKCS #7) signatures Apple MDM uses: the detached signature a device sends in the Mdm-Signature header when the MDM payload sets SignMessage, and the attached signature a server puts on configuration profiles.
|
Package cms signs and verifies the CMS (PKCS #7) signatures Apple MDM uses: the detached signature a device sends in the Mdm-Signature header when the MDM payload sets SignMessage, and the attached signature a server puts on configuration profiles. |
|
ddm
Package ddm is the Declarative Device Management engine: declarations and their canonical form, sets and membership, per-enrollment manifests and synchronisation tokens, status reports, and the change notifier.
|
Package ddm is the Declarative Device Management engine: declarations and their canonical form, sets and membership, per-enrollment manifests and synchronisation tokens, status reports, and the change notifier. |
|
ddm/predicate
Package predicate parses and evaluates the subset of Apple's NSPredicate format-string syntax that Declarative Device Management activation predicates use.
|
Package predicate parses and evaluates the subset of Apple's NSPredicate format-string syntax that Declarative Device Management activation predicates use. |
|
dmhook
Package dmhook is the vocabulary a service hook is written against: the Call describing one operation, and the Hook interface that observes or vetoes it.
|
Package dmhook is the vocabulary a service hook is written against: the Call describing one operation, and the Hook interface that observes or vetoes it. |
|
enroll
Package enroll builds the MDM enrollment profile and serves the over-the-air profile service: the MDM payload, the identity it points at (SCEP or a pre-issued PKCS #12), optional trust anchors, and the two-phase OTA flow that issues the identity before handing over the final profile.
|
Package enroll builds the MDM enrollment profile and serves the over-the-air profile service: the MDM payload, the identity it points at (SCEP or a pre-issued PKCS #12), optional trust anchors, and the two-phase OTA flow that issues the identity before handing over the final profile. |
|
enroll/accountdriven
Package accountdriven implements Apple's account-driven enrollment: the first enrollment attempt, the 401 challenge, both documented authentication flows, and the tokens that carry the authenticated identity into the enrollment profile and the check-in.
|
Package accountdriven implements Apple's account-driven enrollment: the first enrollment attempt, the 401 challenge, both documented authentication flows, and the tokens that carry the authenticated identity into the enrollment profile and the check-in. |
|
enroll/ade
Package ade serves Automated Device Enrollment: it reads and verifies the CMS-signed MachineInfo a device presents, persists it per serial, applies the software update gate, and hands the personalised enrollment profile back as application/x-apple-aspen-config, on both the token-based POST lane and the configuration_web_url lane.
|
Package ade serves Automated Device Enrollment: it reads and verifies the CMS-signed MachineInfo a device presents, persists it per serial, applies the software update gate, and hands the personalised enrollment profile back as application/x-apple-aspen-config, on both the token-based POST lane and the configuration_web_url lane. |
|
enroll/adetest
Package adetest builds the CMS-signed MachineInfo blobs a device sends during Automated Device Enrollment, from a test chain shaped like Apple's, and the three request forms that carry them.
|
Package adetest builds the CMS-signed MachineInfo blobs a device sends during Automated Device Enrollment, from a test chain shaped like Apple's, and the three request forms that carry them. |
|
enroll/discovery
Package discovery serves the account-driven enrollment service discovery endpoint, GET /.well-known/com.apple.remotemanagement, that routes a device to the enrollment server for its model family and user identifier.
|
Package discovery serves the account-driven enrollment service discovery endpoint, GET /.well-known/com.apple.remotemanagement, that routes a device to the enrollment server for its model family and user identifier. |
|
enroll/webauth
Package webauth is an OpenID Connect relying party for the enrollment web view: it starts an authorization code flow with PKCE and a nonce, verifies the returned id_token itself, and hands the authenticated claims, still bound to the device that opened the web view, to the caller's hooks.
|
Package webauth is an OpenID Connect relying party for the enrollment web view: it starts an authorization code flow with PKCE and a nonce, verifies the returned id_token itself, and hands the authenticated claims, still bound to the device that opened the web view, to the caller's hooks. |
|
enroll/webauth/webauthtest
Package webauthtest is a fake OpenID Connect provider for tests of the enrollment web view: discovery, JWKS with ES256 and RS256 keys, an authorization endpoint that records what the relying party sent, a token endpoint that checks the PKCE verifier and client credentials, scripted failures, and a web-view-like client that follows the redirects the way the device does.
|
Package webauthtest is a fake OpenID Connect provider for tests of the enrollment web view: discovery, JWKS with ES256 and RS256 keys, an authorization endpoint that records what the relying party sent, a token endpoint that checks the PKCE verifier and client credentials, scripted failures, and a web-view-like client that follows the redirects the way the device does. |
|
event
Package event is the in-process event bus every state change in the service layer publishes to: typed events with an enrollment id, an actor, and a timestamp, dispatched to subscribers by type.
|
Package event is the in-process event bus every state change in the service layer publishes to: typed events with an enrollment id, an actor, and a timestamp, dispatched to subscribers by type. |
|
mdm
Package mdm is the protocol core of the Apple MDM check-in and command channels: enrollment identity, request context, check-in message decoding, command envelopes, and command response decoding.
|
Package mdm is the protocol core of the Apple MDM check-in and command channels: enrollment identity, request context, check-in message decoding, command envelopes, and command response decoding. |
|
plist
Package plist is the library's single point of contact with property list encoding: Marshal, Unmarshal, format detection, and a bounded Decoder for untrusted input.
|
Package plist is the library's single point of contact with property list encoding: Marshal, Unmarshal, format detection, and a bounded Decoder for untrusted input. |
|
profile
Package profile composes, signs, and parses Apple configuration profiles (.mobileconfig): the top-level envelope, the common payload keys, stable identifiers, and CMS signing.
|
Package profile composes, signs, and parses Apple configuration profiles (.mobileconfig): the top-level envelope, the common payload keys, stable identifiers, and CMS signing. |
|
Package paging is the cursor pagination vocabulary every store contract shares: a Page request, a Result page of items, and the bounds a backend applies to a caller's limit.
|
Package paging is the cursor pagination vocabulary every store contract shares: a Page request, a Result page of items, and the bounds a backend applies to a caller's limit. |
|
pki
|
|
|
acme
Package acme is an ACME server for Apple device identity certificates: the subset of RFC 8555 that Apple's ACME payload uses, with the device-attest-01 challenge, Managed Device Attestation, and policy hooks that decide which devices may enroll.
|
Package acme is an ACME server for Apple device identity certificates: the subset of RFC 8555 that Apple's ACME payload uses, with the device-attest-01 challenge, Managed Device Attestation, and policy hooks that decide which devices may enroll. |
|
acme/attest
Package attest reads and verifies Apple's Managed Device Attestation: the certificate chain a device produces to prove that a key was generated in its Secure Enclave and to describe the hardware it lives on.
|
Package attest reads and verifies Apple's Managed Device Attestation: the certificate chain a device produces to prove that a key was generated in its Secure Enclave and to describe the hardware it lives on. |
|
acme/attest/attesttest
Package attesttest mints Managed Device Attestation chains that look like Apple's, for tests and for the device simulator.
|
Package attesttest mints Managed Device Attestation chains that look like Apple's, for tests and for the device simulator. |
|
acme/jose
Package jose parses, verifies and produces the JSON Web Signatures and JSON Web Keys an ACME server exchanges with its clients: the flattened JWS serialisation, the protected header ACME insists on, EC and RSA public keys in JWK form, and RFC 7638 key thumbprints.
|
Package jose parses, verifies and produces the JSON Web Signatures and JSON Web Keys an ACME server exchanges with its clients: the flattened JWS serialisation, the protected header ACME insists on, EC and RSA public keys in JWK form, and RFC 7638 key thumbprints. |
|
ca
Package ca is the certificate authority abstraction that issues device enrollment identities: a Signer interface, a Local signer over an in-memory key constrained by a Policy, a Depot that records what was issued, and self-signed CA generation.
|
Package ca is the certificate authority abstraction that issues device enrollment identities: a Signer interface, a Local signer over an in-memory key constrained by a Policy, a Depot that records what was issued, and self-signed CA generation. |
|
pushcert
Package pushcert parses APNs push certificates and derives their topic.
|
Package pushcert parses APNs push certificates and derives their topic. |
|
scep
Package scep is a minimal SCEP endpoint for issuing the device enrollment identity, plus a client the simulator enrols with.
|
Package scep is a minimal SCEP endpoint for issuing the device enrollment identity, plus a client the simulator enrols with. |
|
schema
|
|
|
checkin
Package checkin holds the MDM check-in messages generated from Apple's device management schema: 9 schema files and 14 types.
|
Package checkin holds the MDM check-in messages generated from Apple's device management schema: 9 schema files and 14 types. |
|
commands
Package commands holds the MDM commands and their responses generated from Apple's device management schema: 65 schema files and 220 types.
|
Package commands holds the MDM commands and their responses generated from Apple's device management schema: 65 schema files and 220 types. |
|
ddm
Package ddm holds the declarative device management declarations generated from Apple's device management schema: 52 schema files and 113 types.
|
Package ddm holds the declarative device management declarations generated from Apple's device management schema: 52 schema files and 113 types. |
|
ddmproto
Package ddmproto holds the declarative device management protocol messages generated from Apple's device management schema: 3 schema files and 7 types.
|
Package ddmproto holds the declarative device management protocol messages generated from Apple's device management schema: 3 schema files and 7 types. |
|
errors
Package errors holds the enrollment error response bodies generated from Apple's device management schema: 5 schema files and 10 types.
|
Package errors holds the enrollment error response bodies generated from Apple's device management schema: 5 schema files and 10 types. |
|
internal/conformance
Package conformance holds the helpers the generated conformance tests call: RoundTrip through JSON, XML plist, and binary plist, and Validates for the generated Validate methods.
|
Package conformance holds the helpers the generated conformance tests call: RoundTrip through JSON, XML plist, and binary plist, and Validates for the generated Validate methods. |
|
other
Package other holds the other device management data formats generated from Apple's device management schema: 5 schema files and 10 types.
|
Package other holds the other device management data formats generated from Apple's device management schema: 5 schema files and 10 types. |
|
profiles
Package profiles holds the configuration profile payloads generated from Apple's device management schema: 127 schema files and 230 types.
|
Package profiles holds the configuration profile payloads generated from Apple's device management schema: 127 schema files and 230 types. |
|
status
Package status holds the declarative device management status items generated from Apple's device management schema: 48 schema files and 80 types.
|
Package status holds the declarative device management status items generated from Apple's device management schema: 48 schema files and 80 types. |
|
support
Package support answers "is this key supported on this OS, version, channel, and enrollment context?" at runtime, from tables generated out of the supportedOS blocks in Apple's device management schema.
|
Package support answers "is this key supported on this OS, version, channel, and enrollment context?" at runtime, from tables generated out of the supportedOS blocks in Apple's device management schema. |
|
validation
Package validation collects schema validation results for generated types: a Collector the generated Validate methods report into and the Error and Errors types callers inspect.
|
Package validation collects schema validation results for generated types: a Collector the generated Validate methods report into and the Error and Errors types callers inspect. |
|
Package secrets supplies credentials (push keys, DEP tokens, challenge keys) to the library without letting them leak into logs, errors, or JSON: a Secret that redacts itself wherever it is formatted and Providers that read from a static map, the environment, or a directory of files.
|
Package secrets supplies credentials (push keys, DEP tokens, challenge keys) to the library without letting them leak into logs, errors, or JSON: a Secret that redacts itself wherever it is formatted and Providers that read from a static map, the environment, or a directory of files. |
|
server
module
|
|
|
Package simulator drives an MDM server the way an Apple device does.
|
Package simulator drives an MDM server the way an Apple device does. |
|
Package storage defines the persistence interfaces the service layer uses, split by concern: enrollments, push tokens, the command queue, bootstrap tokens, certificate associations, push certificates, UserAuthenticate state, and export and import, with the sentinel errors every backend returns.
|
Package storage defines the persistence interfaces the service layer uses, split by concern: enrollments, push tokens, the command queue, bootstrap tokens, certificate associations, push certificates, UserAuthenticate state, and export and import, with the sentinel errors every backend returns. |
|
acme/acmetest
Package acmetest is the test bed for the ACME state store: the contract suite every acme.Store backend must satisfy, a Failing store that injects errors by method name, and sample records the server's own tests build on.
|
Package acmetest is the test bed for the ACME state store: the contract suite every acme.Store backend must satisfy, a Failing store that injects errors by method name, and sample records the server's own tests build on. |
|
acme/inmem
Package inmem is the reference acme.Store: a mutex-protected map store whose behaviour the contract suite in acme/acmetest defines.
|
Package inmem is the reference acme.Store: a mutex-protected map store whose behaviour the contract suite in acme/acmetest defines. |
|
crypt
Package crypt seals the per-device secrets a storage backend must retain on Apple's behalf with AES-256-GCM under a named key from a secrets.Provider.
|
Package crypt seals the per-device secrets a storage backend must retain on Apple's behalf with AES-256-GCM under a named key from a secrets.Provider. |
|
ddm/ddmtest
Package ddmtest is the contract every ddm.Store backend must satisfy: suites a backend's own test runs through RunAll with a constructor returning a fresh, empty store, fixture helpers, and a Failing wrapper that injects errors by method name, inside transactions too.
|
Package ddmtest is the contract every ddm.Store backend must satisfy: suites a backend's own test runs through RunAll with a constructor returning a fresh, empty store, fixture helpers, and a Failing wrapper that injects errors by method name, inside transactions too. |
|
ddm/inmem
Package inmem is the reference ddm.Store: a mutex-protected map store whose behaviour the contract suite in server/ddmstore/ddmtest defines.
|
Package inmem is the reference ddm.Store: a mutex-protected map store whose behaviour the contract suite in server/ddmstore/ddmtest defines. |
|
dep/inmem
Package inmem is the reference dep.Store: a mutex-protected map store whose behaviour the contract suite in dep/deptest defines.
|
Package inmem is the reference dep.Store: a mutex-protected map store whose behaviour the contract suite in dep/deptest defines. |
|
inmem
Package inmem is the reference storage backend: a mutex-protected map store that every unit test uses.
|
Package inmem is the reference storage backend: a mutex-protected map store that every unit test uses. |
|
storagetest
Package storagetest is the contract every storage backend must satisfy: suites a backend's own test runs through RunAll with a constructor returning a fresh, empty store, and a Failing wrapper that injects errors by method name.
|
Package storagetest is the contract every storage backend must satisfy: suites a backend's own test runs through RunAll with a constructor returning a fresh, empty store, and a Failing wrapper that injects errors by method name. |
|
Package telemetry is the OpenTelemetry seam every other package instruments through: a Config carrying the providers, a Vocabulary that bounds an attribute to a closed set, and a RoundTripper that measures an outbound call.
|
Package telemetry is the OpenTelemetry seam every other package instruments through: a Config carrying the providers, a Vocabulary that bounds an attribute to a closed set, and a RoundTripper that measures an outbound call. |
|
telemetrytest
Package telemetrytest provides recording OpenTelemetry providers, so a test can assert what an instrument emitted.
|
Package telemetrytest provides recording OpenTelemetry providers, so a test can assert what an instrument emitted. |
|
Package testpki generates throwaway certificate authorities and device identities for tests and the device simulator.
|
Package testpki generates throwaway certificate authorities and device identities for tests and the device simulator. |
Click to show internal directories.
Click to hide internal directories.