# Developer Module Index Each module document lists **every exported function**, its purpose, inputs, outputs, and side effects. Implementation status follows [TODO.md](../../../TODO.md) phases. Docs describe the **target contract** so implementers and reviewers share one API surface. ## Middleware (`verae-zapier-middleware/src`) | Module doc | Source path | Phase | |------------|-------------|-------| | [debug.md](debug.md) | `debug/` | 1 | | [config.md](config.md) | `config.js` | 2 | | [errors.md](errors.md) | `errors.js` | 2 | | [app.md](app.md) | `app.js`, `index.js` | 2 | | [store-db.md](store-db.md) | `store/db.js` | 3 | | [store-tenants.md](store-tenants.md) | `store/tenants.js` | 3 | | [store-usage.md](store-usage.md) | `store/usage.js` | 3 | | [store-webhooks.md](store-webhooks.md) | `store/webhooks.js` | 3 | | [tokens.md](tokens.md) | `lib/tokens.js` | 4 | | [veraeClient.md](veraeClient.md) | `clients/veraeClient.js` | 4 | | [authService.md](authService.md) | `services/authService.js` | 5 | | [entitlementService.md](entitlementService.md) | `services/entitlementService.js` | 5 | | [middleware-http.md](middleware-http.md) | `middleware/*.js` | 5 | | [timestampService.md](timestampService.md) | `services/timestampService.js` | 6 | | [verifyService.md](verifyService.md) | `services/verifyService.js` | 6 | | [webhookService.md](webhookService.md) | `services/webhookService.js` | 6 | | [routes.md](routes.md) | `routes/*.js` | 6 | | [nats.md](nats.md) | `nats/*.js` | 7 | | [workers.md](workers.md) | `workers/*.js` | 8–9 | | [tenantService.md](tenantService.md) | `services/tenantService.js` | 10 | ## Zapier app (`verae-zapier`) | Module doc | Source path | Phase | |------------|-------------|-------| | [zapier-app.md](zapier-app.md) | `index.js`, `authentication.js`, creates/searches/triggers | 11 | ## Documentation rules When you add or change an export: 1. Update JSDoc in the source file (`@param`, `@returns`, purpose sentence). 2. Update the matching module markdown table. 3. Add/adjust unit tests in the phase that owns the module. 4. Instrument boundaries with `createDebugger('')`.