5.5 KiB
5.5 KiB
Gaps and finish list
Modules and addresses that are designed but not fully connected, not running as fleet workers, or not on the live Verae/Zapier path.
Blocked on the operator (not a NATS bug)
| Item | State | To finish |
|---|---|---|
Zapier Platform push |
no login | zapier login → register → MIDDLEWARE_BASE_URL=https://zap.zapier.georgelambert.org → push private app |
| Live Verae | MOCK_VERAE=true |
credentials; MOCK_VERAE=false; prove one seal |
| nkeys / mTLS | cluster $G only |
verae-nats-accounts sketch; flip only after every NATS_URL has creds |
| Hash lookup on live OpenAPI | 501 | Verae API gap or our store |
Running on HTTP/NATS but incomplete routing
| Module | Running? | NATS | Gap |
|---|---|---|---|
| middleware HTTP + in-process job-poller + webhook-deliver | yes | watch/events/deliver | live Verae + Zapier push |
| account-balance | yes | billing RR + usage.recorded sub |
prove 402 from books on a Zap when prepaid is 0 |
| zappier-edge | yes | usage.recorded / payment.recorded / credit.applied / customer.put if NATS_URL |
confirm live process env; Stripe live |
| access-* + authz | yes | authz + ingress | — |
| identity | yes (fleet) | bind/lookup | confirm portal always binds veraeUserId |
jobs-events mailbox :3030 |
yes (fleet) | events counter | exclusive consumer off unless JOBS_EVENTS_EXCLUSIVE=1 |
| CS / sales / accounting | yes | statement/adjust | staff UX |
| archive-worm + tree-node | yes on LXC 510 (keep) | archive.put/query/reply |
only 1+1 copies; fleet overlay enabled: false for extra replicas |
| archive-aggregator | no as fleet worker | query/reply | enable overlay or finish in-process hook (includeAttached TBD in middleware) |
| request-splitter | library in middleware | archive.put |
verae.splitter.in not used |
ZAPIER_USAGE / USAGE_WRITER |
stream yes | verae.zapier.usage |
no consumer; middleware usage is local files |
| fleet job-poller / webhook-deliver extra copies | overlay false | same subjects | only enable if you want SSH-spread replicas instead of in-process (same queue names) |
Designed, not a live worker
| Module | Address | What to do |
|---|---|---|
verae-nats-process |
verae.example.process.* |
template only; clone to add a function |
verae-activate |
none (HTTPS Zapier) | optional tiny app; needs Zapier login |
verae-zapier (full app) |
HTTPS | push after login |
| simulator | in-process fake NATS | local :3847; not production |
verae-nats-accounts |
nkeys policy | not flipped |
Aux (no product subjects, or HTTP only)
| Module | NATS | Notes |
|---|---|---|
verae-keep |
none | HTTP health; restarts units |
verae-fleet |
none | catalog + keepFloor |
verae-uptime |
none | off-box HTTPS GET of public doors |
verae-backup |
none | disk / JetStream snapshot; no live event subject |
verae-bootstrap / verae-deploy / verae-proxmox / verae-ops |
none | install/link |
| staff-iam / staff-session / staff-ui | none | HTTP cookies |
| public NATS edge | leaf, token | do not use from Zapier; rotate token; later nkeys LEAF vs INTERNAL |
Billing triggers and event logging
| Signal | Designed | Running | Finish |
|---|---|---|---|
| Timestamp/verify meter (edge) | verae.billing.usage.recorded |
code path exists (zappier/src/app.ts onUsage) |
Confirm NATS_URL on live edge; 402 from account-balance when prepaid empty |
| Middleware quota | local files recordUsage |
yes | Either publish usage.recorded too or drop duplicate quota |
| Optional JS meter | verae.zapier.usage + USAGE_WRITER |
stream only | Wire or delete |
| Portal reload | payment.recorded + balance.adjust |
coded | confirm both fire on Stripe/test reload |
| CS credit | balance.adjust + credit.applied |
coded | confirm applied pub on live |
| Customer upsert | customer.put |
coded | — |
| Authz deny audit | verae.access.authz.deny |
running on deny | no SIEM sink |
| Job lifecycle log | jobs.events |
running | mailbox counts only — add structured log/export if needed |
| Archive put/query | VERAE_ARCHIVE |
510 worm/tree | aggregator not in wait path |
| Public edge | leaf | running | rotate token; do not expose :6222 |
Ordered finish for message routing
- Do not double-start job-poller: either in-process or fleet copies, same queue
job-poller. - Confirm edge
NATS_URLsousage.recordedactually lands; then 402 from books. Unify or drop middleware localrecordUsage. - Enable archive-aggregator (or in-process equivalent) so
includeAttachedand tree proofs work on wait/status. - Raise worm/tree replica floors on 510/more CTs if archive HA is required (fleet overlay min 3).
- Operator: Zapier
push+MOCK_VERAE=false. - Prove: Zap create →
jobs.watch→ liveGET /api/status→jobs.events→ wait body + REST Hook. - nkeys/mTLS after every client has creds; then lock down the public edge to accounts (LEAF vs INTERNAL).
- Optional: exclusive
jobs-eventsmailbox; SIEM onauthz.denyandjobs.events;verae.splitter.inif splitter is split out;USAGE_WRITERor deleteZAPIER_USAGE.
What is already enough for a mock Zap
HTTPS zap/mw → mock create → jobs.watch → in-process poller → mock status completed → jobs.events → wait returns mock certificate. Archive extras and live chain are the missing middle.