master-zapier-plan-draft/packages/overview/01-system.md
George Lambert a1a5b957fd
Some checks are pending
offline / test (push) Waiting to run
Wire zappier-edge into the live stack and add billing department APIs
Fleet now spawns the real zappier and middleware processes. Metered
timestamp/receipt/hash calls proxy to middleware when ZAPPIER_UPSTREAM
is set. CS credits, sales per-customer pricing, and QuickBooks export
are separate repos plugged into zappier-edge admin.
2026-09-11 15:15:55 -04:00

2.1 KiB
Raw Blame History

1. System

Verae Time proves a SHA-256 existed at a given time. Zapier lets customers register and look up hashes from the tools they already use. Billing and API keys live on zappier-edge. Timestamping, wait, webhooks, and archive fan-out live behind verae-middleware. Durable messaging is the central Verae NATS.IO 3-server JetStream cluster.

Hard rule

Zapier never connects to NATS, tree nodes, WORM archives, or api.veraetime.net. Those hops are middleware and workers only. If a trace ever shows a Zapier hop on a verae.* subject, do not push the app.

Planes

Plane What Network
Zapier cloud verae-zapier-app, verae-activate HTTPS to zappier-edge
Commercial edge zappier-edge portal, admin, x-api-key, Stripe meter Public HTTPS
CS / sales / accounting zappier-customer-service, zappier-sales-pricing, zappier-accounting-export Loopback/private HTTP into zappier-edge admin
Middleware HTTP /zapier/v1/* job id + wait Public HTTPS from edge only
NATS cluster JetStream subjects under verae.* Private; loopback or SSH tunnel
Workers poller, webhook-deliver, aggregator NATS + HTTPS to chain or Zapier hooks
Archives WORM + tree nodes NATS broadcast query; bloom miss = silence
Chain Verae timestamping HTTPS api.veraetime.net or MOCK
Control verae-fleet Operator loopback :3850; SSH to extra machines

Request in one sentence

A Zap step POSTs to zappier-edge (x-api-key); edge meters the call and, when ZAPPIER_UPSTREAM is set, forwards timestamp/receipt/hash to middleware /zapier/v1. Middleware splits hash vs files, writes the hash (or Merkle root) to the chain, publishes verae.zapier.jobs.watch, and either returns jobId or waits on verae.zapier.jobs.events. Customer-service credits, sales per-customer multipliers, invoices, payment history, and QuickBooks export sit on zappier-edge (department APIs on :3011:3013). Attached metadata and bulk-summary leaves are found later by broadcasting verae.archive.query to every archive/tree node.

See diagrams.