master-zapier-plan-draft/docs/02-architecture/nats-gateway.md
George Lambert 51ae79b75f Milestone 3: NATS wait (gate 9), hash lookup, zappier timestamp, NS1 tunnel
Wait-via-NATS returns completed or pending+jobId (GATE 9). Mock SHA256
idempotent register + GET /hashes/{sha256}. Zappier commercial edge has
POST /v1/timestamp and hash-lookup. GATE 12 smoke (signup + wait) passes.

NS1 NATS is 127.0.0.1:4222 on 70.88.205.138; SSH tunnel :14222. Local
nats-server -js used for isolated tests. Activate app adds Echo Text.

Learned: JetStream on NS1 is loopback-only; do not bind 4222 public.
2026-09-09 02:54:02 -04:00

690 B

NATS gateway

JetStream for job watch, events, and webhook delivery lives on NS1 (70.88.205.138, host NS1.GEORGELAMBERT.ORG).

The client port is not public. nats-server -js listens on 127.0.0.1:4222 (monitoring 8222) with JetStream enabled (NATS 2.11.17).

Tunnel from this Mac

ssh -fN -L 14222:127.0.0.1:4222 marchon@70.88.205.138
export NATS_URL=nats://127.0.0.1:14222
export NATS_ENABLED=true

Local isolated tests use a laptop nats-server -js -p 4222.

Streams created by middleware

ZAPIER_JOBS, ZAPIER_EVENTS, ZAPIER_WEBHOOKS (optional ZAPIER_USAGE).

Do not expose 4222 on 0.0.0.0 without auth; keep SSH tunnel or private network.