Verae Time × Zapier

Admin users, pricing, customer types

site/packages/zappier/docs/USER-MANAGEMENT.md

Admin users, pricing, customer types

User Management Walkthrough

How the company manages pricing, customer types, and customer accounts in the admin console at /admin.

Audience: operations staff. For invoicing/reports see ACCOUNTING.md; for the end-user view see CUSTOMER-PORTAL.md.


1. Admin accounts

Admin sign-ins live in the admin_users table — passwords are stored as scrypt hashes, never in plain text. On an empty database the table is seeded from the environment:

Account Username Password (dev default) Env override
Primary admin admin admin-dev-key ADMIN_USER / ADMIN_KEY
Demo / stakeholder demo $$$Adm1n### DEMO_ADMIN_USER / DEMO_ADMIN_PASSWORD

The seed runs only when the table is empty — after that, accounts are managed in the console and survive restarts (SQLite) and env changes.

Sign-in issues a session token; API access is also possible with the x-admin-key: $ADMIN_KEY header (used by automation).

2. Users tab (admin account management)

The Users tab lists every admin account and manages their lifecycle:

Admin users

Existing sessions stay valid until sign-out or server restart; deactivation blocks new logins.

3. Rate card (per-endpoint pricing)

The Rate card tab sets list prices per API operation. Changes apply to the next API call — no restart.

Rate card

Three price kinds:

Add an endpoint with its operationId from openapi.yaml. Deleting an endpoint makes calls to it fail with 403 unless the customer’s type has a default rule.

4. Customer types (tiers)

The Customer types tab defines plans:

Customer types

Defaults: free (1×, $1 credit), pro (0.5×, $10 credit, 8¢ default rule), business (0.25×, $100 credit, 8¢ default rule).

5. Customers

The Customers tab manages individual accounts:

Customers

Customers created here can claim their portal account: the first signup at /portal with a matching email sets their password on the existing account instead of creating a new one.

6. Admin API reference

Everything the UI does is available over HTTP (x-admin-key or session Bearer):