Clean prepaid SoT, identity mailbox, public access planes, leaf policy, fleet spawn
Some checks are pending
offline / test (push) Waiting to run

Persist account-balance books; edge caches prepaid from books. Add zappier-identity, verae-nats-accounts, verae-jobs-events, verae-access-staff, zapier-decisions. Edge binds loopback; lan-134 stays off; HTTP services prefer local spawn.
This commit is contained in:
George Lambert 2026-09-11 17:15:16 -04:00
parent 345aeeead9
commit ddf772454b
153 changed files with 2236 additions and 116 deletions

View file

@ -0,0 +1,7 @@
# verae-access-staff
Staff access plane for CS / sales / accounting. Credits and statement review after `verae.access.authz.check` with plane `staff`.
**Forgejo:** https://git.georgelambert.org/marchon/verae-access-staff
Port `:3025`.

View file

@ -13,7 +13,7 @@ Operator control plane for Verae Time × Zapier **runtime** services:
cd packages/verae-fleet
npm test
node src/cli.js list
node src/cli.js serve # http://127.0.0.1:3850/
node src/cli.js serve # http://0.0.0.0:3850/
```
Against a running daemon:

View file

@ -0,0 +1,7 @@
# verae-jobs-events
Mailbox process for `verae.zapier.jobs.events`. Today it counts events (passthrough). Webhook routing still lives in middleware until this process takes the exclusive consumer.
**Forgejo:** https://git.georgelambert.org/marchon/verae-jobs-events
Port `:3030`.

View file

@ -0,0 +1,8 @@
# verae-nats-accounts
NATS **account + leaf allow-list**. Leaf nodes cannot publish `verae.billing.*`.
**Forgejo:** https://git.georgelambert.org/marchon/verae-nats-accounts
- `policy.json` — machine-readable allow/deny (used by access-leaf).
- `nats.conf` — sketch for a future accounts-enabled nats-server (loopback).

View file

@ -7,7 +7,7 @@ Use it to validate messaging and to catch errors, delays, failures, and recoveri
```bash
cd packages/verae-zapier-simulator
npm test
npm start # http://127.0.0.1:3847/
npm start # http://0.0.0.0:3847/
```
## What it simulates

View file

@ -0,0 +1,13 @@
# zapier-decisions
Lab log of architecture decisions, actions taken, and open todos while cleaning the Verae × Zapier stack.
**Forgejo:** https://git.georgelambert.org/marchon/zapier-decisions
| File | What |
|------|------|
| [LOG.md](LOG.md) | Chronological actions |
| [TODO.md](TODO.md) | Open items |
| [decisions/](decisions/) | One file per decision |
No runtime. Not a NATS mailbox.

View file

@ -1,6 +1,6 @@
# zappier-account-balance
Source of truth for **customer prepaid balances**. Internal traffic is **NATS request-reply**; HTTP is health plus a fallback.
Source of truth for **customer prepaid balances** (persisted `books.json`). Internal traffic is **NATS request-reply**; HTTP is health plus a fallback. zappier-edge `balanceCents` is a cache of this book.
**Forgejo:** https://git.georgelambert.org/marchon/zappier-account-balance
**Catalog:** https://zapier.georgelambert.org/packages/zappier-account-balance/README.pdf

View file

@ -0,0 +1,12 @@
# zappier-identity
Mailbox for **Verae user id bind/lookup**. Public credentials stay zappier API keys. JWTs never live here.
**Forgejo:** https://git.georgelambert.org/marchon/zappier-identity
| Address | Kind |
|---------|------|
| `verae.identity.bind` | request-reply `{ email, customerId }` |
| `verae.identity.lookup` | request-reply `{ customerId }` or `{ veraeUserId }` |
HTTP `:3026` `POST /bind` `GET /lookup/:customerId`.