verae-middleware/README.md

40 lines
1.7 KiB
Markdown

# verae-middleware
Zapier-facing HTTPS adapter (`/zapier/v1/*`) plus NATS workers. Zapier never speaks NATS or `api.veraetime.net`; this process does.
**Forgejo:** https://git.georgelambert.org/marchon/verae-middleware
**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-middleware.git`
**Catalog README (PDF):** https://zapier.georgelambert.org/packages/verae-zapier-middleware/README.pdf
**NATS contract:** https://zapier.georgelambert.org/docs-master/modules/verae-zapier-middleware/NATS.pdf
**Install / Docker / Proxmox:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf
## Run
```bash
cd packages/verae-zapier-middleware
npm install
MOCK_VERAE=true NATS_ENABLED=false npm test
PORT=3100 MOCK_VERAE=true npm start # /health, /zapier/v1
```
Docker image: `Dockerfile` (Node 22, port 3100). Full stack: `verae-ops` compose.
## Environment
| Variable | Default | Purpose |
|----------|---------|---------|
| `PORT` | `3100` | HTTP bind |
| `VERAE_API_BASE_URL` | `http://localhost:8080` | Chain HTTPS |
| `MOCK_VERAE` | `false` | In-process mock chain |
| `NATS_ENABLED` | `false` | JetStream vs in-process poller |
| `NATS_URL` | `nats://127.0.0.1:4222` | Cluster URL (loopback / docker DNS) |
| `WAIT_TIMEOUT_MS` | — | Sync wait on `jobs.events` |
## Depends on
- **Upstream HTTPS:** zappier-edge (`x-api-key` already checked) or a lab client
- **Chain:** `api.veraetime.net` or `MOCK_VERAE=true`
- **NATS:** `jobs.watch` out, `jobs.events` in; optional `archive.put` / aggregator wait
- **Optional:** request-splitter (in-process), archive-worm, tree-node, webhook-deliver
Does **not** bind NATS publicly. See [verae-ops linking](https://zapier.georgelambert.org/packages/verae-ops/06-linking-services.pdf).