03.
— Section 3
Credentials
macOS Keychain
كلمة مرورك لا تلمس القرص أبدًا.
لا يحتفظ jmapcli بأي سر على القرص. تُخزَّن كلمة مرورك (أو رمز الحامل) في سلسلة مفاتيح تسجيل الدخول بـ macOS؛ أما ملف الحساب — ~/.config/jmapcli/config.json، وضع 0600 — فلا يحتوي إلا على عنوان URL للخادم واسم المستخدم وعلامة افتراضية. جديد على سلسلة المفاتيح من الطرفية؟ سير العمل بالكامل ثلاثة أوامر 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 لرمز الحامل (مثل Fastmail)؛ حدِّد فقط ما تستخدمه.
- -a
- account — عنوان بريدك الإلكتروني (نفس اسم المستخدم الذي تمنحه لـ jmapcli).
- -l
- label — ما ستراه في تطبيق Keychain Access؛ -U يُحدِّث عنصرًا موجودًا في مكانه.
- -w
- بدون قيمة — يطلب إدخال السر. هذا هو الجزء الذي يبقيه بعيدًا عن ~/.zsh_history وقائمة العمليات.
2 · وجِّه jmapcli إلى خادمك. سجِّل الحساب مرة واحدة؛ يُسحب السر مباشرةً من عنصر سلسلة المفاتيح الذي خزَّنته للتو، ولن يظهر أبدًا في سطر الأوامر.
$ 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
لا شيء في سجلاتك أو سجلات النظام — ولا في سياق أي ذكاء اصطناعي
بمجرد تخزين السر في سلسلة المفاتيح، لن تحمل الأوامر اليومية (list، send، draft، sync) كلمة مرور، لذلك لا يمكن التقاطها في ~/.zsh_history أو قائمة العمليات أو سجلات CI. هذا ما يجعل jmapcli آمنًا للاستخدام مع أدوات الذكاء الاصطناعي في الطرفية — يحصل الوكيل على عميل JMAP، لا على سرك.
— zsh
CI · agents
3.2
تحديث كلمة المرور أو تسجيل الخروج
غيَّرت كلمة مرورك؟ أعِد تشغيل سطر security add-generic-password … -w — الخيار -U يستبدله في مكانه. لإزالة حساب، يحذف jmapcli logout كلًا من إدخال الإعدادات وسر سلسلة المفاتيح في خطوة واحدة (--all يمسح جميع الحسابات).
— rotate
logout
3.3
مرتبط بكل جهاز Mac بتصميم مقصود
سلسلة مفاتيح تسجيل الدخول لا تُزامَن عبر iCloud — حدٌّ مقصود، لكي لا تغادر كلمة مرورك الـ Mac الذي كتبتها عليه. كرِّر خطوة security مرة واحدة لكل Mac؛ يمكن نقل config.json في مجلد منزلي مزامَن لأنه لا يحتوي على أي سر.
— per
machine