master-zapier-plan-draft/docs/modules/verae-zapier-middleware/services/timestampService.md
George Lambert 51ae79b75f Milestone 3: NATS wait (gate 9), hash lookup, zappier timestamp, NS1 tunnel
Wait-via-NATS returns completed or pending+jobId (GATE 9). Mock SHA256
idempotent register + GET /hashes/{sha256}. Zappier commercial edge has
POST /v1/timestamp and hash-lookup. GATE 12 smoke (signup + wait) passes.

NS1 NATS is 127.0.0.1:4222 on 70.88.205.138; SSH tunnel :14222. Local
nats-server -js used for isolated tests. Activate app adds Echo Text.

Learned: JetStream on NS1 is loopback-only; do not bind 4222 public.
2026-09-09 02:54:02 -04:00

3.1 KiB
Raw Permalink Blame History

verae-zapier-middleware/services/timestampService

Package: verae-zapier-middleware
Source: packages/verae-zapier-middleware/src/services/timestampService.js
Lines: 160

What this module is

Implementation module in verae-zapier-middleware. The tables below are extracted from the source (signatures + JSDoc).

Exports

createTimestamp, createTimestampAndWait, createBatchTimestamp, getJobStatus, getBatchJobStatus, getJobVerification, lookupHash

Types / interfaces / classes

None extracted.

Functions

Name Parameters Param types (JSDoc) Returns Calls (same file / helpers)
enqueueWatchForJob ctx, jobId ctx: object, jobId: string unknown see Call graph
createTimestamp ctx, body ctx: object Promise<{ jobId: string, sha256?: string, existing?: boolean — >} see Call graph
createTimestampAndWait ctx, body ctx: object Promise<object> — StatusResponse see Call graph
createBatchTimestamp ctx, body ctx: object unknown see Call graph
getJobStatus ctx, jobId ctx: object, jobId: string unknown see Call graph
getBatchJobStatus ctx, body ctx: object unknown see Call graph
getJobVerification ctx, jobId ctx: object, jobId: string unknown see Call graph
lookupHash ctx, sha256 ctx: object, sha256: string unknown see Call graph

Methods (class / object)

Name Parameters
enqueueJob `{
tenantId: ctx.tenantId,
jobId,
veraeToken: ctx.veraeToken,
traceId,
}`
checkEntitlement ctx.tenantId, 'timestamp'
recordUsage ctx.tenantId, 'timestamp'
checkEntitlement ctx.tenantId, 'batch_timestamp', { amount: itemCount }
recordUsage ctx.tenantId, 'batch_timestamp', { amount: itemCount }
recordUsage ctx.tenantId, 'status'
recordUsage ctx.tenantId, 'status', { amount: body.jobIds?.length ?? 1 }
recordUsage ctx.tenantId, 'status'
recordUsage ctx.tenantId, 'status'

What it imports / requires

  • ../config.js
  • ../clients/veraeClient.js
  • ../store/jobWatchers.js
  • ./entitlementService.js
  • ../debug/logger.js
  • ../debug/trace-context.js

Call graph (identifiers invoked)

createDebugger, enqueueWatchForJob, getTraceId, import, enqueueWatch, debug, enqueueJob, createTimestamp, checkEntitlement, recordUsage, createTimestampAndWait, waitForJobEvent, getStatus, waitForJob, createBatchTimestamp, getJobStatus, getBatchJobStatus, getBatchStatus, getJobVerification, lookupHash

Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

Return values (how to read this)

  • HTTP route handlers return Express res.json(...) bodies (see route docs).
  • Zapier perform functions return a single object (creates) or an array (triggers/searches).
  • Pricing functions return integer cents on Quote.totalCents.