03.
— Section 3
Credentials
macOS Keychain
Parola ta nu ajunge niciodată pe disc.
jmapcli nu păstrează niciun secret pe disc. Parola (sau tokenul de acces) este stocată în Keychain-ul de autentificare macOS; fișierul de cont — ~/.config/jmapcli/config.json, modul 0600 — conține doar URL-ul serverului, numele de utilizator și un indicator implicit. La primul contact cu Keychain din terminal? Întregul flux de lucru constă în trei comenzi security integrate.
1 · Stochează un secret — și citește-l înapoi. macOS solicită valoarea prin prompt, astfel încât secretul nu este niciodată introdus în linia de comandă, afișat pe ecran sau scris în istoricul shellului.
# 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 — numele pe care îl caută jmapcli: jmap-password pentru o parolă sau jmap-token pentru un token de acces (ex. Fastmail); configurează doar pe cel pe care îl folosești.
- -a
- account — adresa ta de email (același nume de utilizator pe care îl dai jmapcli).
- -l
- label — ce vei vedea în aplicația Keychain Access; -U actualizează un element existent în loc.
- -w
- fără valoare — solicită secretul prin prompt. Acesta este mecanismul care îl ține departe de ~/.zsh_history și din lista de procese.
2 · Indică jmapcli spre serverul tău. Înregistrează contul o singură dată; secretul este preluat direct din elementul Keychain pe care tocmai l-ai stocat, astfel că nu apare niciodată în linia de comandă.
$ 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
Nimic în istoricul tău, jurnale — sau în contextul unui AI
Odată ce secretul se află în Keychain, comenzile de zi cu zi (list, send, draft, sync) nu transmit niciodată o parolă, astfel că nu poate fi capturată în ~/.zsh_history, o listă de procese sau jurnalele CI. De aceea jmapcli este sigur de utilizat din instrumente terminal-AI — unui agent i se oferă un client JMAP, niciodată secretul tău.
— zsh
CI · agents
3.2
Rotire sau deconectare
Ți-ai schimbat parola? Rulează din nou linia security add-generic-password … -w — -U o suprascrie în loc. Pentru a elimina un cont, jmapcli logout șterge atât intrarea din configurație cât și secretul din Keychain într-un singur pas (--all șterge toate conturile).
— rotate
logout
3.3
Per-Mac, by design
Keychain-ul de autentificare nu este sincronizat prin iCloud — o limită deliberată, astfel încât parola ta nu părăsește niciodată Mac-ul pe care ai introdus-o. Repetă pasul security o dată per Mac; config.json poate fi plasat într-un folder sincronizat deoarece nu conține niciun secret.
— per
machine