v12.26.0
v12.26.0 - 2026-08-24
- 🎉 Add
Certificate.listActive()(GET /Marti/api/certadmin/cert/active) &Certificate.downloadIds()(GET /Marti/api/certadmin/cert/download/{ids}, returns the ZIP archive as aReadable) - 🎉 Add
Certificate.validate(pem)which evaluates expiry locally and looks up the TAK Server revocation record by SHA-256 fingerprint (the samehashconsulted byX509Authenticator) via the user's certificate list, returningexpired/revoked/known/validalong with the matchingcertificaterecord -CertificateValidationis exported. The record is fetched withget(hash)(a single cached row on the TAK Server) falling back to the user's certificate list when the server answers 500, which is how it reports an unknown hash - 🎉 Add
Certificate.probe()which checks whether the TAK Server accepts the API's own credentials viaGET /Marti/api/version- the cheapest authoritative check as the X509 filter runs (and rethrows) on every request. Returns{ accepted, version }or{ accepted: false, reason: 'revoked' | 'rejected' | 'tls', message }; non-authentication errors are rethrown.CertificateProbeis exported
�