docs(macos): the notary profile uses team YYJU63HSD4's key, never DISPO's

packaging/macos/README.md named "App Store Connect API - GitHub CI
(DISPO)" as the key behind the horizon-notary profile. That key belongs
to another Apple team and must never be used for Horizon. The README now
says the profile comes from an App Store Connect API key of team
YYJU63HSD4 (the Developer ID's team), and that keychain.sh notary needs
MACOS_NOTARY_ITEM because its default item is still the other team's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Ludovic MarieandClaude Opus 5.5 committed 2026-11-03 19:13:18 +01:00
1 parent b33bc70c4f
commit a8f5765c4c
1 file changed
+6 -4
+6 -4
View File
@@ -41,8 +41,8 @@ The release runner (`ludovics-mac-mini-release`, label `horizon-release`, `MAC_R
LaunchAgent whose jobs run in their own security session, where the login keychain is locked.
So signing uses a keychain of its own, `~/Library/Keychains/horizon-signing.keychain-db`,
holding only the Developer ID identity, Apple's "Developer ID Certification Authority" and the
notarytool profile `horizon-notary` (the App Store Connect team key "App Store Connect API -
GitHub CI (DISPO)"). Its password is the item "Horizon signing keychain" in the Agents vault.
notarytool profile `horizon-notary` (an App Store Connect API key of Horizon's own Apple team,
YYJU63HSD4, the team of the Developer ID above; never a key of another team). Its password is the item "Horizon signing keychain" in the Agents vault.
`keychain.sh unlock` (each job's first macOS step) reads it with the fleet's 1Password service
account, unlocks the keychain, checks the identity and the profile are there and hands both to
the later steps; `keychain.sh lock` ends the job. Nothing secret is in the repository or on
@@ -57,8 +57,10 @@ Setting it up again (a new Mac, a renewed certificate):
that password, imports the identity and its intermediate, removes any other identity, lets
`codesign` use the key without a prompt and deletes the .p12. (The login keychain also holds
other people's Apple Development and Distribution identities: never those.)
3. `packaging/macos/keychain.sh notary`: the notarytool profile, from the App Store Connect key
(written to a private temporary file and deleted).
3. `packaging/macos/keychain.sh notary`: the notarytool profile, from team YYJU63HSD4's App Store
Connect API key in the Agents vault (written to a private temporary file and deleted). Name its
1Password item with `MACOS_NOTARY_ITEM`: the script's default still points at another team's key,
which Horizon must never use.
4. The repository variable `MACOS_SIGN_IDENTITY`.
The certificate and its intermediate expire on 1 February 2027: renew the certificate in the