0.1.0 sets no oldest doze, so it runs on every doze (0.1.0 and up). The first release that sets one is 0.2.0: doze 0.2.0.
What changed between 0.1.0 and 0.2.0
From doze-modules history
0.2.0[date]
Needs doze 0.2.0 or newer. No notes for this release.
0.1.118 Jul
No notes for this release.
Same plugin protocol (1) and the same engines (runs itself) throughout, so the upgrade needs no change to doze.hcl. 0.1.1 is the last release that runs on any doze; 0.2.0 needs doze 0.2.0.
Projects pinned to 0.1.0 keep using it until someone runs doze modules upgrade. Nothing moves on its own: not doze up, not time, not a new release.
From doze 0.2: the newest release your doze can run
Every file is under https://github.com/doze-dev/doze-modules/releases/download/aws/. Intel Macs and Windows have no build; WSL2 uses the Linux x86_64 file.
Signing
The index is signed as a whole, and each archive is signed. doze checks both before anything runs, and refuses a module whose checksum or signature doesn't match.
Key
Nu5y8mbj…Wjw=
Where the key lives
Compiled into doze. doze never fetches or trusts a key on first use.
Namespace
doze
Publisher
doze-dev Official
Index signature
doDTxi7C…Bw==
What is signed
Each archive: its lowercase-hex SHA-256. The index: module, namespace, releases and channels as canonical JSON.
Not yet signed
The doze (oldest doze) field sits beside the signed part today. new The design moves it inside.
[planned: doze modules verify] Today doze runs these checks itself on every download. The same checks by hand, for macOS arm64. Needs OpenSSL 3: the openssl that ships with macOS has no ed25519 (brew install openssl@3).
Checksum, then signature
# 1. download and hash; compare with the table above$ curl -LO https://github.com/doze-dev/doze-modules/releases/download/aws/aws-plugin-0.1.0-aarch64-apple-darwin.tar.gz
$ shasum -a 256 aws-plugin-0.1.0-aarch64-apple-darwin.tar.gz
10edd75a23bb969559bb65ea4191f92edfcad1cd52e2d506c48af9d538ccb9e3 aws-plugin-0.1.0-aarch64-apple-darwin.tar.gz
# 2. the signature is over that hex string, with doze's public key$ printf %s 10edd75a23bb969559bb65ea4191f92edfcad1cd52e2d506c48af9d538ccb9e3 > digest.txt
$ echo 'SfbU61h1paMQ7pUVcKoSbyhEEyK9aySg1p58xauoOvp0dPb2GBdwtGQt8nCDErc6uNqY5rtu2RkzqK/g8DpBDg==' | base64 -d > sig.bin
$ (printf '\x30\x2a\x30\x05\x06\x03\x2b\x65\x70\x03\x21\x00'; echo 'Nu5y8mbjYv7XEtNFBXwPVl+C8SBteVApIROefBwGWjw=' | base64 -d) > doze-key.der
$ openssl pkeyutl -verify -pubin -keyform DER -inkey doze-key.der -rawin -in digest.txt -sigfile sig.bin
Signature Verified Successfully
What doze.lock records for 0.1.0
A project pinned to 0.1.0 carries this entry. doze modules upgrade replaces it whole: release, engines and checksums move together in one reviewable diff. Every platform's checksum goes in, so a teammate on Linux verifies against the same pin you made on a Mac. Pinned and cached means no network at all.