03.
— Section 3
Credentials
macOS Keychain
Ваш пароль ніколи не торкається диска.
jmapcli не зберігає жодних секретів на диску. Ваш пароль (або bearer-токен) зберігається в macOS login Keychain; файл облікового запису — ~/.config/jmapcli/config.json, режим 0600 — містить лише URL сервера, ваше ім’я користувача та прапорець за замовчуванням. Вперше працюєте з Keychain з терміналу? Весь процес складається з трьох вбудованих команд security.
1 · Збережіть секрет — і зчитайте його. macOS запитує значення, тому секрет ніколи не вводиться в командному рядку, не відображається на екрані й не записується до вашої історії оболонки.
# store it — you’re prompted for the secret, nothing echoes
$ security add-generic-password -U -s jmap-password -a you@example.com -l "Boogie JMAP password" -w
# read it back at any time
$ security find-generic-password -s jmap-password -a you@example.com -w
# remove it
$ security delete-generic-password -s jmap-password -a you@example.com
- -s
- service — ім’я, яке jmapcli шукає: jmap-password для пароля або jmap-token для bearer-токена (наприклад, Fastmail); вкажіть лише той, який використовуєте.
- -a
- account — ваша електронна адреса (те саме ім’я користувача, яке ви передаєте jmapcli).
- -l
- label — те, що ви побачите в додатку Keychain Access; -U оновлює наявний запис на місці.
- -w
- без значення — запит на введення секрету. Саме це не дозволяє йому потрапити до ~/.zsh_history і списку процесів.
2 · Підключіть jmapcli до вашого сервера. Зареєструйте обліковий запис один раз; секрет буде отримано безпосередньо зі збереженого запису Keychain, тому він ніколи не з’явиться в командному рядку.
$ jmapcli login --url https://mail.example.com --username you@example.com \
--password "$(security find-generic-password -s jmap-password -a you@example.com -w)"
# token auth: swap --password for --token (and store under jmap-token above)
$ jmapcli list # from here on, every command reads the Keychain for you
3.1
Нічого в історії, журналах — або контексті ШІ
Як тільки секрет опиняється в Keychain, повсякденні команди (list, send, draft, sync) ніколи не передають пароль, тому він не може бути перехоплений у ~/.zsh_history, списку процесів або журналах CI. Саме це робить jmapcli безпечним для використання з термінальними ШІ-інструментами — агент отримує JMAP-клієнт, але ніколи ваш секрет.
— zsh
CI · agents
3.2
Зміна пароля або вихід із системи
Змінили пароль? Повторно запустіть рядок security add-generic-password … -w — -U замінить його на місці. Щоб видалити обліковий запис, jmapcli logout видаляє одночасно і запис конфігурації, і секрет з Keychain (--all очищує всі облікові записи).
— rotate
logout
3.3
Прив’язка до Mac за задумом
Login Keychain не синхронізується через iCloud — це свідоме обмеження: ваш пароль ніколи не покидає Mac, на якому ви його ввели. Повторіть крок security один раз для кожного Mac; config.json можна зберігати в синхронізованій домашній теці, оскільки він не містить жодних секретів.
— per
machine