TORNAR

Emmagatzematge Segur de Secrets en Node.js amb cross-keychain

3 min de lectura

Deixa de guardar claus API en arxius .env en text pla. cross-keychain és una llibreria TypeScript que usa el gestor de credencials natiu del teu SO per emmagatzemar secrets de forma segura—macOS Keychain, Windows Credential Manager, o Linux Secret Service. Una API, zero arxius de configuració en text pla.

Nascut de mcp-tool-selector (encara en progrés), on necessitava gestionar claus API per a múltiples servidors MCP sense dispersar secrets en arxius .env — o pitjor, cometent-los en repositoris. Es va convertir en una utilitat multiplataforma sòlida, així que la vaig publicar.

D'un cop d'ull

  • Funciona en macOS, Windows i Linux amb suport natiu de backend
  • Proporciona tant API programàtica com CLI per emmagatzemar/recuperar secrets
  • Fallback automàtic quan els mòduls natius no estan disponibles
  • Zero dependències en l'API pública, TS-first, Node 18+, ESM/CJS

Docs i API: llegeix el repo de GitHub i la pàgina del paquet npm.

Prova ràpida: emmagatzemar i recuperar secrets

Ús programàtic:

import { setPassword, getPassword } from "cross-keychain";
// Emmagatzemar un secret
await setPassword("myapp", "api-token", "sk-1234567890");
// Recuperar-lo més tard
const token = await getPassword("myapp", "api-token");
console.log(token); // "sk-1234567890"
// Eliminar quan acabis
await deletePassword("myapp", "api-token");

Ús CLI:

# Emmagatzemar un secret
npx cross-keychain set myapp api-token
# Recuperar-lo
npx cross-keychain get myapp api-token
# Eliminar-lo
npx cross-keychain delete myapp api-token

Per què importa això

Emmagatzemar secrets en arxius .env o de configuració en text pla és comú però arriscat. Has de recordar fer-los .gitignore, rotar-los quan es filtren, i gestionar-los entre entorns. Els magatzems de credencials natius del SO gestionen això—encriptats en repòs, controlats per accés, i integrats amb el teu sistema.

cross-keychain proporciona una API consistent entre plataformes: escriu una vegada, deixa que el SO gestioni la feina pesada.

El meu tercer projecte dissenyat per IA (després de mcp-server-giphy i env-interpolation), construït amb múltiples agents de IA. Cansat de gestionar secrets en text pla? Això simplifica tot.

Quan usar cross-keychain

Aquesta llibreria és ideal per a:

  • Eines CLI que necessiten emmagatzemar tokens API entre sessions
  • Entorns de desenvolupament on vols emmagatzematge segur de credencials
  • Aplicacions locals que s'autentiquen amb serveis externs
  • Qualsevol app Node.js que actualment usi arxius .env per a secrets

No és adequada per a aplicacions del costat del servidor en producció—aquestes haurien d'usar gestors de secrets dedicats com HashiCorp Vault o solucions de proveïdors cloud.

Conclusió

Si estàs construint eines Node.js que gestionen credencials, deixa de dependre d'arxius en text pla. cross-keychain et dona emmagatzematge segur i natiu amb una superfície d'API mínima. Els secrets dels teus usuaris mereixen quelcom millor que credentials.json.

Articles relacionats: