zapier-decisions/LOG.md

2.4 KiB
Raw Blame History

Action log

2026-09-11 — bootstrap

  • Created this repo to record decisions while executing cleanup items 15 (and a second pass on 25).
  • Assumption: single developer, lab only; breaking changes allowed.

Step 1 — account-balance is the prepaid source of truth

  • Persist books to BOOKS_PATH (atomic JSON).
  • Mutations go through balance.adjust / usage.recorded; edge cache balanceCents is updated from the books reply only.
  • Local cache mutate only when NATS_URL and ACCOUNT_BALANCE_URL are both unset (tests).

Step 2 — identity join

  • zappier-identity mailbox: verae.identity.bind / verae.identity.lookup.
  • Portal + middleware tenants store veraeUserId; JWT never public.

Step 3 — access planes are the public doors

  • zappier-edge binds loopback (127.0.0.1:3000).
  • Public: access-web :3021, access-api :3022, access-leaf :3023, access-zapier :3024, access-staff :3025.

Step 4 — leaf hardening

  • verae-nats-accounts holds nats.conf + subject policy.
  • Leaf token required; billing subjects denied in policy file and access-leaf.

Step 5 — fleet spawn

  • Prefer local machines for HTTP spawn.command services.
  • Disable lan-134 unless FLEET_ENABLE_LAN134=1.
  • SSH spawn timeout 8s; failed hosts skipped.

2026-09-11 — names, staff session, exclusive jobs.events

  • Account-balance stores display names (customer.put + lookup by name). Edge writes names on customer create/edit; CS/sales/accounting/staff join from edge if the ledger has no name.
  • New repo verae-staff-session (:3027). Department HTML redirects when STAFF_AUTH=1.
  • JOBS_EVENTS_EXCLUSIVE=1 makes verae-jobs-events the durable consumer; middleware webhook router backs off.
  • Catalog index is cards. Disabled fleet machines are grey, not degraded yellow.

2026-09-11 — UI design-system pass

  • Restyled CS/sales/accounting/access-staff to portal indigo; dollars + names.
  • Fleet ⋯ menus, role chips, Docs cards, 0.0.0.0 copy, simulator indigo (orange = faults).
  • Portal masked API key; admin customer drawer; empty invoice illustrations.
  • Catalog system-ui. New independent repo UI-Docs (walkthrough, screenshots, UI-REVIEW.pdf).

Second pass (25)

  • Identity used from portal when IDENTITY_URL set.
  • Leaf loads allow-list from nats-accounts policy.json.
  • Staff plane is a first-class mailbox (verae-access-staff).
  • jobs.events mailbox process verae-jobs-events (passthrough + count).