NATS Lens — Guida all’utilizzo

← Torna alla home · Sviluppo e rilascio

Client NATS dentro VS Code: ti connetti con i context della CLI nats che hai già, pubblichi/sottoscrivi/richiedi sui subject e sfogli JetStream (stream e consumer) senza uscire dall’editor.


1. Installazione

Requisiti: VS Code ≥ 1.85. Nessun runtime esterno — il client nats.js è incluso nel bundle.


2. Preparare i context

NATS Lens non gestisce credenziali proprie: riusa i context della CLI nats, letti da ~/.config/nats/context/*.json. Se usi già la CLI, sei a posto. Per crearne uno:

nats context add prod \
  --server nats://nats.example.com:4222 \
  --user app --password '••••••'
nats context select prod          # il context selezionato viene evidenziato in NATS Lens

Auth supportata per context: user/password, token, file .creds (JWT). Le credenziali servono solo per connettersi e non vengono mai mostrate nell’UI (le label usano una forma oscurata, es. nats://host:4222 (user app)).

Cartella diversa? Impostazione natsLens.contextsDir. Server senza context? Aggiungili in natsLens.extraServers (es. nats://localhost:4222).


3. Connettersi

  1. Apri la activity bar → icona NATS → vista Connections.
  2. Clicca un context (o Command Palette → NATS Lens: Connect to Context).
  3. La status bar in basso mostra lo stato:
    • $(broadcast) <context> — connesso
    • $(sync~spin) NATS: reconnecting… — il server è caduto, tentativi in corso
    • $(plug) NATS: off — disconnesso / chiuso

Disconnessione: NATS Lens: Disconnect (chiude anche tutte le subscription attive).


4. Pubblicare, sottoscrivere, richiedere

Publish

Command Palette → NATS Lens: Publish Message.

trace-id: abc-123
x-retry=0
x-retry=1

Subscribe

Command Palette → NATS Lens: Subscribe to Subject.

Le subscription attive compaiono sotto Subscriptions nel tree; fermane una con NATS Lens: Stop a Subscription o dal menu contestuale.

I subject sottoscritti sono persistiti tra sessioni (workspace) e ripristinati alla riconnessione. Puoi anche esportarli/importarli su file JSON con NATS Lens: Export/Import Subscriptions.

Request / Reply

Command Palette → NATS Lens: Send Request (request-reply). Inserisci subject e payload: la reply si apre come documento. Timeout di default 3s; senza responder ottieni un errore esplicito.


5. JetStream

Da connesso, espandi JetStream nel tree:

Leggere i messaggi di uno stream

Dal menu contestuale di uno stream (icona documento) o Command Palette → NATS Lens: Read Stream Message:

Il messaggio si apre come documento con un’intestazione (seq, subject, timestamp, header) e il payload renderizzato (JSON indentato o testo).

Creare / modificare un consumer

Dal menu contestuale di uno stream (icona +) o Command Palette → NATS Lens: Create Consumer: nome durable, ack policy (explicit/all/none), deliver policy (all/new/last) e un filter subject opzionale. Il consumer creato compare subito nel tree.

Dal menu di un consumer (icona ingranaggio) → NATS Lens: Modify Consumer per aggiornare max deliver e ack wait (ms) di un consumer esistente.

Operazioni distruttive (doppia conferma)

Dal menu contestuale (icona cestino / tasto destro):

Entrambe richiedono due conferme modali e non sono mai l’azione di default — il pulsante predefinito è Annulla. L’operazione non è reversibile.


5b. Key-Value (KV)

Da connesso, espandi Key-Value nel tree: mostra i bucket KV (N values · dimensione); espandi un bucket per vederne le chiavi.


5c. Object Store

Da connesso, espandi Object Store nel tree: bucket → oggetti (dimensione).

Ispezione payload (base64/hex)

Command Palette → NATS Lens: Inspect Payload as base64/hex: codifica i byte del documento attivo in base64 o esadecimale (utile per contenuti binari).


6. Comandi (riassunto)

Comando Cosa fa
NATS Lens: Connect to Context Scegli un context e connettiti
NATS Lens: Connect with Token… Connessione ad-hoc con token mascherato (solo in memoria)
NATS Lens: Disconnect Disconnetti e chiudi le subscription
NATS Lens: Publish Message Pubblica un payload (con header opzionali)
NATS Lens: Send Request (request-reply) Invia una request e apri la reply
NATS Lens: Subscribe to Subject Live-tail di un subject in un Output channel
NATS Lens: Stop a Subscription Ferma una subscription attiva
NATS Lens: Read Stream Message Legge un messaggio dello stream (seq / last-by-subject)
NATS Lens: Create Consumer Crea un consumer durable su uno stream
NATS Lens: Modify Consumer Aggiorna max deliver / ack wait di un consumer
NATS Lens: Purge Stream Svuota uno stream (doppia conferma)
NATS Lens: Delete Consumer Elimina un consumer (doppia conferma)
NATS Lens: Open KV Value Apre il valore di una chiave KV
NATS Lens: Set KV Value Scrive una chiave in un bucket KV
NATS Lens: Open Object Apre il contenuto di un oggetto Object Store
NATS Lens: Upload Object Carica un file in un bucket Object Store
NATS Lens: Inspect Payload as base64/hex Codifica il documento attivo in base64/hex
NATS Lens: Export Subscriptions Salva le subscription attive su file JSON
NATS Lens: Import Subscriptions Sottoscrive i subject da un file JSON
NATS Lens: Validate JSON against Schema Valida il documento JSON attivo contro uno schema
NATS Lens: Monitor $SYS Events Sottoscrive $SYS.> (richiede permessi di sistema)
NATS Lens: Refresh Ricarica il tree

7. Impostazioni

Chiave Default Descrizione
natsLens.contextsDir "" Cartella dei context CLI. Vuoto = ~/.config/nats/context.
natsLens.extraServers [] URL server extra (nats://host:4222) mostrati accanto ai context.

8. Problemi comuni