# Verae Time × Zapier

Workspace that composes two existing systems and the official Zapier Platform SDK:

1. **`packages/zappier`** — custom pricing, API keys, customer portal, admin, Stripe, invoices.
2. **`packages/verae-zapier-middleware`** — timestamp adapter to `api.veraetime.net` (or `MOCK_VERAE`) plus NATS workers.
3. **`packages/verae-zapier`** — Zapier Platform CLI app.
4. **`vendor/zapier-platform`** — upstream CLI/core/schema/examples (reference).
5. **`research/zapier`** — vendor research, scrapes, cloned Zapier repos, playbooks ([research/README.md](research/README.md)).

They are **imported, not yet wired**. Public Zapier traffic should eventually hit zappier (`x-api-key`), which meters the call and proxies to the Verae middleware. See [docs/02-architecture/composition.md](docs/02-architecture/composition.md).

Original brief (features a–m): [docs/00-sources/workspace-brief.md](docs/00-sources/workspace-brief.md).  
Where each tree came from: [docs/00-sources/provenance.md](docs/00-sources/provenance.md).

**Tomorrow morning:** [docs/04-activate/SETUP-ZAPIER-DEVELOPER.md](docs/04-activate/SETUP-ZAPIER-DEVELOPER.md) — create a Zapier developer account and push **Add Numbers**.

## Quick start

```bash
# Billing platform (portal :3000, admin, /docs)
cd packages/zappier && npm install && npm test && npm run dev

# Verae middleware (HTTP :3100, optional NATS)
cd packages/verae-zapier-middleware && npm install
cd ../.. && npm run gate:0
```

Gates (`npm run gate:N`) continue the middleware plan in [TODO.md](TODO.md). Phases 0–8, 10, 11 already passed in the source tree; 9 and 12+ are still open. Path prefixes now use `packages/`.

## Documentation map

| Doc | Contents |
|-----|----------|
| [docs/01-product/features-a-m.md](docs/01-product/features-a-m.md) | Requested Zapier surface vs owners |
| [docs/01-product/api-gap-analysis.md](docs/01-product/api-gap-analysis.md) | Live Verae OpenAPI vs a–m |
| [docs/01-product/billing-and-keys.md](docs/01-product/billing-and-keys.md) | Keys, rate card, invoices |
| [docs/02-architecture/overview.md](docs/02-architecture/overview.md) | Adapter internals (imported) |
| [docs/03-zapier/operations.md](docs/03-zapier/operations.md) | Platform nouns |
| [research/README.md](research/README.md) | Imported Zapier vendor research |
| [docs/04-activate/SETUP-ZAPIER-DEVELOPER.md](docs/04-activate/SETUP-ZAPIER-DEVELOPER.md) | **Morning: Zapier developer account + push Add Numbers** |
| [docs/modules/README.md](docs/modules/README.md) | Per-module API sheets (params, callees, returns) |
| [docs/models/README.md](docs/models/README.md) | Data models |
| [docs/sphinx/_build/html/index.html](docs/sphinx/_build/html/index.html) | Sphinx HTML (rebuild: `npm run docs:sphinx`) |

## Environment (middleware)

| Variable | Default | Purpose |
|----------|---------|---------|
| `PORT` | `3100` | Middleware HTTP |
| `VERAE_API_BASE_URL` | `http://localhost:8080` | Upstream Verae |
| `MOCK_VERAE` | `false` | Local mock of Verae HTTP |
| `NATS_ENABLED` | `false` | JetStream workers vs in-process poller |

Zappier uses `PORT` (3000), `ZAPPIER_DB`, `ADMIN_KEY`, `STRIPE_SECRET_KEY` — see `packages/zappier/README.md`.
