From e401635fd605cf358447c22e5c163054861a432a Mon Sep 17 00:00:00 2001 From: George Lambert Date: Fri, 11 Sep 2026 14:36:17 -0400 Subject: [PATCH] Document every repo in Sphinx, catalog PDFs, and verae-ops Add missing package READMEs, expand Sphinx to all runtime modules, publish a LaTeX/PDF README book, and add verae-ops for Docker, Proxmox, VMs, dedicated hardware, and service linking. Catalog defaults to public PDF links for each module README and samples. --- README.MD | 4 + docs/modules/README.md | 25 ++++ .../verae-archive-aggregator/aggregate.md | 41 ++++++ docs/modules/verae-archive-worm/archive.md | 48 ++++++ docs/modules/verae-archive-worm/bloom.md | 49 ++++++ docs/modules/verae-fleet/agent.md | 51 +++++++ docs/modules/verae-fleet/classify.md | 40 +++++ docs/modules/verae-fleet/cli.md | 62 ++++++++ docs/modules/verae-fleet/health.md | 47 ++++++ docs/modules/verae-fleet/load.md | 45 ++++++ docs/modules/verae-fleet/machines.md | 47 ++++++ docs/modules/verae-fleet/monitor.md | 49 ++++++ docs/modules/verae-fleet/rtt.md | 52 +++++++ docs/modules/verae-fleet/server.md | 46 ++++++ docs/modules/verae-fleet/ssh.md | 55 +++++++ docs/modules/verae-fleet/supervisor.md | 82 +++++++++++ docs/modules/verae-fleet/worker.md | 57 +++++++ docs/modules/verae-nats-process/handle.md | 40 +++++ docs/modules/verae-nats-process/subjects.md | 38 +++++ docs/modules/verae-nats-process/worker.md | 49 ++++++ .../verae-request-splitter/splitRequest.md | 42 ++++++ docs/modules/verae-tree-node/merkle.md | 45 ++++++ .../verae-zapier-middleware/nats/subjects.md | 4 +- .../routes/hashRoutes.md | 2 +- .../services/timestampService.md | 4 +- .../verae-zapier-simulator/monitors.md | 40 +++++ .../verae-zapier-simulator/pipeline.md | 58 ++++++++ docs/modules/verae-zapier-simulator/server.md | 45 ++++++ docs/modules/verae-zapier-simulator/trace.md | 48 ++++++ docs/modules/verae-zapier/index.md | 3 +- .../verae-zapier/searches/tree_lookup.md | 41 ++++++ docs/sphinx/conf.py | 37 ++++- docs/sphinx/index.rst | 51 ++++++- docs/sphinx/latex-index.rst | 25 ++++ .../modules/verae-activate/authentication.rst | 2 +- .../verae-activate/creates/add_numbers.rst | 2 +- .../modules/verae-activate/creates/echo.rst | 2 +- .../modules/verae-activate/creates/sha256.rst | 2 +- .../verae-activate/creates/timestamp.rst | 2 +- docs/sphinx/modules/verae-activate/index.rst | 2 +- .../verae-archive-aggregator/aggregate.md | 41 ++++++ .../verae-archive-aggregator/aggregate.rst | 7 + .../modules/verae-archive-worm/archive.md | 48 ++++++ .../modules/verae-archive-worm/archive.rst | 7 + .../modules/verae-archive-worm/bloom.md | 49 ++++++ .../modules/verae-archive-worm/bloom.rst | 7 + docs/sphinx/modules/verae-fleet/agent.md | 51 +++++++ docs/sphinx/modules/verae-fleet/agent.rst | 7 + docs/sphinx/modules/verae-fleet/classify.md | 40 +++++ docs/sphinx/modules/verae-fleet/classify.rst | 7 + docs/sphinx/modules/verae-fleet/cli.md | 62 ++++++++ docs/sphinx/modules/verae-fleet/cli.rst | 7 + docs/sphinx/modules/verae-fleet/health.md | 47 ++++++ docs/sphinx/modules/verae-fleet/health.rst | 7 + docs/sphinx/modules/verae-fleet/load.md | 45 ++++++ docs/sphinx/modules/verae-fleet/load.rst | 7 + docs/sphinx/modules/verae-fleet/machines.md | 47 ++++++ docs/sphinx/modules/verae-fleet/machines.rst | 7 + docs/sphinx/modules/verae-fleet/monitor.md | 49 ++++++ docs/sphinx/modules/verae-fleet/monitor.rst | 7 + docs/sphinx/modules/verae-fleet/rtt.md | 52 +++++++ docs/sphinx/modules/verae-fleet/rtt.rst | 7 + docs/sphinx/modules/verae-fleet/server.md | 46 ++++++ docs/sphinx/modules/verae-fleet/server.rst | 7 + docs/sphinx/modules/verae-fleet/ssh.md | 55 +++++++ docs/sphinx/modules/verae-fleet/ssh.rst | 7 + docs/sphinx/modules/verae-fleet/supervisor.md | 82 +++++++++++ .../sphinx/modules/verae-fleet/supervisor.rst | 7 + docs/sphinx/modules/verae-fleet/worker.md | 57 +++++++ docs/sphinx/modules/verae-fleet/worker.rst | 7 + .../modules/verae-nats-process/handle.md | 40 +++++ .../modules/verae-nats-process/handle.rst | 7 + .../modules/verae-nats-process/subjects.md | 38 +++++ .../modules/verae-nats-process/subjects.rst | 7 + .../modules/verae-nats-process/worker.md | 49 ++++++ .../modules/verae-nats-process/worker.rst | 7 + .../verae-request-splitter/splitRequest.md | 42 ++++++ .../verae-request-splitter/splitRequest.rst | 7 + docs/sphinx/modules/verae-tree-node/merkle.md | 45 ++++++ .../sphinx/modules/verae-tree-node/merkle.rst | 7 + .../modules/verae-zapier-middleware/app.rst | 2 +- .../clients/veraeClient.rst | 2 +- .../verae-zapier-middleware/config.rst | 2 +- .../verae-zapier-middleware/debug/config.rst | 2 +- .../verae-zapier-middleware/debug/index.rst | 2 +- .../verae-zapier-middleware/debug/logger.rst | 2 +- .../verae-zapier-middleware/debug/redact.rst | 2 +- .../debug/trace-context.rst | 2 +- .../verae-zapier-middleware/debug/trace.rst | 2 +- .../verae-zapier-middleware/errors.rst | 2 +- .../modules/verae-zapier-middleware/index.rst | 2 +- .../lib/receiptPdf.rst | 2 +- .../verae-zapier-middleware/lib/tokens.rst | 2 +- .../middleware/authenticate.rst | 2 +- .../middleware/rateLimit.rst | 2 +- .../nats/connection.rst | 2 +- .../nats/publishers.rst | 2 +- .../verae-zapier-middleware/nats/subjects.md | 4 +- .../verae-zapier-middleware/nats/subjects.rst | 2 +- .../verae-zapier-middleware/nats/wait.rst | 2 +- .../routes/authRoutes.rst | 2 +- .../routes/hashRoutes.md | 2 +- .../routes/hashRoutes.rst | 2 +- .../verae-zapier-middleware/routes/index.rst | 2 +- .../routes/objectRoutes.rst | 2 +- .../routes/receiptRoutes.rst | 2 +- .../routes/statusRoutes.rst | 2 +- .../routes/tenantRoutes.rst | 2 +- .../routes/timestampRoutes.rst | 2 +- .../routes/verifyRoutes.rst | 2 +- .../routes/webhookRoutes.rst | 2 +- .../services/authService.rst | 2 +- .../services/entitlementService.rst | 2 +- .../services/tenantService.rst | 2 +- .../services/timestampService.md | 4 +- .../services/timestampService.rst | 2 +- .../services/verifyService.rst | 2 +- .../services/webhookService.rst | 2 +- .../verae-zapier-middleware/store/blobs.rst | 2 +- .../verae-zapier-middleware/store/db.rst | 2 +- .../store/jobWatchers.rst | 2 +- .../verae-zapier-middleware/store/tenants.rst | 2 +- .../verae-zapier-middleware/store/usage.rst | 2 +- .../store/webhooks.rst | 2 +- .../workers/inProcessJobPoller.rst | 2 +- .../workers/jobPollerWorker.rst | 2 +- .../workers/webhookWorker.rst | 2 +- .../verae-zapier-simulator/monitors.md | 40 +++++ .../verae-zapier-simulator/monitors.rst | 7 + .../verae-zapier-simulator/pipeline.md | 58 ++++++++ .../verae-zapier-simulator/pipeline.rst | 7 + .../modules/verae-zapier-simulator/server.md | 45 ++++++ .../modules/verae-zapier-simulator/server.rst | 7 + .../modules/verae-zapier-simulator/trace.md | 48 ++++++ .../modules/verae-zapier-simulator/trace.rst | 7 + .../modules/verae-zapier/authentication.rst | 2 +- .../verae-zapier/creates/add_numbers.rst | 2 +- .../verae-zapier/creates/batch_timestamp.rst | 2 +- .../verae-zapier/creates/create_timestamp.rst | 2 +- .../creates/timestamp_and_wait.rst | 2 +- .../verae-zapier/creates/verify_timestamp.rst | 2 +- docs/sphinx/modules/verae-zapier/index.md | 3 +- docs/sphinx/modules/verae-zapier/index.rst | 2 +- .../verae-zapier/searches/hash_lookup.rst | 2 +- .../verae-zapier/searches/job_status.rst | 2 +- .../verae-zapier/searches/tree_lookup.md | 41 ++++++ .../verae-zapier/searches/tree_lookup.rst | 7 + .../triggers/timestamp_completed.rst | 2 +- docs/sphinx/modules/zappier/accounts.rst | 2 +- docs/sphinx/modules/zappier/admin-users.rst | 2 +- docs/sphinx/modules/zappier/admin.rst | 2 +- docs/sphinx/modules/zappier/app.rst | 2 +- docs/sphinx/modules/zappier/auth.rst | 2 +- .../sphinx/modules/zappier/billing/credit.rst | 2 +- .../sphinx/modules/zappier/billing/reload.rst | 2 +- .../sphinx/modules/zappier/billing/stripe.rst | 2 +- .../modules/zappier/db/admin-user-repo.rst | 2 +- .../modules/zappier/db/billing-repo.rst | 2 +- .../modules/zappier/db/customer-repo.rst | 2 +- .../modules/zappier/db/invoice-repo.rst | 2 +- .../modules/zappier/db/pricing-store.rst | 2 +- .../modules/zappier/db/session-repo.rst | 2 +- docs/sphinx/modules/zappier/db/usage-repo.rst | 2 +- docs/sphinx/modules/zappier/index.rst | 2 +- docs/sphinx/modules/zappier/invoicing.rst | 2 +- .../modules/zappier/jobs/report-usage.rst | 2 +- docs/sphinx/modules/zappier/meter.rst | 2 +- docs/sphinx/modules/zappier/paths.rst | 2 +- docs/sphinx/modules/zappier/portal.rst | 2 +- docs/sphinx/modules/zappier/pricing.rst | 2 +- docs/sphinx/modules/zappier/reports.rst | 2 +- docs/sphinx/modules/zappier/usage.rst | 2 +- docs/sphinx/repos/docs-master.md | 60 ++++++++ docs/sphinx/repos/overview.md | 105 +++++++++++++ docs/sphinx/repos/verae-activate.md | 22 +++ docs/sphinx/repos/verae-archive-aggregator.md | 29 ++++ docs/sphinx/repos/verae-archive-worm.md | 34 +++++ docs/sphinx/repos/verae-fleet.md | 44 ++++++ docs/sphinx/repos/verae-nats-process.md | 21 +++ docs/sphinx/repos/verae-ops.md | 44 ++++++ docs/sphinx/repos/verae-request-splitter.md | 32 ++++ docs/sphinx/repos/verae-tree-node.md | 31 ++++ docs/sphinx/repos/verae-zapier-middleware.md | 40 +++++ docs/sphinx/repos/verae-zapier-simulator.md | 34 +++++ docs/sphinx/repos/verae-zapier.md | 38 +++++ docs/sphinx/repos/zapier-user-docs.md | 27 ++++ docs/sphinx/repos/zappier.md | 139 ++++++++++++++++++ package.json | 1 + packages/docs-master/README.md | 2 + .../docs-master/modules/verae-ops/NATS.md | 3 + .../docs-master/modules/verae-ops/SUMMARY.md | 3 + packages/overview/02-modules-and-repos.md | 1 + packages/overview/INDEX.md | 8 +- packages/overview/README.md | 1 + packages/verae-activate/README.md | 6 +- packages/verae-archive-aggregator/README.md | 29 ++++ packages/verae-archive-worm/README.md | 34 +++++ packages/verae-fleet/README.md | 2 + packages/verae-nats-process/README.md | 5 +- packages/verae-ops/01-dependencies.md | 64 ++++++++ packages/verae-ops/02-docker.md | 54 +++++++ packages/verae-ops/03-proxmox.md | 60 ++++++++ packages/verae-ops/04-virtual-servers.md | 28 ++++ packages/verae-ops/05-dedicated-hardware.md | 59 ++++++++ packages/verae-ops/06-linking-services.md | 57 +++++++ packages/verae-ops/07-maintenance.md | 45 ++++++ packages/verae-ops/NATS.md | 10 ++ packages/verae-ops/README.md | 44 ++++++ packages/verae-ops/SUMMARY.md | 7 + packages/verae-ops/docker-compose.yml | 115 +++++++++++++++ packages/verae-ops/package.json | 6 + packages/verae-request-splitter/README.md | 32 ++++ packages/verae-tree-node/README.md | 28 +++- packages/verae-zapier-middleware/README.md | 40 +++++ packages/verae-zapier-simulator/README.md | 4 + packages/verae-zapier/README.md | 8 +- packages/zappier/README.md | 19 ++- packages/zappier/zapier-app/README.md | 13 ++ scripts/build-docs-site.py | 62 +++++++- scripts/build-readme-latex.py | 71 +++++++++ scripts/gen-module-docs.py | 53 ++++++- scripts/push-module-repos.sh | 2 + 222 files changed, 4498 insertions(+), 123 deletions(-) create mode 100644 docs/modules/verae-archive-aggregator/aggregate.md create mode 100644 docs/modules/verae-archive-worm/archive.md create mode 100644 docs/modules/verae-archive-worm/bloom.md create mode 100644 docs/modules/verae-fleet/agent.md create mode 100644 docs/modules/verae-fleet/classify.md create mode 100644 docs/modules/verae-fleet/cli.md create mode 100644 docs/modules/verae-fleet/health.md create mode 100644 docs/modules/verae-fleet/load.md create mode 100644 docs/modules/verae-fleet/machines.md create mode 100644 docs/modules/verae-fleet/monitor.md create mode 100644 docs/modules/verae-fleet/rtt.md create mode 100644 docs/modules/verae-fleet/server.md create mode 100644 docs/modules/verae-fleet/ssh.md create mode 100644 docs/modules/verae-fleet/supervisor.md create mode 100644 docs/modules/verae-fleet/worker.md create mode 100644 docs/modules/verae-nats-process/handle.md create mode 100644 docs/modules/verae-nats-process/subjects.md create mode 100644 docs/modules/verae-nats-process/worker.md create mode 100644 docs/modules/verae-request-splitter/splitRequest.md create mode 100644 docs/modules/verae-tree-node/merkle.md create mode 100644 docs/modules/verae-zapier-simulator/monitors.md create mode 100644 docs/modules/verae-zapier-simulator/pipeline.md create mode 100644 docs/modules/verae-zapier-simulator/server.md create mode 100644 docs/modules/verae-zapier-simulator/trace.md create mode 100644 docs/modules/verae-zapier/searches/tree_lookup.md create mode 100644 docs/sphinx/latex-index.rst create mode 100644 docs/sphinx/modules/verae-archive-aggregator/aggregate.md create mode 100644 docs/sphinx/modules/verae-archive-aggregator/aggregate.rst create mode 100644 docs/sphinx/modules/verae-archive-worm/archive.md create mode 100644 docs/sphinx/modules/verae-archive-worm/archive.rst create mode 100644 docs/sphinx/modules/verae-archive-worm/bloom.md create mode 100644 docs/sphinx/modules/verae-archive-worm/bloom.rst create mode 100644 docs/sphinx/modules/verae-fleet/agent.md create mode 100644 docs/sphinx/modules/verae-fleet/agent.rst create mode 100644 docs/sphinx/modules/verae-fleet/classify.md create mode 100644 docs/sphinx/modules/verae-fleet/classify.rst create mode 100644 docs/sphinx/modules/verae-fleet/cli.md create mode 100644 docs/sphinx/modules/verae-fleet/cli.rst create mode 100644 docs/sphinx/modules/verae-fleet/health.md create mode 100644 docs/sphinx/modules/verae-fleet/health.rst create mode 100644 docs/sphinx/modules/verae-fleet/load.md create mode 100644 docs/sphinx/modules/verae-fleet/load.rst create mode 100644 docs/sphinx/modules/verae-fleet/machines.md create mode 100644 docs/sphinx/modules/verae-fleet/machines.rst create mode 100644 docs/sphinx/modules/verae-fleet/monitor.md create mode 100644 docs/sphinx/modules/verae-fleet/monitor.rst create mode 100644 docs/sphinx/modules/verae-fleet/rtt.md create mode 100644 docs/sphinx/modules/verae-fleet/rtt.rst create mode 100644 docs/sphinx/modules/verae-fleet/server.md create mode 100644 docs/sphinx/modules/verae-fleet/server.rst create mode 100644 docs/sphinx/modules/verae-fleet/ssh.md create mode 100644 docs/sphinx/modules/verae-fleet/ssh.rst create mode 100644 docs/sphinx/modules/verae-fleet/supervisor.md create mode 100644 docs/sphinx/modules/verae-fleet/supervisor.rst create mode 100644 docs/sphinx/modules/verae-fleet/worker.md create mode 100644 docs/sphinx/modules/verae-fleet/worker.rst create mode 100644 docs/sphinx/modules/verae-nats-process/handle.md create mode 100644 docs/sphinx/modules/verae-nats-process/handle.rst create mode 100644 docs/sphinx/modules/verae-nats-process/subjects.md create mode 100644 docs/sphinx/modules/verae-nats-process/subjects.rst create mode 100644 docs/sphinx/modules/verae-nats-process/worker.md create mode 100644 docs/sphinx/modules/verae-nats-process/worker.rst create mode 100644 docs/sphinx/modules/verae-request-splitter/splitRequest.md create mode 100644 docs/sphinx/modules/verae-request-splitter/splitRequest.rst create mode 100644 docs/sphinx/modules/verae-tree-node/merkle.md create mode 100644 docs/sphinx/modules/verae-tree-node/merkle.rst create mode 100644 docs/sphinx/modules/verae-zapier-simulator/monitors.md create mode 100644 docs/sphinx/modules/verae-zapier-simulator/monitors.rst create mode 100644 docs/sphinx/modules/verae-zapier-simulator/pipeline.md create mode 100644 docs/sphinx/modules/verae-zapier-simulator/pipeline.rst create mode 100644 docs/sphinx/modules/verae-zapier-simulator/server.md create mode 100644 docs/sphinx/modules/verae-zapier-simulator/server.rst create mode 100644 docs/sphinx/modules/verae-zapier-simulator/trace.md create mode 100644 docs/sphinx/modules/verae-zapier-simulator/trace.rst create mode 100644 docs/sphinx/modules/verae-zapier/searches/tree_lookup.md create mode 100644 docs/sphinx/modules/verae-zapier/searches/tree_lookup.rst create mode 100644 docs/sphinx/repos/docs-master.md create mode 100644 docs/sphinx/repos/overview.md create mode 100644 docs/sphinx/repos/verae-activate.md create mode 100644 docs/sphinx/repos/verae-archive-aggregator.md create mode 100644 docs/sphinx/repos/verae-archive-worm.md create mode 100644 docs/sphinx/repos/verae-fleet.md create mode 100644 docs/sphinx/repos/verae-nats-process.md create mode 100644 docs/sphinx/repos/verae-ops.md create mode 100644 docs/sphinx/repos/verae-request-splitter.md create mode 100644 docs/sphinx/repos/verae-tree-node.md create mode 100644 docs/sphinx/repos/verae-zapier-middleware.md create mode 100644 docs/sphinx/repos/verae-zapier-simulator.md create mode 100644 docs/sphinx/repos/verae-zapier.md create mode 100644 docs/sphinx/repos/zapier-user-docs.md create mode 100644 docs/sphinx/repos/zappier.md create mode 100644 packages/docs-master/modules/verae-ops/NATS.md create mode 100644 packages/docs-master/modules/verae-ops/SUMMARY.md create mode 100644 packages/verae-archive-aggregator/README.md create mode 100644 packages/verae-archive-worm/README.md create mode 100644 packages/verae-ops/01-dependencies.md create mode 100644 packages/verae-ops/02-docker.md create mode 100644 packages/verae-ops/03-proxmox.md create mode 100644 packages/verae-ops/04-virtual-servers.md create mode 100644 packages/verae-ops/05-dedicated-hardware.md create mode 100644 packages/verae-ops/06-linking-services.md create mode 100644 packages/verae-ops/07-maintenance.md create mode 100644 packages/verae-ops/NATS.md create mode 100644 packages/verae-ops/README.md create mode 100644 packages/verae-ops/SUMMARY.md create mode 100644 packages/verae-ops/docker-compose.yml create mode 100644 packages/verae-ops/package.json create mode 100644 packages/verae-request-splitter/README.md create mode 100644 packages/verae-zapier-middleware/README.md create mode 100644 packages/zappier/zapier-app/README.md create mode 100644 scripts/build-readme-latex.py diff --git a/README.MD b/README.MD index ec8abdb..28c83fc 100644 --- a/README.MD +++ b/README.MD @@ -28,6 +28,10 @@ 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/`. +**Live catalog (PDF default):** https://zapier.georgelambert.org/ · [Markdown indexes](https://zapier.georgelambert.org/index-md.html) +**Install / Docker / Proxmox / metal:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf +**Sphinx:** https://zapier.georgelambert.org/sphinx/ · [LaTeX PDF](https://zapier.georgelambert.org/sphinx/verae-zapier-modules.pdf) + ## Documentation map | Doc | Contents | diff --git a/docs/modules/README.md b/docs/modules/README.md index 019da50..a04f666 100644 --- a/docs/modules/README.md +++ b/docs/modules/README.md @@ -85,4 +85,29 @@ One MD file per source module. - [verae-zapier/index](verae-zapier/index.md) - [verae-zapier/searches/hash_lookup](verae-zapier/searches/hash_lookup.md) - [verae-zapier/searches/job_status](verae-zapier/searches/job_status.md) +- [verae-zapier/searches/tree_lookup](verae-zapier/searches/tree_lookup.md) - [verae-zapier/triggers/timestamp_completed](verae-zapier/triggers/timestamp_completed.md) +- [verae-fleet/agent](verae-fleet/agent.md) +- [verae-fleet/classify](verae-fleet/classify.md) +- [verae-fleet/cli](verae-fleet/cli.md) +- [verae-fleet/health](verae-fleet/health.md) +- [verae-fleet/load](verae-fleet/load.md) +- [verae-fleet/machines](verae-fleet/machines.md) +- [verae-fleet/monitor](verae-fleet/monitor.md) +- [verae-fleet/rtt](verae-fleet/rtt.md) +- [verae-fleet/server](verae-fleet/server.md) +- [verae-fleet/ssh](verae-fleet/ssh.md) +- [verae-fleet/supervisor](verae-fleet/supervisor.md) +- [verae-fleet/worker](verae-fleet/worker.md) +- [verae-tree-node/merkle](verae-tree-node/merkle.md) +- [verae-archive-worm/archive](verae-archive-worm/archive.md) +- [verae-archive-worm/bloom](verae-archive-worm/bloom.md) +- [verae-archive-aggregator/aggregate](verae-archive-aggregator/aggregate.md) +- [verae-request-splitter/splitRequest](verae-request-splitter/splitRequest.md) +- [verae-nats-process/handle](verae-nats-process/handle.md) +- [verae-nats-process/subjects](verae-nats-process/subjects.md) +- [verae-nats-process/worker](verae-nats-process/worker.md) +- [verae-zapier-simulator/monitors](verae-zapier-simulator/monitors.md) +- [verae-zapier-simulator/pipeline](verae-zapier-simulator/pipeline.md) +- [verae-zapier-simulator/server](verae-zapier-simulator/server.md) +- [verae-zapier-simulator/trace](verae-zapier-simulator/trace.md) diff --git a/docs/modules/verae-archive-aggregator/aggregate.md b/docs/modules/verae-archive-aggregator/aggregate.md new file mode 100644 index 0000000..a6d715d --- /dev/null +++ b/docs/modules/verae-archive-aggregator/aggregate.md @@ -0,0 +1,41 @@ +# `verae-archive-aggregator/aggregate` + +**Package:** `verae-archive-aggregator` +**Source:** `packages/verae-archive-aggregator/src/aggregate.js` +**Lines:** 67 + +## What this module is + +Implementation module in `verae-archive-aggregator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`aggregateAttached`, `mergeReceipts` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `aggregateAttached` | `{ sha256, tenantId, kinds = ['publicMeta', 'privateMeta', 'file'], archives }` | opts: `object`, opts.sha256: `string`, opts.tenantId: `string`, opts.kinds: `string[]`, opts.timeoutMs: `number` | `{ archivesQueried: boolean, archiveReplies: number, records: object[], silent: string[] ` — } | see Call graph | +| `mergeReceipts` | `chainReceipts, archiveRecords` | chainReceipts: `object[]`, archiveRecords: `object[]` | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`mock`, `aggregateAttached`, `query`, `push`, `includes`, `mergeReceipts`, `map` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-archive-worm/archive.md b/docs/modules/verae-archive-worm/archive.md new file mode 100644 index 0000000..1a83199 --- /dev/null +++ b/docs/modules/verae-archive-worm/archive.md @@ -0,0 +1,48 @@ +# `verae-archive-worm/archive` + +**Package:** `verae-archive-worm` +**Source:** `packages/verae-archive-worm/src/archive.js` +**Lines:** 41 + +## What this module is + +Implementation module in `verae-archive-worm`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`WormArchive` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `WormArchive` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `archiveId` | +| `put` | `put` | +| `query` | `sha256` | + +## What it imports / requires + +- `./bloom.js` + +## Call graph (identifiers invoked) + +`constructor`, `put`, `toLowerCase`, `get`, `push`, `toISOString`, `set`, `add`, `null`, `records`, `query`, `mightHave` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-archive-worm/bloom.md b/docs/modules/verae-archive-worm/bloom.md new file mode 100644 index 0000000..e6c08c8 --- /dev/null +++ b/docs/modules/verae-archive-worm/bloom.md @@ -0,0 +1,49 @@ +# `verae-archive-worm/bloom` + +**Package:** `verae-archive-worm` +**Source:** `packages/verae-archive-worm/src/bloom.js` +**Lines:** 47 + +## What this module is + +Implementation module in `verae-archive-worm`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Bloom` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Bloom` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `m = 16384, k = 4` | +| `hashes` | `s` | +| `add` | `s` | +| `mightHave` | `s` | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`membership`, `constructor`, `alloc`, `ceil`, `hashes`, `createHash`, `update`, `digest`, `readUInt32BE`, `push`, `add`, `maybe`, `mightHave`, `every` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/agent.md b/docs/modules/verae-fleet/agent.md new file mode 100644 index 0000000..651630d --- /dev/null +++ b/docs/modules/verae-fleet/agent.md @@ -0,0 +1,51 @@ +# `verae-fleet/agent` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/agent.js` +**Lines:** 87 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`startAgent` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `json` | `res, code, obj` | — | `unknown` | see Call graph | +| `readBody` | `req` | — | `unknown` | see Call graph | +| `startAgent` | `{ port = PORT, bind = BIND } = {}` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `startAgent` | `(none)` | + +## What it imports / requires + +- `node:http` +- `node:child_process` +- `node:path` +- `node:url` + +## Call graph (identifiers invoked) + +`join`, `dirname`, `fileURLToPath`, `json`, `writeHead`, `end`, `stringify`, `readBody`, `push`, `concat`, `toString`, `parse`, `startAgent`, `createServer`, `async`, `keys`, `has`, `get`, `spawn`, `set`, `on`, `delete`, `kill`, `listen`, `write`, `close`, `values`, `clear`, `basename` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/classify.md b/docs/modules/verae-fleet/classify.md new file mode 100644 index 0000000..ecef760 --- /dev/null +++ b/docs/modules/verae-fleet/classify.md @@ -0,0 +1,40 @@ +# `verae-fleet/classify` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/classify.js` +**Lines:** 30 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`classifyService` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `classifyService` | `sv` | — | `'operational'|'degraded'|'down'` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`classifyService`, `filter` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/cli.md b/docs/modules/verae-fleet/cli.md new file mode 100644 index 0000000..3fb56ae --- /dev/null +++ b/docs/modules/verae-fleet/cli.md @@ -0,0 +1,62 @@ +# `verae-fleet/cli` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/cli.js` +**Lines:** 146 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `print` | `obj` | — | `unknown` | see Call graph | +| `help` | `(none)` | — | `unknown` | see Call graph | +| `api` | `method, pathname` | — | `unknown` | see Call graph | +| `main` | `(none)` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `print` | ``verae-fleet + + list services, config files, replica min/max + serve start floors + monitor + UI ${BASE}/ + monitor same without printing extra + status GET daemon status + start turn on, spawn up to min + stop turn off (service disable` | +| `print` | `r.body` | +| `print` | `{ error: err.message, hint: 'Is `verae-fleet serve` running?' }` | + +## What it imports / requires + +- `node:http` +- `./load.js` +- `./supervisor.js` +- `./monitor.js` +- `./server.js` + +## Call graph (identifiers invoked) + +`loadFleet`, `slice`, `print`, `write`, `stringify`, `help`, `off`, `pause`, `json`, `identityFile`, `login`, `api`, `request`, `on`, `push`, `concat`, `toString`, `resolve`, `parse`, `end`, `main`, `listServices`, `padEnd`, `padStart`, `import`, `find`, `sshCheck`, `keys`, `startService`, `tick`, `start`, `startControlServer`, `async`, `stop`, `stopAll`, `exit`, `test` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/health.md b/docs/modules/verae-fleet/health.md new file mode 100644 index 0000000..513eed8 --- /dev/null +++ b/docs/modules/verae-fleet/health.md @@ -0,0 +1,47 @@ +# `verae-fleet/health` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/health.js` +**Lines:** 119 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`httpProbe`, `tcpProbe`, `postControl`, `heartbeatFresh` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `httpProbe` | `portOrOpts, pathname = '/health', timeoutMs = 800` | — | `unknown` | see Call graph | +| `tcpProbe` | `host, port, timeoutMs = 400` | — | `unknown` | see Call graph | +| `postControl` | `portOrOpts, pathname = '/'` | pathname: `string` | `unknown` | see Call graph | +| `heartbeatFresh` | `stateDir, maxAgeMs` | — | `unknown` | see Call graph | +| `done` | `ok, error` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:net` +- `node:fs` +- `node:path` + +## Call graph (identifiers invoked) + +`httpProbe`, `get`, `on`, `push`, `parse`, `concat`, `toString`, `resolve`, `destroy`, `tcpProbe`, `connect`, `setTimeout`, `done`, `postControl`, `stringify`, `request`, `byteLength`, `write`, `end`, `heartbeatFresh`, `join`, `statSync`, `readFileSync`, `now` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/load.md b/docs/modules/verae-fleet/load.md new file mode 100644 index 0000000..085d851 --- /dev/null +++ b/docs/modules/verae-fleet/load.md @@ -0,0 +1,45 @@ +# `verae-fleet/load` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/load.js` +**Lines:** 95 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`FLEET_ROOT`, `readJson`, `loadFleet`, `listServices` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `readJson` | `file` | — | `unknown` | see Call graph | +| `loadFleet` | `root = FLEET_ROOT, opts = {}` | root: `string` | `unknown` | see Call graph | +| `listServices` | `loaded` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:fs` +- `node:path` +- `node:url` +- `./machines.js` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `resolve`, `readJson`, `parse`, `readFileSync`, `loadFleet`, `join`, `readdirSync`, `sort`, `endsWith`, `push`, `loadMachines`, `relative`, `listServices`, `values`, `map` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/machines.md b/docs/modules/verae-fleet/machines.md new file mode 100644 index 0000000..628911d --- /dev/null +++ b/docs/modules/verae-fleet/machines.md @@ -0,0 +1,47 @@ +# `verae-fleet/machines` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/machines.js` +**Lines:** 108 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`defaultMachines`, `loadMachines`, `normalizeMachine`, `upsertMachine`, `canHost`, `pickMachine`, `saveOverlay` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `defaultMachines` | `(none)` | — | `unknown` | see Call graph | +| `loadMachines` | `root, overlayPath` | — | `unknown` | see Call graph | +| `normalizeMachine` | `m` | — | `unknown` | see Call graph | +| `upsertMachine` | `list, spec` | — | `unknown` | see Call graph | +| `canHost` | `machine, serviceId, role` | — | `unknown` | see Call graph | +| `pickMachine` | `machines, instances, serviceId, role, exclude = []` | machines: `object[]`, serviceId: `string`, role: `string` | `unknown` | see Call graph | +| `saveOverlay` | `overlayPath, machines` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:fs` +- `node:path` + +## Call graph (identifiers invoked) + +`defaultMachines`, `plane`, `loadMachines`, `join`, `existsSync`, `parse`, `readFileSync`, `isArray`, `upsertMachine`, `assign`, `map`, `normalizeMachine`, `trim`, `findIndex`, `push`, `canHost`, `includes`, `capacity`, `pickMachine`, `filter`, `has`, `sort`, `localeCompare`, `find`, `saveOverlay`, `mkdirSync`, `dirname`, `writeFileSync`, `stringify` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/monitor.md b/docs/modules/verae-fleet/monitor.md new file mode 100644 index 0000000..40e720c --- /dev/null +++ b/docs/modules/verae-fleet/monitor.md @@ -0,0 +1,49 @@ +# `verae-fleet/monitor` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/monitor.js` +**Lines:** 39 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Monitor` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Monitor` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `supervisor, opts = {}` | +| `tick` | `(none)` | +| `start` | `(none)` | +| `stop` | `(none)` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`floors`, `import`, `constructor`, `tick`, `reconcile`, `toISOString`, `status`, `start`, `setInterval`, `log`, `stop`, `clearInterval` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/rtt.md b/docs/modules/verae-fleet/rtt.md new file mode 100644 index 0000000..6ccc5b6 --- /dev/null +++ b/docs/modules/verae-fleet/rtt.md @@ -0,0 +1,52 @@ +# `verae-fleet/rtt` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/rtt.js` +**Lines:** 58 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`RttWindow`, `summarizeRtt` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `RttWindow` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `summarizeRtt` | `samples` | samples: `number[]` | `unknown` | see Call graph | +| `percentile` | `sorted, p` | — | `unknown` | see Call graph | +| `round1` | `n` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `cap = 400` | +| `add` | `ms` | +| `stats` | `(none)` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`constructor`, `add`, `isFinite`, `push`, `splice`, `stats`, `summarizeRtt`, `filter`, `slice`, `sort`, `reduce`, `round1`, `percentile`, `floor`, `ceil`, `round` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/server.md b/docs/modules/verae-fleet/server.md new file mode 100644 index 0000000..35986c3 --- /dev/null +++ b/docs/modules/verae-fleet/server.md @@ -0,0 +1,46 @@ +# `verae-fleet/server` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/server.js` +**Lines:** 146 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`startControlServer` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `json` | `res, code, obj` | — | `unknown` | see Call graph | +| `startControlServer` | `sup, mon` | sup: `import('./supervisor.js').Supervisor`, mon: `import('./monitor.js').Monitor` | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:url` +- `./load.js` +- `../../verae-zapier-simulator/src/pipeline.js` + +## Call graph (identifiers invoked) + +`join`, `dirname`, `fileURLToPath`, `json`, `writeHead`, `end`, `stringify`, `import`, `startControlServer`, `createServer`, `async`, `snapshot`, `reset`, `push`, `parse`, `concat`, `toString`, `run`, `listServices`, `status`, `addMachine`, `match`, `checkMachine`, `setMachineEnabled`, `reconcile`, `startService`, `stopService`, `pauseService`, `resumeService`, `fn`, `pauseInstance`, `resumeInstance`, `restartInstance`, `stopInstance`, `markUnhealthy`, `createReadStream`, `pipe`, `startsWith`, `normalize`, `existsSync`, `statSync`, `isFile`, `extname`, `toLowerCase`, `listen`, `write` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/ssh.md b/docs/modules/verae-fleet/ssh.md new file mode 100644 index 0000000..d6bff8d --- /dev/null +++ b/docs/modules/verae-fleet/ssh.md @@ -0,0 +1,55 @@ +# `verae-fleet/ssh` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/ssh.js` +**Lines:** 171 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`expandHome`, `shellQuote`, `sshTarget`, `sshBaseArgs`, `scpBaseArgs`, `sshExec`, `scpTo`, `ensureRemoteRuntime`, `sshSpawnWorker`, `sshKillWorker`, `sshHttp`, `sshCheck` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `expandHome` | `p` | — | `unknown` | see Call graph | +| `shellQuote` | `s` | — | `unknown` | see Call graph | +| `sshTarget` | `machine` | — | `unknown` | see Call graph | +| `sshBaseArgs` | `machine` | — | `unknown` | see Call graph | +| `scpBaseArgs` | `machine` | — | `unknown` | see Call graph | +| `sshExec` | `machine, remoteCommand, { timeoutMs = 20000 } = {}` | — | `unknown` | see Call graph | +| `scpTo` | `machine, localFiles, remoteDir` | — | `unknown` | see Call graph | +| `ensureRemoteRuntime` | `machine` | — | `unknown` | see Call graph | +| `sshSpawnWorker` | `machine, { instance, env }` | — | `unknown` | see Call graph | +| `sshKillWorker` | `machine, pid, instance` | — | `unknown` | see Call graph | +| `sshHttp` | `machine, method, urlPath, { port, body } = {}` | — | `unknown` | see Call graph | +| `sshCheck` | `machine` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:child_process` +- `node:fs` +- `node:os` +- `node:path` +- `node:url` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `expandHome`, `homedir`, `startsWith`, `join`, `slice`, `shellQuote`, `replace`, `sshTarget`, `sshBaseArgs`, `existsSync`, `push`, `scpBaseArgs`, `sshExec`, `spawn`, `on`, `setTimeout`, `kill`, `reject`, `clearTimeout`, `concat`, `toString`, `trim`, `resolve`, `scpTo`, `ensureRemoteRuntime`, `has`, `add`, `sshSpawnWorker`, `entries`, `filter`, `map`, `split`, `pop`, `isFinite`, `sshKillWorker`, `sshHttp`, `stringify`, `parse`, `sshCheck` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/supervisor.md b/docs/modules/verae-fleet/supervisor.md new file mode 100644 index 0000000..d810429 --- /dev/null +++ b/docs/modules/verae-fleet/supervisor.md @@ -0,0 +1,82 @@ +# `verae-fleet/supervisor` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/supervisor.js` +**Lines:** 511 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Supervisor` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Supervisor` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `waitExit` | `child, ms` | — | `unknown` | see Call graph | +| `waitForHealth` | `rec, ms` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `opts = {}` | +| `machines` | `(none)` | +| `addMachine` | `spec` | +| `setMachineEnabled` | `id, enabled` | +| `checkMachine` | `id` | +| `machineOf` | `rec` | +| `controlInstance` | `rec, pathname, body` | +| `log` | `type, detail` | +| `spec` | `serviceId` | +| `nextIndex` | `serviceId` | +| `startOne` | `serviceId, opts = {}` | +| `stopInstance` | `instanceId, { replace = true } = {}` | +| `pauseInstance` | `instanceId, { replace = true } = {}` | +| `resumeInstance` | `instanceId` | +| `restartInstance` | `instanceId` | +| `markUnhealthy` | `instanceId` | +| `probe` | `rec` | +| `available` | `serviceId` | +| `reconcile` | `only` | +| `startService` | `serviceId` | +| `stopService` | `serviceId, { holdFloor = false } = {}` | +| `pauseService` | `serviceId` | +| `resumeService` | `serviceId` | +| `stopAll` | `(none)` | +| `status` | `(none)` | + +## What it imports / requires + +- `node:child_process` +- `node:fs` +- `node:path` +- `node:url` +- `./load.js` +- `./health.js` +- `./classify.js` +- `./machines.js` +- `./rtt.js` +- `./ssh.js` + +## Call graph (identifiers invoked) + +`floor`, `join`, `dirname`, `fileURLToPath`, `constructor`, `loadFleet`, `mkdirSync`, `isArray`, `machines`, `addMachine`, `upsertMachine`, `saveOverlay`, `log`, `setMachineEnabled`, `find`, `checkMachine`, `sshCheck`, `httpProbe`, `machineOf`, `controlInstance`, `sshHttp`, `postControl`, `toISOString`, `push`, `splice`, `spec`, `nextIndex`, `values`, `filter`, `map`, `has`, `startOne`, `get`, `pickMachine`, `sshSpawnWorker`, `spawn`, `now`, `on`, `set`, `waitForHealth`, `stopInstance`, `sshKillWorker`, `kill`, `waitExit`, `delete`, `reconcile`, `pauseInstance`, `resumeInstance`, `restartInstance`, `markUnhealthy`, `probe`, `isFinite`, `summarizeRtt`, `available`, `keys`, `min`, `startService`, `stopService`, `pauseService`, `resumeService` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-fleet/worker.md b/docs/modules/verae-fleet/worker.md new file mode 100644 index 0000000..d7d537c --- /dev/null +++ b/docs/modules/verae-fleet/worker.md @@ -0,0 +1,57 @@ +# `verae-fleet/worker` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/worker.js` +**Lines:** 154 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `processMessage` | `(none)` | — | `unknown` | see Call graph | +| `snapshot` | `(none)` | — | `unknown` | see Call graph | +| `beat` | `(none)` | — | `unknown` | see Call graph | +| `shutdown` | `(none)` | — | `unknown` | see Call graph | +| `json` | `code, obj` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `json` | `404, { error: 'not found' }` | +| `beat` | `(none)` | +| `clearInterval` | `iv` | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:crypto` +- `node:url` +- `./rtt.js` + +## Call graph (identifiers invoked) + +`join`, `cwd`, `toISOString`, `mkdirSync`, `resolve`, `dirname`, `fileURLToPath`, `import`, `put`, `query`, `processMessage`, `bigint`, `randomBytes`, `createHash`, `update`, `digest`, `add`, `snapshot`, `stats`, `beat`, `now`, `writeFileSync`, `stringify`, `createServer`, `writeHead`, `end`, `json`, `slice`, `listen`, `write`, `setInterval`, `max`, `round`, `shutdown`, `clearInterval`, `close`, `exit`, `on` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-nats-process/handle.md b/docs/modules/verae-nats-process/handle.md new file mode 100644 index 0000000..70a94a8 --- /dev/null +++ b/docs/modules/verae-nats-process/handle.md @@ -0,0 +1,40 @@ +# `verae-nats-process/handle` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/handle.js` +**Lines:** 21 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`handle` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `handle` | `msg = {}` | msg: `object` | `Promise|object` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`handle`, `toISOString` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-nats-process/subjects.md b/docs/modules/verae-nats-process/subjects.md new file mode 100644 index 0000000..e3f2119 --- /dev/null +++ b/docs/modules/verae-nats-process/subjects.md @@ -0,0 +1,38 @@ +# `verae-nats-process/subjects` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/subjects.js` +**Lines:** 14 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`AREA`, `RESOURCE`, `SUBJECTS` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +_No top-level functions extracted._ + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`freeze` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-nats-process/worker.md b/docs/modules/verae-nats-process/worker.md new file mode 100644 index 0000000..d912ec4 --- /dev/null +++ b/docs/modules/verae-nats-process/worker.md @@ -0,0 +1,49 @@ +# `verae-nats-process/worker` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/worker.js` +**Lines:** 71 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `snapshot` | `(none)` | — | `unknown` | see Call graph | +| `json` | `code, obj` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `json` | `404, { error: 'not found' }` | + +## What it imports / requires + +- `node:http` +- `./subjects.js` +- `./handle.js` + +## Call graph (identifiers invoked) + +`snapshot`, `createServer`, `async`, `writeHead`, `end`, `stringify`, `json`, `push`, `parse`, `concat`, `toString`, `handle`, `reply`, `listen`, `write`, `on`, `close`, `exit` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-request-splitter/splitRequest.md b/docs/modules/verae-request-splitter/splitRequest.md new file mode 100644 index 0000000..7b4c46b --- /dev/null +++ b/docs/modules/verae-request-splitter/splitRequest.md @@ -0,0 +1,42 @@ +# `verae-request-splitter/splitRequest` + +**Package:** `verae-request-splitter` +**Source:** `packages/verae-request-splitter/src/splitRequest.js` +**Lines:** 72 + +## What this module is + +Implementation module in `verae-request-splitter`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`sha256Hex`, `splitRequest` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `sha256Hex` | `data` | data: `string` | `string` | see Call graph | +| `splitRequest` | `body = {}` | body: `object` | `{ + * chain: { sha256: string, hashAlg: string, data?: string ` — , | see Call graph | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`sha256Hex`, `createHash`, `update`, `digest`, `splitRequest`, `toLowerCase`, `keys`, `push`, `isArray`, `from`, `toString` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-tree-node/merkle.md b/docs/modules/verae-tree-node/merkle.md new file mode 100644 index 0000000..ef09cd9 --- /dev/null +++ b/docs/modules/verae-tree-node/merkle.md @@ -0,0 +1,45 @@ +# `verae-tree-node/merkle` + +**Package:** `verae-tree-node` +**Source:** `packages/verae-tree-node/src/merkle.js` +**Lines:** 97 + +## What this module is + +Implementation module in `verae-tree-node`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`sha256Hex`, `parentHash`, `buildMerkle`, `merkleProof`, `verifyProof`, `shardIndex` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `sha256Hex` | `data` | data: `string|Buffer|Uint8Array` | `string` — lowercase hex | see Call graph | +| `parentHash` | `left, right` | left: `string`, right: `string` | `unknown` | see Call graph | +| `buildMerkle` | `leaves` | leaves: `string[]` | `{ root: string, layers: string[][], leaves: string[] ` — } | see Call graph | +| `merkleProof` | `layers, index` | layers: `string[][]`, index: `number` | `Array<{ sibling: string, position: 'left'|'right' ` — >} | see Call graph | +| `verifyProof` | `leaf, proof, root` | leaf: `string`, root: `string` | `unknown` | see Call graph | +| `shardIndex` | `sha256, n` | sha256: `string`, n: `number` | `unknown` | see Call graph | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`sha256Hex`, `isBuffer`, `from`, `createHash`, `update`, `digest`, `children`, `duplicated`, `parentHash`, `buildMerkle`, `map`, `toLowerCase`, `push`, `merkleProof`, `floor`, `verifyProof`, `nodes`, `shardIndex`, `slice`, `readUInt32BE` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-zapier-middleware/nats/subjects.md b/docs/modules/verae-zapier-middleware/nats/subjects.md index 4372f77..7c37d07 100644 --- a/docs/modules/verae-zapier-middleware/nats/subjects.md +++ b/docs/modules/verae-zapier-middleware/nats/subjects.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/nats/subjects.js` -**Lines:** 44 +**Lines:** 48 ## What this module is @@ -26,7 +26,7 @@ _No imports detected._ ## Call graph (identifiers invoked) -`freeze`, `names` +`freeze`, `node`, `names` Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s MD for parameter and return types. diff --git a/docs/modules/verae-zapier-middleware/routes/hashRoutes.md b/docs/modules/verae-zapier-middleware/routes/hashRoutes.md index 15d8f24..d1c23a1 100644 --- a/docs/modules/verae-zapier-middleware/routes/hashRoutes.md +++ b/docs/modules/verae-zapier-middleware/routes/hashRoutes.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/routes/hashRoutes.js` -**Lines:** 22 +**Lines:** 24 ## What this module is diff --git a/docs/modules/verae-zapier-middleware/services/timestampService.md b/docs/modules/verae-zapier-middleware/services/timestampService.md index d0a6552..925a3f9 100644 --- a/docs/modules/verae-zapier-middleware/services/timestampService.md +++ b/docs/modules/verae-zapier-middleware/services/timestampService.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/services/timestampService.js` -**Lines:** 160 +**Lines:** 170 ## What this module is @@ -27,7 +27,7 @@ _None extracted._ | `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 | +| `lookupHash` | `ctx, sha256, opts = {}` | ctx: `object`, sha256: `string` | `unknown` | see Call graph | ## Methods (class / object) diff --git a/docs/modules/verae-zapier-simulator/monitors.md b/docs/modules/verae-zapier-simulator/monitors.md new file mode 100644 index 0000000..2d75a01 --- /dev/null +++ b/docs/modules/verae-zapier-simulator/monitors.md @@ -0,0 +1,40 @@ +# `verae-zapier-simulator/monitors` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/monitors.js` +**Lines:** 221 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`analyze` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `analyze` | `events, ctx = {}` | events: `object[]`, ctx: `object` | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`check`, `filter`, `startsWith`, `includes`, `keys`, `join`, `broadcast`, `hop`, `analyze`, `push`, `map`, `find`, `some` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-zapier-simulator/pipeline.md b/docs/modules/verae-zapier-simulator/pipeline.md new file mode 100644 index 0000000..9a705ab --- /dev/null +++ b/docs/modules/verae-zapier-simulator/pipeline.md @@ -0,0 +1,58 @@ +# `verae-zapier-simulator/pipeline` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/pipeline.js` +**Lines:** 883 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`ACTIONS`, `Simulator` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Simulator` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `redact` | `obj` | — | `unknown` | see Call graph | +| `sleep` | `ms` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `(none)` | +| `reset` | `(none)` | +| `snapshot` | `(none)` | +| `run` | `req` | + +## What it imports / requires + +- `node:crypto` +- `../../verae-request-splitter/src/splitRequest.js` +- `../../verae-archive-worm/src/archive.js` +- `../../verae-archive-aggregator/src/aggregate.js` +- `../../verae-tree-node/src/merkle.js` +- `./trace.js` +- `./monitors.js` + +## Call graph (identifiers invoked) + +`setTimeout`, `up`, `app`, `constructor`, `reset`, `snapshot`, `map`, `keys`, `values`, `run`, `emit`, `redact`, `perform`, `signup`, `finish`, `connect`, `edgeAuth`, `meter`, `timestamp`, `lookup`, `batch`, `verify`, `assign`, `analyze`, `randomUUID`, `replace`, `slice`, `push`, `authentication`, `at`, `find`, `splitRequest`, `archivePuts`, `get`, `net`, `maybeDelay`, `seal`, `toISOString`, `queryArchives`, `mergeReceipts`, `filter`, `sha256Hex`, `toLowerCase`, `test`, `verifyProof`, `isArray`, `split`, `trim`, `buildMerkle`, `shardIndex`, `merkleProof`, `put`, `endsWith`, `query`, `includes`, `aggregateAttached`, `set`, `now`, `sleep` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-zapier-simulator/server.md b/docs/modules/verae-zapier-simulator/server.md new file mode 100644 index 0000000..ab03284 --- /dev/null +++ b/docs/modules/verae-zapier-simulator/server.md @@ -0,0 +1,45 @@ +# `verae-zapier-simulator/server` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/server.js` +**Lines:** 87 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `send` | `res, code, body, type = 'application/json; charset=utf-8'` | — | `unknown` | see Call graph | +| `readBody` | `req` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:url` +- `./pipeline.js` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `join`, `send`, `stringify`, `writeHead`, `end`, `readBody`, `on`, `push`, `concat`, `toString`, `resolve`, `parse`, `reject`, `createServer`, `async`, `snapshot`, `reset`, `run`, `normalize`, `startsWith`, `existsSync`, `statSync`, `isDirectory`, `extname`, `createReadStream`, `pipe`, `listen`, `write` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-zapier-simulator/trace.md b/docs/modules/verae-zapier-simulator/trace.md new file mode 100644 index 0000000..dda8e59 --- /dev/null +++ b/docs/modules/verae-zapier-simulator/trace.md @@ -0,0 +1,48 @@ +# `verae-zapier-simulator/trace` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/trace.js` +**Lines:** 45 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`TraceBus` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `TraceBus` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `(none)` | +| `now` | `(none)` | +| `emit` | `e` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`constructor`, `now`, `emit`, `push` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/modules/verae-zapier/index.md b/docs/modules/verae-zapier/index.md index d0a5fc0..16f1e2b 100644 --- a/docs/modules/verae-zapier/index.md +++ b/docs/modules/verae-zapier/index.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier` **Source:** `packages/verae-zapier/index.js` -**Lines:** 81 +**Lines:** 83 ## What this module is @@ -33,6 +33,7 @@ _None extracted._ - `./creates/add_numbers` - `./searches/job_status` - `./searches/hash_lookup` +- `./searches/tree_lookup` - `./triggers/timestamp_completed` - `zapier-platform-core` - `./package.json` diff --git a/docs/modules/verae-zapier/searches/tree_lookup.md b/docs/modules/verae-zapier/searches/tree_lookup.md new file mode 100644 index 0000000..f68ee48 --- /dev/null +++ b/docs/modules/verae-zapier/searches/tree_lookup.md @@ -0,0 +1,41 @@ +# `verae-zapier/searches/tree_lookup` + +**Package:** `verae-zapier` +**Source:** `packages/verae-zapier/searches/tree_lookup.js` +**Lines:** 46 + +## What this module is + +Implementation module in `verae-zapier`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`key`, `noun`, `display`, `label`, `description`, `chain` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `base` | `(none)` | — | `unknown` | see Call graph | +| `perform` | `z, bundle` | — | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`async`, `encodeURIComponent`, `request`, `base`, `repeat` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index 21865ba..827601e 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -1,13 +1,44 @@ -# Sphinx config for Verae × Zapier module reference. +# Sphinx config for Verae × Zapier (HTML + LaTeX). project = "Verae Time × Zapier" author = "Verae" release = "0.1.0" -extensions = [] +extensions = ["myst_parser"] +myst_enable_extensions = ["colon_fence", "deflist", "tasklist"] +source_suffix = {".rst": "restructuredtext", ".md": "markdown"} templates_path = ["_templates"] exclude_patterns = ["_build"] html_theme = "alabaster" html_static_path = [] +html_theme_options = { + "description": "Public module reference", + "fixed_sidebar": True, +} master_doc = "index" +latex_engine = "pdflatex" +latex_elements = { + "papersize": "letterpaper", + "pointsize": "10pt", + "preamble": r"\usepackage{xcolor}\usepackage{booktabs}", +} latex_documents = [ - (master_doc, "verae-zapier-modules.tex", "Verae Time × Zapier Module Reference", author, "manual"), + ( + "latex-index", + "verae-zapier-modules.tex", + "Verae Time × Zapier Repository READMEs", + author, + "manual", + ), ] + + +def _drop_svg_images(app, doctree, fromdocname): + from docutils import nodes + + for node in list(doctree.findall(nodes.image)): + uri = node.get("uri") or "" + if uri.endswith(".svg"): + node.replace_self(nodes.paragraph(text=f"[SVG diagram {uri} — see HTML catalog]")) + + +def setup(app): + app.connect("doctree-resolved", _drop_svg_images) diff --git a/docs/sphinx/index.rst b/docs/sphinx/index.rst index 5a0fde9..f446eaf 100644 --- a/docs/sphinx/index.rst +++ b/docs/sphinx/index.rst @@ -1,9 +1,33 @@ Verae × Zapier module reference ================================= +Public HTML: https://zapier.georgelambert.org/sphinx/ +LaTeX/PDF: https://zapier.georgelambert.org/sphinx/verae-zapier-modules.pdf +Markdown indexes: https://zapier.georgelambert.org/index-md.html + +.. toctree:: + :maxdepth: 1 + :caption: Repository READMEs + + repos/overview + repos/verae-ops + repos/zappier + repos/verae-zapier-middleware + repos/verae-zapier + repos/verae-activate + repos/verae-request-splitter + repos/verae-archive-worm + repos/verae-archive-aggregator + repos/verae-tree-node + repos/verae-fleet + repos/verae-zapier-simulator + repos/zapier-user-docs + repos/docs-master + repos/verae-nats-process + .. toctree:: :maxdepth: 2 - :caption: Modules + :caption: API modules modules/zappier/accounts modules/zappier/admin-users @@ -88,4 +112,29 @@ Verae × Zapier module reference modules/verae-zapier/index modules/verae-zapier/searches/hash_lookup modules/verae-zapier/searches/job_status + modules/verae-zapier/searches/tree_lookup modules/verae-zapier/triggers/timestamp_completed + modules/verae-fleet/agent + modules/verae-fleet/classify + modules/verae-fleet/cli + modules/verae-fleet/health + modules/verae-fleet/load + modules/verae-fleet/machines + modules/verae-fleet/monitor + modules/verae-fleet/rtt + modules/verae-fleet/server + modules/verae-fleet/ssh + modules/verae-fleet/supervisor + modules/verae-fleet/worker + modules/verae-tree-node/merkle + modules/verae-archive-worm/archive + modules/verae-archive-worm/bloom + modules/verae-archive-aggregator/aggregate + modules/verae-request-splitter/splitRequest + modules/verae-nats-process/handle + modules/verae-nats-process/subjects + modules/verae-nats-process/worker + modules/verae-zapier-simulator/monitors + modules/verae-zapier-simulator/pipeline + modules/verae-zapier-simulator/server + modules/verae-zapier-simulator/trace diff --git a/docs/sphinx/latex-index.rst b/docs/sphinx/latex-index.rst new file mode 100644 index 0000000..4b2a422 --- /dev/null +++ b/docs/sphinx/latex-index.rst @@ -0,0 +1,25 @@ +Verae Time × Zapier — repository READMEs +========================================== + +LaTeX/PDF companion to the Sphinx HTML API sheets. +Public: https://zapier.georgelambert.org/sphinx/verae-zapier-modules.pdf + +.. toctree:: + :maxdepth: 1 + :caption: Repository READMEs + + repos/overview + repos/verae-ops + repos/zappier + repos/verae-zapier-middleware + repos/verae-zapier + repos/verae-activate + repos/verae-request-splitter + repos/verae-archive-worm + repos/verae-archive-aggregator + repos/verae-tree-node + repos/verae-fleet + repos/verae-zapier-simulator + repos/zapier-user-docs + repos/docs-master + repos/verae-nats-process diff --git a/docs/sphinx/modules/verae-activate/authentication.rst b/docs/sphinx/modules/verae-activate/authentication.rst index f483fd4..080484a 100644 --- a/docs/sphinx/modules/verae-activate/authentication.rst +++ b/docs/sphinx/modules/verae-activate/authentication.rst @@ -4,4 +4,4 @@ verae-activate.authentication Generated API sheet for ``verae-activate/authentication``. .. include:: authentication.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-activate/creates/add_numbers.rst b/docs/sphinx/modules/verae-activate/creates/add_numbers.rst index a0924eb..c1c93bc 100644 --- a/docs/sphinx/modules/verae-activate/creates/add_numbers.rst +++ b/docs/sphinx/modules/verae-activate/creates/add_numbers.rst @@ -4,4 +4,4 @@ verae-activate.creates.add_numbers Generated API sheet for ``verae-activate/creates/add_numbers``. .. include:: add_numbers.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-activate/creates/echo.rst b/docs/sphinx/modules/verae-activate/creates/echo.rst index 472c65e..d88d006 100644 --- a/docs/sphinx/modules/verae-activate/creates/echo.rst +++ b/docs/sphinx/modules/verae-activate/creates/echo.rst @@ -4,4 +4,4 @@ verae-activate.creates.echo Generated API sheet for ``verae-activate/creates/echo``. .. include:: echo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-activate/creates/sha256.rst b/docs/sphinx/modules/verae-activate/creates/sha256.rst index a28edef..68621a0 100644 --- a/docs/sphinx/modules/verae-activate/creates/sha256.rst +++ b/docs/sphinx/modules/verae-activate/creates/sha256.rst @@ -4,4 +4,4 @@ verae-activate.creates.sha256 Generated API sheet for ``verae-activate/creates/sha256``. .. include:: sha256.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-activate/creates/timestamp.rst b/docs/sphinx/modules/verae-activate/creates/timestamp.rst index 59ec60b..ff750b4 100644 --- a/docs/sphinx/modules/verae-activate/creates/timestamp.rst +++ b/docs/sphinx/modules/verae-activate/creates/timestamp.rst @@ -4,4 +4,4 @@ verae-activate.creates.timestamp Generated API sheet for ``verae-activate/creates/timestamp``. .. include:: timestamp.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-activate/index.rst b/docs/sphinx/modules/verae-activate/index.rst index 75d207e..ea98afa 100644 --- a/docs/sphinx/modules/verae-activate/index.rst +++ b/docs/sphinx/modules/verae-activate/index.rst @@ -4,4 +4,4 @@ verae-activate.index Generated API sheet for ``verae-activate/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-archive-aggregator/aggregate.md b/docs/sphinx/modules/verae-archive-aggregator/aggregate.md new file mode 100644 index 0000000..a6d715d --- /dev/null +++ b/docs/sphinx/modules/verae-archive-aggregator/aggregate.md @@ -0,0 +1,41 @@ +# `verae-archive-aggregator/aggregate` + +**Package:** `verae-archive-aggregator` +**Source:** `packages/verae-archive-aggregator/src/aggregate.js` +**Lines:** 67 + +## What this module is + +Implementation module in `verae-archive-aggregator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`aggregateAttached`, `mergeReceipts` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `aggregateAttached` | `{ sha256, tenantId, kinds = ['publicMeta', 'privateMeta', 'file'], archives }` | opts: `object`, opts.sha256: `string`, opts.tenantId: `string`, opts.kinds: `string[]`, opts.timeoutMs: `number` | `{ archivesQueried: boolean, archiveReplies: number, records: object[], silent: string[] ` — } | see Call graph | +| `mergeReceipts` | `chainReceipts, archiveRecords` | chainReceipts: `object[]`, archiveRecords: `object[]` | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`mock`, `aggregateAttached`, `query`, `push`, `includes`, `mergeReceipts`, `map` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-archive-aggregator/aggregate.rst b/docs/sphinx/modules/verae-archive-aggregator/aggregate.rst new file mode 100644 index 0000000..3fa6089 --- /dev/null +++ b/docs/sphinx/modules/verae-archive-aggregator/aggregate.rst @@ -0,0 +1,7 @@ +verae-archive-aggregator.aggregate +================================== + +Generated API sheet for ``verae-archive-aggregator/aggregate``. + +.. include:: aggregate.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-archive-worm/archive.md b/docs/sphinx/modules/verae-archive-worm/archive.md new file mode 100644 index 0000000..1a83199 --- /dev/null +++ b/docs/sphinx/modules/verae-archive-worm/archive.md @@ -0,0 +1,48 @@ +# `verae-archive-worm/archive` + +**Package:** `verae-archive-worm` +**Source:** `packages/verae-archive-worm/src/archive.js` +**Lines:** 41 + +## What this module is + +Implementation module in `verae-archive-worm`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`WormArchive` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `WormArchive` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `archiveId` | +| `put` | `put` | +| `query` | `sha256` | + +## What it imports / requires + +- `./bloom.js` + +## Call graph (identifiers invoked) + +`constructor`, `put`, `toLowerCase`, `get`, `push`, `toISOString`, `set`, `add`, `null`, `records`, `query`, `mightHave` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-archive-worm/archive.rst b/docs/sphinx/modules/verae-archive-worm/archive.rst new file mode 100644 index 0000000..2685693 --- /dev/null +++ b/docs/sphinx/modules/verae-archive-worm/archive.rst @@ -0,0 +1,7 @@ +verae-archive-worm.archive +========================== + +Generated API sheet for ``verae-archive-worm/archive``. + +.. include:: archive.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-archive-worm/bloom.md b/docs/sphinx/modules/verae-archive-worm/bloom.md new file mode 100644 index 0000000..e6c08c8 --- /dev/null +++ b/docs/sphinx/modules/verae-archive-worm/bloom.md @@ -0,0 +1,49 @@ +# `verae-archive-worm/bloom` + +**Package:** `verae-archive-worm` +**Source:** `packages/verae-archive-worm/src/bloom.js` +**Lines:** 47 + +## What this module is + +Implementation module in `verae-archive-worm`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Bloom` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Bloom` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `m = 16384, k = 4` | +| `hashes` | `s` | +| `add` | `s` | +| `mightHave` | `s` | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`membership`, `constructor`, `alloc`, `ceil`, `hashes`, `createHash`, `update`, `digest`, `readUInt32BE`, `push`, `add`, `maybe`, `mightHave`, `every` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-archive-worm/bloom.rst b/docs/sphinx/modules/verae-archive-worm/bloom.rst new file mode 100644 index 0000000..94066ad --- /dev/null +++ b/docs/sphinx/modules/verae-archive-worm/bloom.rst @@ -0,0 +1,7 @@ +verae-archive-worm.bloom +======================== + +Generated API sheet for ``verae-archive-worm/bloom``. + +.. include:: bloom.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/agent.md b/docs/sphinx/modules/verae-fleet/agent.md new file mode 100644 index 0000000..651630d --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/agent.md @@ -0,0 +1,51 @@ +# `verae-fleet/agent` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/agent.js` +**Lines:** 87 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`startAgent` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `json` | `res, code, obj` | — | `unknown` | see Call graph | +| `readBody` | `req` | — | `unknown` | see Call graph | +| `startAgent` | `{ port = PORT, bind = BIND } = {}` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `startAgent` | `(none)` | + +## What it imports / requires + +- `node:http` +- `node:child_process` +- `node:path` +- `node:url` + +## Call graph (identifiers invoked) + +`join`, `dirname`, `fileURLToPath`, `json`, `writeHead`, `end`, `stringify`, `readBody`, `push`, `concat`, `toString`, `parse`, `startAgent`, `createServer`, `async`, `keys`, `has`, `get`, `spawn`, `set`, `on`, `delete`, `kill`, `listen`, `write`, `close`, `values`, `clear`, `basename` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/agent.rst b/docs/sphinx/modules/verae-fleet/agent.rst new file mode 100644 index 0000000..66e98ee --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/agent.rst @@ -0,0 +1,7 @@ +verae-fleet.agent +================= + +Generated API sheet for ``verae-fleet/agent``. + +.. include:: agent.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/classify.md b/docs/sphinx/modules/verae-fleet/classify.md new file mode 100644 index 0000000..ecef760 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/classify.md @@ -0,0 +1,40 @@ +# `verae-fleet/classify` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/classify.js` +**Lines:** 30 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`classifyService` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `classifyService` | `sv` | — | `'operational'|'degraded'|'down'` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`classifyService`, `filter` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/classify.rst b/docs/sphinx/modules/verae-fleet/classify.rst new file mode 100644 index 0000000..d80d475 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/classify.rst @@ -0,0 +1,7 @@ +verae-fleet.classify +==================== + +Generated API sheet for ``verae-fleet/classify``. + +.. include:: classify.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/cli.md b/docs/sphinx/modules/verae-fleet/cli.md new file mode 100644 index 0000000..3fb56ae --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/cli.md @@ -0,0 +1,62 @@ +# `verae-fleet/cli` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/cli.js` +**Lines:** 146 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `print` | `obj` | — | `unknown` | see Call graph | +| `help` | `(none)` | — | `unknown` | see Call graph | +| `api` | `method, pathname` | — | `unknown` | see Call graph | +| `main` | `(none)` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `print` | ``verae-fleet + + list services, config files, replica min/max + serve start floors + monitor + UI ${BASE}/ + monitor same without printing extra + status GET daemon status + start turn on, spawn up to min + stop turn off (service disable` | +| `print` | `r.body` | +| `print` | `{ error: err.message, hint: 'Is `verae-fleet serve` running?' }` | + +## What it imports / requires + +- `node:http` +- `./load.js` +- `./supervisor.js` +- `./monitor.js` +- `./server.js` + +## Call graph (identifiers invoked) + +`loadFleet`, `slice`, `print`, `write`, `stringify`, `help`, `off`, `pause`, `json`, `identityFile`, `login`, `api`, `request`, `on`, `push`, `concat`, `toString`, `resolve`, `parse`, `end`, `main`, `listServices`, `padEnd`, `padStart`, `import`, `find`, `sshCheck`, `keys`, `startService`, `tick`, `start`, `startControlServer`, `async`, `stop`, `stopAll`, `exit`, `test` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/cli.rst b/docs/sphinx/modules/verae-fleet/cli.rst new file mode 100644 index 0000000..1d710e5 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/cli.rst @@ -0,0 +1,7 @@ +verae-fleet.cli +=============== + +Generated API sheet for ``verae-fleet/cli``. + +.. include:: cli.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/health.md b/docs/sphinx/modules/verae-fleet/health.md new file mode 100644 index 0000000..513eed8 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/health.md @@ -0,0 +1,47 @@ +# `verae-fleet/health` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/health.js` +**Lines:** 119 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`httpProbe`, `tcpProbe`, `postControl`, `heartbeatFresh` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `httpProbe` | `portOrOpts, pathname = '/health', timeoutMs = 800` | — | `unknown` | see Call graph | +| `tcpProbe` | `host, port, timeoutMs = 400` | — | `unknown` | see Call graph | +| `postControl` | `portOrOpts, pathname = '/'` | pathname: `string` | `unknown` | see Call graph | +| `heartbeatFresh` | `stateDir, maxAgeMs` | — | `unknown` | see Call graph | +| `done` | `ok, error` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:net` +- `node:fs` +- `node:path` + +## Call graph (identifiers invoked) + +`httpProbe`, `get`, `on`, `push`, `parse`, `concat`, `toString`, `resolve`, `destroy`, `tcpProbe`, `connect`, `setTimeout`, `done`, `postControl`, `stringify`, `request`, `byteLength`, `write`, `end`, `heartbeatFresh`, `join`, `statSync`, `readFileSync`, `now` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/health.rst b/docs/sphinx/modules/verae-fleet/health.rst new file mode 100644 index 0000000..7f4d491 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/health.rst @@ -0,0 +1,7 @@ +verae-fleet.health +================== + +Generated API sheet for ``verae-fleet/health``. + +.. include:: health.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/load.md b/docs/sphinx/modules/verae-fleet/load.md new file mode 100644 index 0000000..085d851 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/load.md @@ -0,0 +1,45 @@ +# `verae-fleet/load` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/load.js` +**Lines:** 95 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`FLEET_ROOT`, `readJson`, `loadFleet`, `listServices` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `readJson` | `file` | — | `unknown` | see Call graph | +| `loadFleet` | `root = FLEET_ROOT, opts = {}` | root: `string` | `unknown` | see Call graph | +| `listServices` | `loaded` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:fs` +- `node:path` +- `node:url` +- `./machines.js` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `resolve`, `readJson`, `parse`, `readFileSync`, `loadFleet`, `join`, `readdirSync`, `sort`, `endsWith`, `push`, `loadMachines`, `relative`, `listServices`, `values`, `map` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/load.rst b/docs/sphinx/modules/verae-fleet/load.rst new file mode 100644 index 0000000..660740d --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/load.rst @@ -0,0 +1,7 @@ +verae-fleet.load +================ + +Generated API sheet for ``verae-fleet/load``. + +.. include:: load.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/machines.md b/docs/sphinx/modules/verae-fleet/machines.md new file mode 100644 index 0000000..628911d --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/machines.md @@ -0,0 +1,47 @@ +# `verae-fleet/machines` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/machines.js` +**Lines:** 108 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`defaultMachines`, `loadMachines`, `normalizeMachine`, `upsertMachine`, `canHost`, `pickMachine`, `saveOverlay` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `defaultMachines` | `(none)` | — | `unknown` | see Call graph | +| `loadMachines` | `root, overlayPath` | — | `unknown` | see Call graph | +| `normalizeMachine` | `m` | — | `unknown` | see Call graph | +| `upsertMachine` | `list, spec` | — | `unknown` | see Call graph | +| `canHost` | `machine, serviceId, role` | — | `unknown` | see Call graph | +| `pickMachine` | `machines, instances, serviceId, role, exclude = []` | machines: `object[]`, serviceId: `string`, role: `string` | `unknown` | see Call graph | +| `saveOverlay` | `overlayPath, machines` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:fs` +- `node:path` + +## Call graph (identifiers invoked) + +`defaultMachines`, `plane`, `loadMachines`, `join`, `existsSync`, `parse`, `readFileSync`, `isArray`, `upsertMachine`, `assign`, `map`, `normalizeMachine`, `trim`, `findIndex`, `push`, `canHost`, `includes`, `capacity`, `pickMachine`, `filter`, `has`, `sort`, `localeCompare`, `find`, `saveOverlay`, `mkdirSync`, `dirname`, `writeFileSync`, `stringify` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/machines.rst b/docs/sphinx/modules/verae-fleet/machines.rst new file mode 100644 index 0000000..56a674c --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/machines.rst @@ -0,0 +1,7 @@ +verae-fleet.machines +==================== + +Generated API sheet for ``verae-fleet/machines``. + +.. include:: machines.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/monitor.md b/docs/sphinx/modules/verae-fleet/monitor.md new file mode 100644 index 0000000..40e720c --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/monitor.md @@ -0,0 +1,49 @@ +# `verae-fleet/monitor` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/monitor.js` +**Lines:** 39 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Monitor` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Monitor` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `supervisor, opts = {}` | +| `tick` | `(none)` | +| `start` | `(none)` | +| `stop` | `(none)` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`floors`, `import`, `constructor`, `tick`, `reconcile`, `toISOString`, `status`, `start`, `setInterval`, `log`, `stop`, `clearInterval` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/monitor.rst b/docs/sphinx/modules/verae-fleet/monitor.rst new file mode 100644 index 0000000..e2772ab --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/monitor.rst @@ -0,0 +1,7 @@ +verae-fleet.monitor +=================== + +Generated API sheet for ``verae-fleet/monitor``. + +.. include:: monitor.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/rtt.md b/docs/sphinx/modules/verae-fleet/rtt.md new file mode 100644 index 0000000..6ccc5b6 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/rtt.md @@ -0,0 +1,52 @@ +# `verae-fleet/rtt` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/rtt.js` +**Lines:** 58 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`RttWindow`, `summarizeRtt` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `RttWindow` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `summarizeRtt` | `samples` | samples: `number[]` | `unknown` | see Call graph | +| `percentile` | `sorted, p` | — | `unknown` | see Call graph | +| `round1` | `n` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `cap = 400` | +| `add` | `ms` | +| `stats` | `(none)` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`constructor`, `add`, `isFinite`, `push`, `splice`, `stats`, `summarizeRtt`, `filter`, `slice`, `sort`, `reduce`, `round1`, `percentile`, `floor`, `ceil`, `round` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/rtt.rst b/docs/sphinx/modules/verae-fleet/rtt.rst new file mode 100644 index 0000000..58833d6 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/rtt.rst @@ -0,0 +1,7 @@ +verae-fleet.rtt +=============== + +Generated API sheet for ``verae-fleet/rtt``. + +.. include:: rtt.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/server.md b/docs/sphinx/modules/verae-fleet/server.md new file mode 100644 index 0000000..35986c3 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/server.md @@ -0,0 +1,46 @@ +# `verae-fleet/server` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/server.js` +**Lines:** 146 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`startControlServer` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `json` | `res, code, obj` | — | `unknown` | see Call graph | +| `startControlServer` | `sup, mon` | sup: `import('./supervisor.js').Supervisor`, mon: `import('./monitor.js').Monitor` | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:url` +- `./load.js` +- `../../verae-zapier-simulator/src/pipeline.js` + +## Call graph (identifiers invoked) + +`join`, `dirname`, `fileURLToPath`, `json`, `writeHead`, `end`, `stringify`, `import`, `startControlServer`, `createServer`, `async`, `snapshot`, `reset`, `push`, `parse`, `concat`, `toString`, `run`, `listServices`, `status`, `addMachine`, `match`, `checkMachine`, `setMachineEnabled`, `reconcile`, `startService`, `stopService`, `pauseService`, `resumeService`, `fn`, `pauseInstance`, `resumeInstance`, `restartInstance`, `stopInstance`, `markUnhealthy`, `createReadStream`, `pipe`, `startsWith`, `normalize`, `existsSync`, `statSync`, `isFile`, `extname`, `toLowerCase`, `listen`, `write` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/server.rst b/docs/sphinx/modules/verae-fleet/server.rst new file mode 100644 index 0000000..c0da59c --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/server.rst @@ -0,0 +1,7 @@ +verae-fleet.server +================== + +Generated API sheet for ``verae-fleet/server``. + +.. include:: server.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/ssh.md b/docs/sphinx/modules/verae-fleet/ssh.md new file mode 100644 index 0000000..d6bff8d --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/ssh.md @@ -0,0 +1,55 @@ +# `verae-fleet/ssh` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/ssh.js` +**Lines:** 171 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`expandHome`, `shellQuote`, `sshTarget`, `sshBaseArgs`, `scpBaseArgs`, `sshExec`, `scpTo`, `ensureRemoteRuntime`, `sshSpawnWorker`, `sshKillWorker`, `sshHttp`, `sshCheck` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `expandHome` | `p` | — | `unknown` | see Call graph | +| `shellQuote` | `s` | — | `unknown` | see Call graph | +| `sshTarget` | `machine` | — | `unknown` | see Call graph | +| `sshBaseArgs` | `machine` | — | `unknown` | see Call graph | +| `scpBaseArgs` | `machine` | — | `unknown` | see Call graph | +| `sshExec` | `machine, remoteCommand, { timeoutMs = 20000 } = {}` | — | `unknown` | see Call graph | +| `scpTo` | `machine, localFiles, remoteDir` | — | `unknown` | see Call graph | +| `ensureRemoteRuntime` | `machine` | — | `unknown` | see Call graph | +| `sshSpawnWorker` | `machine, { instance, env }` | — | `unknown` | see Call graph | +| `sshKillWorker` | `machine, pid, instance` | — | `unknown` | see Call graph | +| `sshHttp` | `machine, method, urlPath, { port, body } = {}` | — | `unknown` | see Call graph | +| `sshCheck` | `machine` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:child_process` +- `node:fs` +- `node:os` +- `node:path` +- `node:url` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `expandHome`, `homedir`, `startsWith`, `join`, `slice`, `shellQuote`, `replace`, `sshTarget`, `sshBaseArgs`, `existsSync`, `push`, `scpBaseArgs`, `sshExec`, `spawn`, `on`, `setTimeout`, `kill`, `reject`, `clearTimeout`, `concat`, `toString`, `trim`, `resolve`, `scpTo`, `ensureRemoteRuntime`, `has`, `add`, `sshSpawnWorker`, `entries`, `filter`, `map`, `split`, `pop`, `isFinite`, `sshKillWorker`, `sshHttp`, `stringify`, `parse`, `sshCheck` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/ssh.rst b/docs/sphinx/modules/verae-fleet/ssh.rst new file mode 100644 index 0000000..124b8b3 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/ssh.rst @@ -0,0 +1,7 @@ +verae-fleet.ssh +=============== + +Generated API sheet for ``verae-fleet/ssh``. + +.. include:: ssh.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/supervisor.md b/docs/sphinx/modules/verae-fleet/supervisor.md new file mode 100644 index 0000000..d810429 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/supervisor.md @@ -0,0 +1,82 @@ +# `verae-fleet/supervisor` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/supervisor.js` +**Lines:** 511 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`Supervisor` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Supervisor` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `waitExit` | `child, ms` | — | `unknown` | see Call graph | +| `waitForHealth` | `rec, ms` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `opts = {}` | +| `machines` | `(none)` | +| `addMachine` | `spec` | +| `setMachineEnabled` | `id, enabled` | +| `checkMachine` | `id` | +| `machineOf` | `rec` | +| `controlInstance` | `rec, pathname, body` | +| `log` | `type, detail` | +| `spec` | `serviceId` | +| `nextIndex` | `serviceId` | +| `startOne` | `serviceId, opts = {}` | +| `stopInstance` | `instanceId, { replace = true } = {}` | +| `pauseInstance` | `instanceId, { replace = true } = {}` | +| `resumeInstance` | `instanceId` | +| `restartInstance` | `instanceId` | +| `markUnhealthy` | `instanceId` | +| `probe` | `rec` | +| `available` | `serviceId` | +| `reconcile` | `only` | +| `startService` | `serviceId` | +| `stopService` | `serviceId, { holdFloor = false } = {}` | +| `pauseService` | `serviceId` | +| `resumeService` | `serviceId` | +| `stopAll` | `(none)` | +| `status` | `(none)` | + +## What it imports / requires + +- `node:child_process` +- `node:fs` +- `node:path` +- `node:url` +- `./load.js` +- `./health.js` +- `./classify.js` +- `./machines.js` +- `./rtt.js` +- `./ssh.js` + +## Call graph (identifiers invoked) + +`floor`, `join`, `dirname`, `fileURLToPath`, `constructor`, `loadFleet`, `mkdirSync`, `isArray`, `machines`, `addMachine`, `upsertMachine`, `saveOverlay`, `log`, `setMachineEnabled`, `find`, `checkMachine`, `sshCheck`, `httpProbe`, `machineOf`, `controlInstance`, `sshHttp`, `postControl`, `toISOString`, `push`, `splice`, `spec`, `nextIndex`, `values`, `filter`, `map`, `has`, `startOne`, `get`, `pickMachine`, `sshSpawnWorker`, `spawn`, `now`, `on`, `set`, `waitForHealth`, `stopInstance`, `sshKillWorker`, `kill`, `waitExit`, `delete`, `reconcile`, `pauseInstance`, `resumeInstance`, `restartInstance`, `markUnhealthy`, `probe`, `isFinite`, `summarizeRtt`, `available`, `keys`, `min`, `startService`, `stopService`, `pauseService`, `resumeService` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/supervisor.rst b/docs/sphinx/modules/verae-fleet/supervisor.rst new file mode 100644 index 0000000..5f828b4 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/supervisor.rst @@ -0,0 +1,7 @@ +verae-fleet.supervisor +====================== + +Generated API sheet for ``verae-fleet/supervisor``. + +.. include:: supervisor.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-fleet/worker.md b/docs/sphinx/modules/verae-fleet/worker.md new file mode 100644 index 0000000..d7d537c --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/worker.md @@ -0,0 +1,57 @@ +# `verae-fleet/worker` + +**Package:** `verae-fleet` +**Source:** `packages/verae-fleet/src/worker.js` +**Lines:** 154 + +## What this module is + +Implementation module in `verae-fleet`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `processMessage` | `(none)` | — | `unknown` | see Call graph | +| `snapshot` | `(none)` | — | `unknown` | see Call graph | +| `beat` | `(none)` | — | `unknown` | see Call graph | +| `shutdown` | `(none)` | — | `unknown` | see Call graph | +| `json` | `code, obj` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `json` | `404, { error: 'not found' }` | +| `beat` | `(none)` | +| `clearInterval` | `iv` | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:crypto` +- `node:url` +- `./rtt.js` + +## Call graph (identifiers invoked) + +`join`, `cwd`, `toISOString`, `mkdirSync`, `resolve`, `dirname`, `fileURLToPath`, `import`, `put`, `query`, `processMessage`, `bigint`, `randomBytes`, `createHash`, `update`, `digest`, `add`, `snapshot`, `stats`, `beat`, `now`, `writeFileSync`, `stringify`, `createServer`, `writeHead`, `end`, `json`, `slice`, `listen`, `write`, `setInterval`, `max`, `round`, `shutdown`, `clearInterval`, `close`, `exit`, `on` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-fleet/worker.rst b/docs/sphinx/modules/verae-fleet/worker.rst new file mode 100644 index 0000000..0872545 --- /dev/null +++ b/docs/sphinx/modules/verae-fleet/worker.rst @@ -0,0 +1,7 @@ +verae-fleet.worker +================== + +Generated API sheet for ``verae-fleet/worker``. + +.. include:: worker.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-nats-process/handle.md b/docs/sphinx/modules/verae-nats-process/handle.md new file mode 100644 index 0000000..70a94a8 --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/handle.md @@ -0,0 +1,40 @@ +# `verae-nats-process/handle` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/handle.js` +**Lines:** 21 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`handle` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `handle` | `msg = {}` | msg: `object` | `Promise|object` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`handle`, `toISOString` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-nats-process/handle.rst b/docs/sphinx/modules/verae-nats-process/handle.rst new file mode 100644 index 0000000..d1a42d0 --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/handle.rst @@ -0,0 +1,7 @@ +verae-nats-process.handle +========================= + +Generated API sheet for ``verae-nats-process/handle``. + +.. include:: handle.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-nats-process/subjects.md b/docs/sphinx/modules/verae-nats-process/subjects.md new file mode 100644 index 0000000..e3f2119 --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/subjects.md @@ -0,0 +1,38 @@ +# `verae-nats-process/subjects` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/subjects.js` +**Lines:** 14 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`AREA`, `RESOURCE`, `SUBJECTS` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +_No top-level functions extracted._ + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`freeze` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-nats-process/subjects.rst b/docs/sphinx/modules/verae-nats-process/subjects.rst new file mode 100644 index 0000000..f3128cd --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/subjects.rst @@ -0,0 +1,7 @@ +verae-nats-process.subjects +=========================== + +Generated API sheet for ``verae-nats-process/subjects``. + +.. include:: subjects.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-nats-process/worker.md b/docs/sphinx/modules/verae-nats-process/worker.md new file mode 100644 index 0000000..d912ec4 --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/worker.md @@ -0,0 +1,49 @@ +# `verae-nats-process/worker` + +**Package:** `verae-nats-process` +**Source:** `packages/verae-nats-process/src/worker.js` +**Lines:** 71 + +## What this module is + +Implementation module in `verae-nats-process`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `snapshot` | `(none)` | — | `unknown` | see Call graph | +| `json` | `code, obj` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `json` | `404, { error: 'not found' }` | + +## What it imports / requires + +- `node:http` +- `./subjects.js` +- `./handle.js` + +## Call graph (identifiers invoked) + +`snapshot`, `createServer`, `async`, `writeHead`, `end`, `stringify`, `json`, `push`, `parse`, `concat`, `toString`, `handle`, `reply`, `listen`, `write`, `on`, `close`, `exit` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-nats-process/worker.rst b/docs/sphinx/modules/verae-nats-process/worker.rst new file mode 100644 index 0000000..d1e4912 --- /dev/null +++ b/docs/sphinx/modules/verae-nats-process/worker.rst @@ -0,0 +1,7 @@ +verae-nats-process.worker +========================= + +Generated API sheet for ``verae-nats-process/worker``. + +.. include:: worker.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-request-splitter/splitRequest.md b/docs/sphinx/modules/verae-request-splitter/splitRequest.md new file mode 100644 index 0000000..7b4c46b --- /dev/null +++ b/docs/sphinx/modules/verae-request-splitter/splitRequest.md @@ -0,0 +1,42 @@ +# `verae-request-splitter/splitRequest` + +**Package:** `verae-request-splitter` +**Source:** `packages/verae-request-splitter/src/splitRequest.js` +**Lines:** 72 + +## What this module is + +Implementation module in `verae-request-splitter`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`sha256Hex`, `splitRequest` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `sha256Hex` | `data` | data: `string` | `string` | see Call graph | +| `splitRequest` | `body = {}` | body: `object` | `{ + * chain: { sha256: string, hashAlg: string, data?: string ` — , | see Call graph | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`sha256Hex`, `createHash`, `update`, `digest`, `splitRequest`, `toLowerCase`, `keys`, `push`, `isArray`, `from`, `toString` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-request-splitter/splitRequest.rst b/docs/sphinx/modules/verae-request-splitter/splitRequest.rst new file mode 100644 index 0000000..435621c --- /dev/null +++ b/docs/sphinx/modules/verae-request-splitter/splitRequest.rst @@ -0,0 +1,7 @@ +verae-request-splitter.splitRequest +=================================== + +Generated API sheet for ``verae-request-splitter/splitRequest``. + +.. include:: splitRequest.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-tree-node/merkle.md b/docs/sphinx/modules/verae-tree-node/merkle.md new file mode 100644 index 0000000..ef09cd9 --- /dev/null +++ b/docs/sphinx/modules/verae-tree-node/merkle.md @@ -0,0 +1,45 @@ +# `verae-tree-node/merkle` + +**Package:** `verae-tree-node` +**Source:** `packages/verae-tree-node/src/merkle.js` +**Lines:** 97 + +## What this module is + +Implementation module in `verae-tree-node`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`sha256Hex`, `parentHash`, `buildMerkle`, `merkleProof`, `verifyProof`, `shardIndex` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `sha256Hex` | `data` | data: `string|Buffer|Uint8Array` | `string` — lowercase hex | see Call graph | +| `parentHash` | `left, right` | left: `string`, right: `string` | `unknown` | see Call graph | +| `buildMerkle` | `leaves` | leaves: `string[]` | `{ root: string, layers: string[][], leaves: string[] ` — } | see Call graph | +| `merkleProof` | `layers, index` | layers: `string[][]`, index: `number` | `Array<{ sibling: string, position: 'left'|'right' ` — >} | see Call graph | +| `verifyProof` | `leaf, proof, root` | leaf: `string`, root: `string` | `unknown` | see Call graph | +| `shardIndex` | `sha256, n` | sha256: `string`, n: `number` | `unknown` | see Call graph | + +## What it imports / requires + +- `node:crypto` + +## Call graph (identifiers invoked) + +`sha256Hex`, `isBuffer`, `from`, `createHash`, `update`, `digest`, `children`, `duplicated`, `parentHash`, `buildMerkle`, `map`, `toLowerCase`, `push`, `merkleProof`, `floor`, `verifyProof`, `nodes`, `shardIndex`, `slice`, `readUInt32BE` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-tree-node/merkle.rst b/docs/sphinx/modules/verae-tree-node/merkle.rst new file mode 100644 index 0000000..d06b568 --- /dev/null +++ b/docs/sphinx/modules/verae-tree-node/merkle.rst @@ -0,0 +1,7 @@ +verae-tree-node.merkle +====================== + +Generated API sheet for ``verae-tree-node/merkle``. + +.. include:: merkle.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/app.rst b/docs/sphinx/modules/verae-zapier-middleware/app.rst index 935eb76..65d33f1 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/app.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/app.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.app Generated API sheet for ``verae-zapier-middleware/app``. .. include:: app.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/clients/veraeClient.rst b/docs/sphinx/modules/verae-zapier-middleware/clients/veraeClient.rst index f4e2dca..b6d2129 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/clients/veraeClient.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/clients/veraeClient.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.clients.veraeClient Generated API sheet for ``verae-zapier-middleware/clients/veraeClient``. .. include:: veraeClient.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/config.rst b/docs/sphinx/modules/verae-zapier-middleware/config.rst index b17cbc6..5467b2b 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/config.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/config.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.config Generated API sheet for ``verae-zapier-middleware/config``. .. include:: config.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/config.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/config.rst index 8f0f3bd..7af6547 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/config.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/config.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.config Generated API sheet for ``verae-zapier-middleware/debug/config``. .. include:: config.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/index.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/index.rst index bd2db4a..821e908 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/index.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/index.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.index Generated API sheet for ``verae-zapier-middleware/debug/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/logger.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/logger.rst index 48ef2aa..9f560b6 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/logger.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/logger.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.logger Generated API sheet for ``verae-zapier-middleware/debug/logger``. .. include:: logger.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/redact.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/redact.rst index 9ef67ab..74b0f31 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/redact.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/redact.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.redact Generated API sheet for ``verae-zapier-middleware/debug/redact``. .. include:: redact.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/trace-context.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/trace-context.rst index b806799..0717e01 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/trace-context.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/trace-context.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.trace-context Generated API sheet for ``verae-zapier-middleware/debug/trace-context``. .. include:: trace-context.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/debug/trace.rst b/docs/sphinx/modules/verae-zapier-middleware/debug/trace.rst index 5a23398..971174e 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/debug/trace.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/debug/trace.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.debug.trace Generated API sheet for ``verae-zapier-middleware/debug/trace``. .. include:: trace.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/errors.rst b/docs/sphinx/modules/verae-zapier-middleware/errors.rst index d1df032..72994cd 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/errors.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/errors.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.errors Generated API sheet for ``verae-zapier-middleware/errors``. .. include:: errors.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/index.rst b/docs/sphinx/modules/verae-zapier-middleware/index.rst index 3df4ccf..6866a56 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/index.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/index.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.index Generated API sheet for ``verae-zapier-middleware/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/lib/receiptPdf.rst b/docs/sphinx/modules/verae-zapier-middleware/lib/receiptPdf.rst index 012a299..343fe07 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/lib/receiptPdf.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/lib/receiptPdf.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.lib.receiptPdf Generated API sheet for ``verae-zapier-middleware/lib/receiptPdf``. .. include:: receiptPdf.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/lib/tokens.rst b/docs/sphinx/modules/verae-zapier-middleware/lib/tokens.rst index d6f9249..52119c7 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/lib/tokens.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/lib/tokens.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.lib.tokens Generated API sheet for ``verae-zapier-middleware/lib/tokens``. .. include:: tokens.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/middleware/authenticate.rst b/docs/sphinx/modules/verae-zapier-middleware/middleware/authenticate.rst index b036167..823df3c 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/middleware/authenticate.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/middleware/authenticate.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.middleware.authenticate Generated API sheet for ``verae-zapier-middleware/middleware/authenticate``. .. include:: authenticate.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/middleware/rateLimit.rst b/docs/sphinx/modules/verae-zapier-middleware/middleware/rateLimit.rst index c2b64f8..6068b92 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/middleware/rateLimit.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/middleware/rateLimit.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.middleware.rateLimit Generated API sheet for ``verae-zapier-middleware/middleware/rateLimit``. .. include:: rateLimit.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/nats/connection.rst b/docs/sphinx/modules/verae-zapier-middleware/nats/connection.rst index f0f2041..837cbf4 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/nats/connection.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/nats/connection.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.nats.connection Generated API sheet for ``verae-zapier-middleware/nats/connection``. .. include:: connection.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/nats/publishers.rst b/docs/sphinx/modules/verae-zapier-middleware/nats/publishers.rst index 7afca70..3ed6c20 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/nats/publishers.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/nats/publishers.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.nats.publishers Generated API sheet for ``verae-zapier-middleware/nats/publishers``. .. include:: publishers.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.md b/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.md index 4372f77..7c37d07 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.md +++ b/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/nats/subjects.js` -**Lines:** 44 +**Lines:** 48 ## What this module is @@ -26,7 +26,7 @@ _No imports detected._ ## Call graph (identifiers invoked) -`freeze`, `names` +`freeze`, `node`, `names` Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s MD for parameter and return types. diff --git a/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.rst b/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.rst index 2b91077..7d385cb 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/nats/subjects.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.nats.subjects Generated API sheet for ``verae-zapier-middleware/nats/subjects``. .. include:: subjects.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/nats/wait.rst b/docs/sphinx/modules/verae-zapier-middleware/nats/wait.rst index 6a67058..d6af7a3 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/nats/wait.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/nats/wait.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.nats.wait Generated API sheet for ``verae-zapier-middleware/nats/wait``. .. include:: wait.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/authRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/authRoutes.rst index 9be6fd9..8f62235 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/authRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/authRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.authRoutes Generated API sheet for ``verae-zapier-middleware/routes/authRoutes``. .. include:: authRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.md b/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.md index 15d8f24..d1c23a1 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.md +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/routes/hashRoutes.js` -**Lines:** 22 +**Lines:** 24 ## What this module is diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.rst index f613d99..22d95de 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/hashRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.hashRoutes Generated API sheet for ``verae-zapier-middleware/routes/hashRoutes``. .. include:: hashRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/index.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/index.rst index ac0ec90..da6444f 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/index.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/index.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.index Generated API sheet for ``verae-zapier-middleware/routes/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/objectRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/objectRoutes.rst index f4f51f4..00b3daa 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/objectRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/objectRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.objectRoutes Generated API sheet for ``verae-zapier-middleware/routes/objectRoutes``. .. include:: objectRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/receiptRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/receiptRoutes.rst index 5986952..9f74613 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/receiptRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/receiptRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.receiptRoutes Generated API sheet for ``verae-zapier-middleware/routes/receiptRoutes``. .. include:: receiptRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/statusRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/statusRoutes.rst index cd9201d..1611e0c 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/statusRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/statusRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.statusRoutes Generated API sheet for ``verae-zapier-middleware/routes/statusRoutes``. .. include:: statusRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/tenantRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/tenantRoutes.rst index e3d0a92..f4e5837 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/tenantRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/tenantRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.tenantRoutes Generated API sheet for ``verae-zapier-middleware/routes/tenantRoutes``. .. include:: tenantRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/timestampRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/timestampRoutes.rst index 0c6a8ac..a8360d6 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/timestampRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/timestampRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.timestampRoutes Generated API sheet for ``verae-zapier-middleware/routes/timestampRoutes``. .. include:: timestampRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/verifyRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/verifyRoutes.rst index 18f1a22..18a694b 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/verifyRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/verifyRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.verifyRoutes Generated API sheet for ``verae-zapier-middleware/routes/verifyRoutes``. .. include:: verifyRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/routes/webhookRoutes.rst b/docs/sphinx/modules/verae-zapier-middleware/routes/webhookRoutes.rst index 8e4bd78..b23a3c2 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/routes/webhookRoutes.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/routes/webhookRoutes.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.routes.webhookRoutes Generated API sheet for ``verae-zapier-middleware/routes/webhookRoutes``. .. include:: webhookRoutes.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/authService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/authService.rst index 03c8a10..d7a00a8 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/authService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/authService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.authService Generated API sheet for ``verae-zapier-middleware/services/authService``. .. include:: authService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/entitlementService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/entitlementService.rst index 28f3f04..8e083db 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/entitlementService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/entitlementService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.entitlementService Generated API sheet for ``verae-zapier-middleware/services/entitlementService``. .. include:: entitlementService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/tenantService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/tenantService.rst index 187ac80..39240c1 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/tenantService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/tenantService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.tenantService Generated API sheet for ``verae-zapier-middleware/services/tenantService``. .. include:: tenantService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.md b/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.md index d0a6552..925a3f9 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.md +++ b/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier-middleware` **Source:** `packages/verae-zapier-middleware/src/services/timestampService.js` -**Lines:** 160 +**Lines:** 170 ## What this module is @@ -27,7 +27,7 @@ _None extracted._ | `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 | +| `lookupHash` | `ctx, sha256, opts = {}` | ctx: `object`, sha256: `string` | `unknown` | see Call graph | ## Methods (class / object) diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.rst index c60c86f..cf97d4a 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/timestampService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.timestampService Generated API sheet for ``verae-zapier-middleware/services/timestampService``. .. include:: timestampService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/verifyService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/verifyService.rst index 5327aba..e5f1dc7 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/verifyService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/verifyService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.verifyService Generated API sheet for ``verae-zapier-middleware/services/verifyService``. .. include:: verifyService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/services/webhookService.rst b/docs/sphinx/modules/verae-zapier-middleware/services/webhookService.rst index 12c6fd3..49fd978 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/services/webhookService.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/services/webhookService.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.services.webhookService Generated API sheet for ``verae-zapier-middleware/services/webhookService``. .. include:: webhookService.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/blobs.rst b/docs/sphinx/modules/verae-zapier-middleware/store/blobs.rst index 1015a1c..4b373cc 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/blobs.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/blobs.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.blobs Generated API sheet for ``verae-zapier-middleware/store/blobs``. .. include:: blobs.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/db.rst b/docs/sphinx/modules/verae-zapier-middleware/store/db.rst index d922028..f518233 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/db.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/db.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.db Generated API sheet for ``verae-zapier-middleware/store/db``. .. include:: db.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/jobWatchers.rst b/docs/sphinx/modules/verae-zapier-middleware/store/jobWatchers.rst index d5001c3..def3af4 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/jobWatchers.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/jobWatchers.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.jobWatchers Generated API sheet for ``verae-zapier-middleware/store/jobWatchers``. .. include:: jobWatchers.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/tenants.rst b/docs/sphinx/modules/verae-zapier-middleware/store/tenants.rst index af7531c..8407e10 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/tenants.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/tenants.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.tenants Generated API sheet for ``verae-zapier-middleware/store/tenants``. .. include:: tenants.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/usage.rst b/docs/sphinx/modules/verae-zapier-middleware/store/usage.rst index 297fbe8..e209dee 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/usage.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/usage.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.usage Generated API sheet for ``verae-zapier-middleware/store/usage``. .. include:: usage.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/store/webhooks.rst b/docs/sphinx/modules/verae-zapier-middleware/store/webhooks.rst index 09581aa..947b436 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/store/webhooks.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/store/webhooks.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.store.webhooks Generated API sheet for ``verae-zapier-middleware/store/webhooks``. .. include:: webhooks.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/workers/inProcessJobPoller.rst b/docs/sphinx/modules/verae-zapier-middleware/workers/inProcessJobPoller.rst index 0df296c..052dbfd 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/workers/inProcessJobPoller.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/workers/inProcessJobPoller.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.workers.inProcessJobPoller Generated API sheet for ``verae-zapier-middleware/workers/inProcessJobPoller``. .. include:: inProcessJobPoller.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/workers/jobPollerWorker.rst b/docs/sphinx/modules/verae-zapier-middleware/workers/jobPollerWorker.rst index ceee7fb..9448ae8 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/workers/jobPollerWorker.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/workers/jobPollerWorker.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.workers.jobPollerWorker Generated API sheet for ``verae-zapier-middleware/workers/jobPollerWorker``. .. include:: jobPollerWorker.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-middleware/workers/webhookWorker.rst b/docs/sphinx/modules/verae-zapier-middleware/workers/webhookWorker.rst index 627c86c..61a6da4 100644 --- a/docs/sphinx/modules/verae-zapier-middleware/workers/webhookWorker.rst +++ b/docs/sphinx/modules/verae-zapier-middleware/workers/webhookWorker.rst @@ -4,4 +4,4 @@ verae-zapier-middleware.workers.webhookWorker Generated API sheet for ``verae-zapier-middleware/workers/webhookWorker``. .. include:: webhookWorker.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-simulator/monitors.md b/docs/sphinx/modules/verae-zapier-simulator/monitors.md new file mode 100644 index 0000000..2d75a01 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/monitors.md @@ -0,0 +1,40 @@ +# `verae-zapier-simulator/monitors` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/monitors.js` +**Lines:** 221 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`analyze` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `analyze` | `events, ctx = {}` | events: `object[]`, ctx: `object` | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`check`, `filter`, `startsWith`, `includes`, `keys`, `join`, `broadcast`, `hop`, `analyze`, `push`, `map`, `find`, `some` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-zapier-simulator/monitors.rst b/docs/sphinx/modules/verae-zapier-simulator/monitors.rst new file mode 100644 index 0000000..587902f --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/monitors.rst @@ -0,0 +1,7 @@ +verae-zapier-simulator.monitors +=============================== + +Generated API sheet for ``verae-zapier-simulator/monitors``. + +.. include:: monitors.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-simulator/pipeline.md b/docs/sphinx/modules/verae-zapier-simulator/pipeline.md new file mode 100644 index 0000000..9a705ab --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/pipeline.md @@ -0,0 +1,58 @@ +# `verae-zapier-simulator/pipeline` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/pipeline.js` +**Lines:** 883 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`ACTIONS`, `Simulator` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `Simulator` | + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `redact` | `obj` | — | `unknown` | see Call graph | +| `sleep` | `ms` | — | `unknown` | see Call graph | + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `(none)` | +| `reset` | `(none)` | +| `snapshot` | `(none)` | +| `run` | `req` | + +## What it imports / requires + +- `node:crypto` +- `../../verae-request-splitter/src/splitRequest.js` +- `../../verae-archive-worm/src/archive.js` +- `../../verae-archive-aggregator/src/aggregate.js` +- `../../verae-tree-node/src/merkle.js` +- `./trace.js` +- `./monitors.js` + +## Call graph (identifiers invoked) + +`setTimeout`, `up`, `app`, `constructor`, `reset`, `snapshot`, `map`, `keys`, `values`, `run`, `emit`, `redact`, `perform`, `signup`, `finish`, `connect`, `edgeAuth`, `meter`, `timestamp`, `lookup`, `batch`, `verify`, `assign`, `analyze`, `randomUUID`, `replace`, `slice`, `push`, `authentication`, `at`, `find`, `splitRequest`, `archivePuts`, `get`, `net`, `maybeDelay`, `seal`, `toISOString`, `queryArchives`, `mergeReceipts`, `filter`, `sha256Hex`, `toLowerCase`, `test`, `verifyProof`, `isArray`, `split`, `trim`, `buildMerkle`, `shardIndex`, `merkleProof`, `put`, `endsWith`, `query`, `includes`, `aggregateAttached`, `set`, `now`, `sleep` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-zapier-simulator/pipeline.rst b/docs/sphinx/modules/verae-zapier-simulator/pipeline.rst new file mode 100644 index 0000000..67566c4 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/pipeline.rst @@ -0,0 +1,7 @@ +verae-zapier-simulator.pipeline +=============================== + +Generated API sheet for ``verae-zapier-simulator/pipeline``. + +.. include:: pipeline.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-simulator/server.md b/docs/sphinx/modules/verae-zapier-simulator/server.md new file mode 100644 index 0000000..ab03284 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/server.md @@ -0,0 +1,45 @@ +# `verae-zapier-simulator/server` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/server.js` +**Lines:** 87 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +_No named `export` / `module.exports` keys detected._ + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `send` | `res, code, body, type = 'application/json; charset=utf-8'` | — | `unknown` | see Call graph | +| `readBody` | `req` | — | `unknown` | see Call graph | + +## What it imports / requires + +- `node:http` +- `node:fs` +- `node:path` +- `node:url` +- `./pipeline.js` + +## Call graph (identifiers invoked) + +`dirname`, `fileURLToPath`, `join`, `send`, `stringify`, `writeHead`, `end`, `readBody`, `on`, `push`, `concat`, `toString`, `resolve`, `parse`, `reject`, `createServer`, `async`, `snapshot`, `reset`, `run`, `normalize`, `startsWith`, `existsSync`, `statSync`, `isDirectory`, `extname`, `createReadStream`, `pipe`, `listen`, `write` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-zapier-simulator/server.rst b/docs/sphinx/modules/verae-zapier-simulator/server.rst new file mode 100644 index 0000000..c49d320 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/server.rst @@ -0,0 +1,7 @@ +verae-zapier-simulator.server +============================= + +Generated API sheet for ``verae-zapier-simulator/server``. + +.. include:: server.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier-simulator/trace.md b/docs/sphinx/modules/verae-zapier-simulator/trace.md new file mode 100644 index 0000000..dda8e59 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/trace.md @@ -0,0 +1,48 @@ +# `verae-zapier-simulator/trace` + +**Package:** `verae-zapier-simulator` +**Source:** `packages/verae-zapier-simulator/src/trace.js` +**Lines:** 45 + +## What this module is + +Implementation module in `verae-zapier-simulator`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`TraceBus` + +## Types / interfaces / classes + +| Kind | Name | +|------|------| +| class | `TraceBus` | + +## Functions + +_No top-level functions extracted._ + +## Methods (class / object) + +| Name | Parameters | +|------|------------| +| `constructor` | `(none)` | +| `now` | `(none)` | +| `emit` | `e` | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`constructor`, `now`, `emit`, `push` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-zapier-simulator/trace.rst b/docs/sphinx/modules/verae-zapier-simulator/trace.rst new file mode 100644 index 0000000..750dae2 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier-simulator/trace.rst @@ -0,0 +1,7 @@ +verae-zapier-simulator.trace +============================ + +Generated API sheet for ``verae-zapier-simulator/trace``. + +.. include:: trace.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/authentication.rst b/docs/sphinx/modules/verae-zapier/authentication.rst index 77fb4af..1701826 100644 --- a/docs/sphinx/modules/verae-zapier/authentication.rst +++ b/docs/sphinx/modules/verae-zapier/authentication.rst @@ -4,4 +4,4 @@ verae-zapier.authentication Generated API sheet for ``verae-zapier/authentication``. .. include:: authentication.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/creates/add_numbers.rst b/docs/sphinx/modules/verae-zapier/creates/add_numbers.rst index 3643516..70b3e4b 100644 --- a/docs/sphinx/modules/verae-zapier/creates/add_numbers.rst +++ b/docs/sphinx/modules/verae-zapier/creates/add_numbers.rst @@ -4,4 +4,4 @@ verae-zapier.creates.add_numbers Generated API sheet for ``verae-zapier/creates/add_numbers``. .. include:: add_numbers.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/creates/batch_timestamp.rst b/docs/sphinx/modules/verae-zapier/creates/batch_timestamp.rst index 789bce3..b5053d8 100644 --- a/docs/sphinx/modules/verae-zapier/creates/batch_timestamp.rst +++ b/docs/sphinx/modules/verae-zapier/creates/batch_timestamp.rst @@ -4,4 +4,4 @@ verae-zapier.creates.batch_timestamp Generated API sheet for ``verae-zapier/creates/batch_timestamp``. .. include:: batch_timestamp.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/creates/create_timestamp.rst b/docs/sphinx/modules/verae-zapier/creates/create_timestamp.rst index 75f0605..b29a9b0 100644 --- a/docs/sphinx/modules/verae-zapier/creates/create_timestamp.rst +++ b/docs/sphinx/modules/verae-zapier/creates/create_timestamp.rst @@ -4,4 +4,4 @@ verae-zapier.creates.create_timestamp Generated API sheet for ``verae-zapier/creates/create_timestamp``. .. include:: create_timestamp.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/creates/timestamp_and_wait.rst b/docs/sphinx/modules/verae-zapier/creates/timestamp_and_wait.rst index 4785be0..d60e95b 100644 --- a/docs/sphinx/modules/verae-zapier/creates/timestamp_and_wait.rst +++ b/docs/sphinx/modules/verae-zapier/creates/timestamp_and_wait.rst @@ -4,4 +4,4 @@ verae-zapier.creates.timestamp_and_wait Generated API sheet for ``verae-zapier/creates/timestamp_and_wait``. .. include:: timestamp_and_wait.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/creates/verify_timestamp.rst b/docs/sphinx/modules/verae-zapier/creates/verify_timestamp.rst index 7614e57..58951b3 100644 --- a/docs/sphinx/modules/verae-zapier/creates/verify_timestamp.rst +++ b/docs/sphinx/modules/verae-zapier/creates/verify_timestamp.rst @@ -4,4 +4,4 @@ verae-zapier.creates.verify_timestamp Generated API sheet for ``verae-zapier/creates/verify_timestamp``. .. include:: verify_timestamp.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/index.md b/docs/sphinx/modules/verae-zapier/index.md index d0a5fc0..16f1e2b 100644 --- a/docs/sphinx/modules/verae-zapier/index.md +++ b/docs/sphinx/modules/verae-zapier/index.md @@ -2,7 +2,7 @@ **Package:** `verae-zapier` **Source:** `packages/verae-zapier/index.js` -**Lines:** 81 +**Lines:** 83 ## What this module is @@ -33,6 +33,7 @@ _None extracted._ - `./creates/add_numbers` - `./searches/job_status` - `./searches/hash_lookup` +- `./searches/tree_lookup` - `./triggers/timestamp_completed` - `zapier-platform-core` - `./package.json` diff --git a/docs/sphinx/modules/verae-zapier/index.rst b/docs/sphinx/modules/verae-zapier/index.rst index 34e7fab..a074fd3 100644 --- a/docs/sphinx/modules/verae-zapier/index.rst +++ b/docs/sphinx/modules/verae-zapier/index.rst @@ -4,4 +4,4 @@ verae-zapier.index Generated API sheet for ``verae-zapier/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/searches/hash_lookup.rst b/docs/sphinx/modules/verae-zapier/searches/hash_lookup.rst index 0b31b5f..014b1a9 100644 --- a/docs/sphinx/modules/verae-zapier/searches/hash_lookup.rst +++ b/docs/sphinx/modules/verae-zapier/searches/hash_lookup.rst @@ -4,4 +4,4 @@ verae-zapier.searches.hash_lookup Generated API sheet for ``verae-zapier/searches/hash_lookup``. .. include:: hash_lookup.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/searches/job_status.rst b/docs/sphinx/modules/verae-zapier/searches/job_status.rst index 025a935..8907e32 100644 --- a/docs/sphinx/modules/verae-zapier/searches/job_status.rst +++ b/docs/sphinx/modules/verae-zapier/searches/job_status.rst @@ -4,4 +4,4 @@ verae-zapier.searches.job_status Generated API sheet for ``verae-zapier/searches/job_status``. .. include:: job_status.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/searches/tree_lookup.md b/docs/sphinx/modules/verae-zapier/searches/tree_lookup.md new file mode 100644 index 0000000..f68ee48 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier/searches/tree_lookup.md @@ -0,0 +1,41 @@ +# `verae-zapier/searches/tree_lookup` + +**Package:** `verae-zapier` +**Source:** `packages/verae-zapier/searches/tree_lookup.js` +**Lines:** 46 + +## What this module is + +Implementation module in `verae-zapier`. The tables below are extracted from the source (signatures + JSDoc). + +## Exports + +`key`, `noun`, `display`, `label`, `description`, `chain` + +## Types / interfaces / classes + +_None extracted._ + +## Functions + +| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) | +|------|------------|---------------------|---------|-----------------------------| +| `base` | `(none)` | — | `unknown` | see Call graph | +| `perform` | `z, bundle` | — | `unknown` | see Call graph | + +## What it imports / requires + +_No imports detected._ + +## Call graph (identifiers invoked) + +`async`, `encodeURIComponent`, `request`, `base`, `repeat` + +Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s 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`. + diff --git a/docs/sphinx/modules/verae-zapier/searches/tree_lookup.rst b/docs/sphinx/modules/verae-zapier/searches/tree_lookup.rst new file mode 100644 index 0000000..8841306 --- /dev/null +++ b/docs/sphinx/modules/verae-zapier/searches/tree_lookup.rst @@ -0,0 +1,7 @@ +verae-zapier.searches.tree_lookup +================================= + +Generated API sheet for ``verae-zapier/searches/tree_lookup``. + +.. include:: tree_lookup.md + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/verae-zapier/triggers/timestamp_completed.rst b/docs/sphinx/modules/verae-zapier/triggers/timestamp_completed.rst index d1c386e..9c3b824 100644 --- a/docs/sphinx/modules/verae-zapier/triggers/timestamp_completed.rst +++ b/docs/sphinx/modules/verae-zapier/triggers/timestamp_completed.rst @@ -4,4 +4,4 @@ verae-zapier.triggers.timestamp_completed Generated API sheet for ``verae-zapier/triggers/timestamp_completed``. .. include:: timestamp_completed.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/accounts.rst b/docs/sphinx/modules/zappier/accounts.rst index e0d2874..63ce2b6 100644 --- a/docs/sphinx/modules/zappier/accounts.rst +++ b/docs/sphinx/modules/zappier/accounts.rst @@ -4,4 +4,4 @@ zappier.accounts Generated API sheet for ``zappier/accounts``. .. include:: accounts.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/admin-users.rst b/docs/sphinx/modules/zappier/admin-users.rst index d193648..1032ff9 100644 --- a/docs/sphinx/modules/zappier/admin-users.rst +++ b/docs/sphinx/modules/zappier/admin-users.rst @@ -4,4 +4,4 @@ zappier.admin-users Generated API sheet for ``zappier/admin-users``. .. include:: admin-users.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/admin.rst b/docs/sphinx/modules/zappier/admin.rst index f79cfa7..f7e7b14 100644 --- a/docs/sphinx/modules/zappier/admin.rst +++ b/docs/sphinx/modules/zappier/admin.rst @@ -4,4 +4,4 @@ zappier.admin Generated API sheet for ``zappier/admin``. .. include:: admin.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/app.rst b/docs/sphinx/modules/zappier/app.rst index 4ce5bc1..71c612b 100644 --- a/docs/sphinx/modules/zappier/app.rst +++ b/docs/sphinx/modules/zappier/app.rst @@ -4,4 +4,4 @@ zappier.app Generated API sheet for ``zappier/app``. .. include:: app.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/auth.rst b/docs/sphinx/modules/zappier/auth.rst index ab4301d..cdaf8e8 100644 --- a/docs/sphinx/modules/zappier/auth.rst +++ b/docs/sphinx/modules/zappier/auth.rst @@ -4,4 +4,4 @@ zappier.auth Generated API sheet for ``zappier/auth``. .. include:: auth.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/billing/credit.rst b/docs/sphinx/modules/zappier/billing/credit.rst index 75564eb..d2c2ae4 100644 --- a/docs/sphinx/modules/zappier/billing/credit.rst +++ b/docs/sphinx/modules/zappier/billing/credit.rst @@ -4,4 +4,4 @@ zappier.billing.credit Generated API sheet for ``zappier/billing/credit``. .. include:: credit.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/billing/reload.rst b/docs/sphinx/modules/zappier/billing/reload.rst index 2165fb2..a2af4fa 100644 --- a/docs/sphinx/modules/zappier/billing/reload.rst +++ b/docs/sphinx/modules/zappier/billing/reload.rst @@ -4,4 +4,4 @@ zappier.billing.reload Generated API sheet for ``zappier/billing/reload``. .. include:: reload.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/billing/stripe.rst b/docs/sphinx/modules/zappier/billing/stripe.rst index 074ffea..2b2daae 100644 --- a/docs/sphinx/modules/zappier/billing/stripe.rst +++ b/docs/sphinx/modules/zappier/billing/stripe.rst @@ -4,4 +4,4 @@ zappier.billing.stripe Generated API sheet for ``zappier/billing/stripe``. .. include:: stripe.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/admin-user-repo.rst b/docs/sphinx/modules/zappier/db/admin-user-repo.rst index 1a9343a..58377e2 100644 --- a/docs/sphinx/modules/zappier/db/admin-user-repo.rst +++ b/docs/sphinx/modules/zappier/db/admin-user-repo.rst @@ -4,4 +4,4 @@ zappier.db.admin-user-repo Generated API sheet for ``zappier/db/admin-user-repo``. .. include:: admin-user-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/billing-repo.rst b/docs/sphinx/modules/zappier/db/billing-repo.rst index e695a3b..a9f992e 100644 --- a/docs/sphinx/modules/zappier/db/billing-repo.rst +++ b/docs/sphinx/modules/zappier/db/billing-repo.rst @@ -4,4 +4,4 @@ zappier.db.billing-repo Generated API sheet for ``zappier/db/billing-repo``. .. include:: billing-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/customer-repo.rst b/docs/sphinx/modules/zappier/db/customer-repo.rst index 9c5e12a..4cda4db 100644 --- a/docs/sphinx/modules/zappier/db/customer-repo.rst +++ b/docs/sphinx/modules/zappier/db/customer-repo.rst @@ -4,4 +4,4 @@ zappier.db.customer-repo Generated API sheet for ``zappier/db/customer-repo``. .. include:: customer-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/invoice-repo.rst b/docs/sphinx/modules/zappier/db/invoice-repo.rst index e8e64ff..a836247 100644 --- a/docs/sphinx/modules/zappier/db/invoice-repo.rst +++ b/docs/sphinx/modules/zappier/db/invoice-repo.rst @@ -4,4 +4,4 @@ zappier.db.invoice-repo Generated API sheet for ``zappier/db/invoice-repo``. .. include:: invoice-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/pricing-store.rst b/docs/sphinx/modules/zappier/db/pricing-store.rst index 84e54de..7b3b04b 100644 --- a/docs/sphinx/modules/zappier/db/pricing-store.rst +++ b/docs/sphinx/modules/zappier/db/pricing-store.rst @@ -4,4 +4,4 @@ zappier.db.pricing-store Generated API sheet for ``zappier/db/pricing-store``. .. include:: pricing-store.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/session-repo.rst b/docs/sphinx/modules/zappier/db/session-repo.rst index d56b715..aae80ce 100644 --- a/docs/sphinx/modules/zappier/db/session-repo.rst +++ b/docs/sphinx/modules/zappier/db/session-repo.rst @@ -4,4 +4,4 @@ zappier.db.session-repo Generated API sheet for ``zappier/db/session-repo``. .. include:: session-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/db/usage-repo.rst b/docs/sphinx/modules/zappier/db/usage-repo.rst index 3cd1ad0..a93dafc 100644 --- a/docs/sphinx/modules/zappier/db/usage-repo.rst +++ b/docs/sphinx/modules/zappier/db/usage-repo.rst @@ -4,4 +4,4 @@ zappier.db.usage-repo Generated API sheet for ``zappier/db/usage-repo``. .. include:: usage-repo.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/index.rst b/docs/sphinx/modules/zappier/index.rst index 60a3e8d..5e20b85 100644 --- a/docs/sphinx/modules/zappier/index.rst +++ b/docs/sphinx/modules/zappier/index.rst @@ -4,4 +4,4 @@ zappier.index Generated API sheet for ``zappier/index``. .. include:: index.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/invoicing.rst b/docs/sphinx/modules/zappier/invoicing.rst index 46b224d..f68b103 100644 --- a/docs/sphinx/modules/zappier/invoicing.rst +++ b/docs/sphinx/modules/zappier/invoicing.rst @@ -4,4 +4,4 @@ zappier.invoicing Generated API sheet for ``zappier/invoicing``. .. include:: invoicing.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/jobs/report-usage.rst b/docs/sphinx/modules/zappier/jobs/report-usage.rst index 6ceb01e..5277983 100644 --- a/docs/sphinx/modules/zappier/jobs/report-usage.rst +++ b/docs/sphinx/modules/zappier/jobs/report-usage.rst @@ -4,4 +4,4 @@ zappier.jobs.report-usage Generated API sheet for ``zappier/jobs/report-usage``. .. include:: report-usage.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/meter.rst b/docs/sphinx/modules/zappier/meter.rst index a82d076..5bb6da8 100644 --- a/docs/sphinx/modules/zappier/meter.rst +++ b/docs/sphinx/modules/zappier/meter.rst @@ -4,4 +4,4 @@ zappier.meter Generated API sheet for ``zappier/meter``. .. include:: meter.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/paths.rst b/docs/sphinx/modules/zappier/paths.rst index e14468a..94fed59 100644 --- a/docs/sphinx/modules/zappier/paths.rst +++ b/docs/sphinx/modules/zappier/paths.rst @@ -4,4 +4,4 @@ zappier.paths Generated API sheet for ``zappier/paths``. .. include:: paths.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/portal.rst b/docs/sphinx/modules/zappier/portal.rst index 428c64c..75b4463 100644 --- a/docs/sphinx/modules/zappier/portal.rst +++ b/docs/sphinx/modules/zappier/portal.rst @@ -4,4 +4,4 @@ zappier.portal Generated API sheet for ``zappier/portal``. .. include:: portal.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/pricing.rst b/docs/sphinx/modules/zappier/pricing.rst index d4ba23b..6a05ca5 100644 --- a/docs/sphinx/modules/zappier/pricing.rst +++ b/docs/sphinx/modules/zappier/pricing.rst @@ -4,4 +4,4 @@ zappier.pricing Generated API sheet for ``zappier/pricing``. .. include:: pricing.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/reports.rst b/docs/sphinx/modules/zappier/reports.rst index f885ece..14f06ef 100644 --- a/docs/sphinx/modules/zappier/reports.rst +++ b/docs/sphinx/modules/zappier/reports.rst @@ -4,4 +4,4 @@ zappier.reports Generated API sheet for ``zappier/reports``. .. include:: reports.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/modules/zappier/usage.rst b/docs/sphinx/modules/zappier/usage.rst index 1392d5b..1899514 100644 --- a/docs/sphinx/modules/zappier/usage.rst +++ b/docs/sphinx/modules/zappier/usage.rst @@ -4,4 +4,4 @@ zappier.usage Generated API sheet for ``zappier/usage``. .. include:: usage.md - :literal: + :parser: myst_parser.sphinx_ diff --git a/docs/sphinx/repos/docs-master.md b/docs/sphinx/repos/docs-master.md new file mode 100644 index 0000000..8e76870 --- /dev/null +++ b/docs/sphinx/repos/docs-master.md @@ -0,0 +1,60 @@ +# zapier-docs-master + +Summaries, NATS contracts, and message flows for every Verae Time × Zapier module. + +**Live catalog:** https://zapier.georgelambert.org/ +**Overview (start here):** https://git.georgelambert.org/marchon/overview +**Operator console:** http://127.0.0.1:3850/ (Fleet · Trace · Docs) +**Monorepo:** https://git.georgelambert.org/marchon/master-zapier-plan-draft (`main` and `master`) + +## Git repos (Forgejo on NS1) + +| Repo | URL | +|------|-----| +| master-zapier-plan-draft | https://git.georgelambert.org/marchon/master-zapier-plan-draft | +| zappier-edge | https://git.georgelambert.org/marchon/zappier-edge | +| verae-middleware | https://git.georgelambert.org/marchon/verae-middleware | +| verae-zapier-app | https://git.georgelambert.org/marchon/verae-zapier-app | +| verae-activate | https://git.georgelambert.org/marchon/verae-activate | +| verae-request-splitter | https://git.georgelambert.org/marchon/verae-request-splitter | +| verae-archive-worm | https://git.georgelambert.org/marchon/verae-archive-worm | +| verae-archive-aggregator | https://git.georgelambert.org/marchon/verae-archive-aggregator | +| verae-tree-node | https://git.georgelambert.org/marchon/verae-tree-node | +| verae-zapier-simulator | https://git.georgelambert.org/marchon/verae-zapier-simulator | +| zapier-user-docs | https://git.georgelambert.org/marchon/zapier-user-docs | +| verae-fleet | https://git.georgelambert.org/marchon/verae-fleet | +| **overview** | https://git.georgelambert.org/marchon/overview | +| verae-nats-process | https://git.georgelambert.org/marchon/verae-nats-process | +| **zapier-docs-master** (this repo) | https://git.georgelambert.org/marchon/zapier-docs-master | +| **verae-ops** | https://git.georgelambert.org/marchon/verae-ops | + +Clone (SSH port 2223): + +`git clone ssh://git@git.georgelambert.org:2223/marchon/.git` + +## Modules + +| Module | Summary | NATS in | NATS out | +|--------|---------|---------|----------| +| zappier-edge | Metered HTTPS for Zapier | — | — (HTTPS to middleware) | +| verae-middleware | Job id + wait HTTP | jobs.events | jobs.watch | +| verae-activate | Pushable Zapier app | — | — | +| verae-zapier-app | Full Zapier nouns | — | — | +| request-splitter | Hash vs files | — | archive.put | +| archive-worm | Bloom WORM node | archive.query, archive.put | archive.reply.* (hit only) | +| archive-aggregator | Merge archive replies | archive.reply.* | archive.query | +| tree-node | Merkle leaf proofs | archive.query, archive.put | archive.reply.* (hit only) | +| zapier-simulator | Trace console (in-process) | — | — | +| zapier-user-docs | Signup → lookup guide | — | — | +| verae-fleet | Replica floors + monitor | — | — | +| overview | System map | — | — | +| nats-process | Template worker | example.process.in | example.process.out / reply.* | +| ops | Install / Docker / Proxmox / metal | — | — | + +## Documents in this repo + +- [MESSAGE-FLOWS.md](MESSAGE-FLOWS.md) — numbered request paths +- [modules-and-nats.md](modules-and-nats.md) — address table +- [archive-nats.md](archive-nats.md) — bloom / multi-receipt design +- [composition.md](composition.md) — HTTPS hops +- `modules//SUMMARY.md` and `NATS.md` diff --git a/docs/sphinx/repos/overview.md b/docs/sphinx/repos/overview.md new file mode 100644 index 0000000..7488ca7 --- /dev/null +++ b/docs/sphinx/repos/overview.md @@ -0,0 +1,105 @@ +# Verae Time × Zapier — system overview + +High-level description of the whole system: what it is, which **independent git repositories** implement it, how it stays up, how it behaves when the local network fails, and how it talks to the **central Verae NATS.IO 3-server cluster**. New work is added by **new address routing**, not by teaching Zapier about NATS. + +**This repo:** https://git.georgelambert.org/marchon/overview +**Live catalog (PDF by default):** https://zapier.georgelambert.org/ · [Markdown indexes](https://zapier.georgelambert.org/index-md.html) +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/overview.git` + +## Table of contents + +1. [System](01-system.md) — what runs where; Zapier never speaks NATS +2. [Modules and repositories](02-modules-and-repos.md) — every independent Forgejo repo +3. [NATS.IO 3-server cluster](03-nats-cluster.md) — JetStream, subjects, who may connect +4. [Uptime](04-uptime.md) — replica floors, restart, SSH spread +5. [Local network failures](05-network-failures.md) — reconnect, silence, pending, failover +6. [Address routing](06-address-routing.md) — how to add unplanned functions +7. [External resources](07-external-resources.md) — searches, storage, chain +8. [Architectural diagrams](08-diagrams.md) — SVG + mermaid +9. [Expansion template](09-expansion-template.md) — `verae-nats-process` +10. [Documentation index](INDEX.md) — pointer into all other docs + +## One-screen picture + +![System context](diagrams/system.svg) + +Zapier → HTTPS `zappier-edge` → HTTPS `verae-middleware` → **NATS cluster** → workers, WORM archives, tree nodes. Chain HTTPS is `api.veraetime.net` (or MOCK). Fleet keeps minimum copies, including tree nodes. + +## Independent repositories (Forgejo) + +| Repo | Role | +|------|------| +| [overview](https://git.georgelambert.org/marchon/overview) | This document | +| [verae-ops](https://git.georgelambert.org/marchon/verae-ops) | Docker, Proxmox, VMs, dedicated hardware | +| [verae-nats-process](https://git.georgelambert.org/marchon/verae-nats-process) | **Model** for a new addressed process | +| [master-zapier-plan-draft](https://git.georgelambert.org/marchon/master-zapier-plan-draft) | Monorepo snapshot | +| [zappier-edge](https://git.georgelambert.org/marchon/zappier-edge) | Metered public HTTPS | +| [verae-middleware](https://git.georgelambert.org/marchon/verae-middleware) | Zapier HTTP + NATS workers | +| [verae-zapier-app](https://git.georgelambert.org/marchon/verae-zapier-app) | Zapier Platform app | +| [verae-activate](https://git.georgelambert.org/marchon/verae-activate) | Activate-now app | +| [verae-request-splitter](https://git.georgelambert.org/marchon/verae-request-splitter) | Hash vs attachments | +| [verae-archive-worm](https://git.georgelambert.org/marchon/verae-archive-worm) | Bloom WORM node | +| [verae-archive-aggregator](https://git.georgelambert.org/marchon/verae-archive-aggregator) | Archive reply merge | +| [verae-tree-node](https://git.georgelambert.org/marchon/verae-tree-node) | Merkle leaf proofs | +| [verae-fleet](https://git.georgelambert.org/marchon/verae-fleet) | Replica floor + SSH hosts | +| [verae-zapier-simulator](https://git.georgelambert.org/marchon/verae-zapier-simulator) | Trace console | +| [zapier-user-docs](https://git.georgelambert.org/marchon/zapier-user-docs) | Signup → lookup | +| [zapier-docs-master](https://git.georgelambert.org/marchon/zapier-docs-master) | Per-module SUMMARY + NATS | + +Clone any of them: `git clone ssh://git@git.georgelambert.org:2223/marchon/.git` (SSH port **2223**). + +## Operator console (loopback) + +Fleet, message **Trace**, and **Docs** share one shell at http://127.0.0.1:3850/ (`verae-fleet`). Not public. See [CONSOLE.pdf](https://zapier.georgelambert.org/packages/verae-fleet/docs/CONSOLE.pdf). + +![Fleet tab](screenshots/console-fleet.png) + +![Trace tab](screenshots/console-trace.png) + +![Docs tab](screenshots/console-docs.png) + +## Where to read next + +Start at the top. Architecture is second. Everything else is reference. + +### 1. High-level (non-technical) + +| Document | What it is | +|----------|------------| +| **This overview** | Whole system in one place | +| [Modules and repositories](02-modules-and-repos.md) | Short names of every independent repo | +| [zapier-docs-master](https://git.georgelambert.org/marchon/zapier-docs-master) | One-line SUMMARY + NATS per module | +| [zapier-user-docs](https://git.georgelambert.org/marchon/zapier-user-docs) | Signup → register a hash → lookup | + +### 2. Architecture + +| Document | What it is | +|----------|------------| +| [NATS 3-server cluster](03-nats-cluster.md) | Who may connect; private URLs | +| [Uptime](04-uptime.md) | Replica floors, restart, SSH hosts | +| [Local network failures](05-network-failures.md) | Reconnect, bloom silence, failover | +| [Address routing](06-address-routing.md) | Unplanned functions as new subjects | +| [External resources](07-external-resources.md) | Chain, WORM, tree-node search | +| [Diagrams](08-diagrams.md) | SVG + mermaid | +| [Fleet](https://zapier.georgelambert.org/docs/02-architecture/fleet.pdf) | Operator replica control | +| [Module NATS map](https://zapier.georgelambert.org/docs/02-architecture/modules-and-nats.pdf) | Address table | +| [Archive / bloom](https://zapier.georgelambert.org/docs/02-architecture/archive-nats.pdf) | Multipart and multi-receipt | +| [Tree nodes](https://zapier.georgelambert.org/docs/02-architecture/tree-nodes.pdf) | Bulk Merkle leaves | +| [Composition](https://zapier.georgelambert.org/docs/02-architecture/composition.pdf) | zappier + middleware HTTPS | + +### 3. Remaining documentation + +| Document | What it is | +|----------|------------| +| [Documentation index](INDEX.md) | A–Z and catalog URLs | +| [Expansion template](09-expansion-template.md) / [verae-nats-process](https://git.georgelambert.org/marchon/verae-nats-process) | Copy this to add an address | +| [Operator console](https://zapier.georgelambert.org/packages/verae-fleet/docs/CONSOLE.pdf) | Screenshots of Fleet / Trace / Docs | +| [Simulator](https://git.georgelambert.org/marchon/verae-zapier-simulator) | Standalone trace (also inside the console) | +| [Zapier developer setup](https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf) | CLI / login / push | +| Live catalog | https://zapier.georgelambert.org/ (PDF) · [Markdown indexes](https://zapier.georgelambert.org/index-md.html) | + +--- + +## Credits + +Design: **Scott Lindsey**, **George Lambert**, **NATS.IO**, and **Grok-Code** by [Grok.com](https://grok.com). diff --git a/docs/sphinx/repos/verae-activate.md b/docs/sphinx/repos/verae-activate.md new file mode 100644 index 0000000..e8d99dc --- /dev/null +++ b/docs/sphinx/repos/verae-activate.md @@ -0,0 +1,22 @@ +# Verae Time — Zapier activate app + +This is the integration you **push tomorrow**. It has one action: + +**Add Numbers** — `number1` + `number2` → `sum`. + +It runs **inside Zapier**. You do not need `api.veraetime.net`, NATS, or a public URL. + +**Catalog:** https://zapier.georgelambert.org/packages/verae-activate/README.pdf +**Setup (PDF):** https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf +**Sample action:** `creates/add_numbers.js` — public sheet https://zapier.georgelambert.org/docs/modules/verae-activate/creates/add_numbers.pdf + +Step-by-step account setup: [SETUP-ZAPIER-DEVELOPER](https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf) + +```bash +cd packages/verae-activate +npm install +npm test +zapier-platform login +zapier-platform register "Verae Time" +zapier-platform push +``` diff --git a/docs/sphinx/repos/verae-archive-aggregator.md b/docs/sphinx/repos/verae-archive-aggregator.md new file mode 100644 index 0000000..b44e251 --- /dev/null +++ b/docs/sphinx/repos/verae-archive-aggregator.md @@ -0,0 +1,29 @@ +# verae-archive-aggregator + +When a wait path sets `includeAttached`, this process broadcasts `verae.archive.query` and **merges** replies into the job JSON. Silent bloom misses omit slices; the chain receipt still succeeds. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-archive-aggregator +**Catalog:** https://zapier.georgelambert.org/packages/verae-archive-aggregator/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-archive-aggregator/NATS.pdf + +## Run + +```bash +cd packages/verae-archive-aggregator +npm test +``` + +## Addresses + +| Direction | Subject | +|-----------|---------| +| out | `verae.archive.query` `{ correlationId, sha256, tenantId, kinds[] }` | +| in | `verae.archive.reply.` (hits only) | + +## Depends on + +- middleware wait path (`includeAttached` / `includeTree`) +- one or more archive-worm and/or tree-node replicas +- NATS (private) + +Timeout: missing archives omit their records; do not fail the seal. diff --git a/docs/sphinx/repos/verae-archive-worm.md b/docs/sphinx/repos/verae-archive-worm.md new file mode 100644 index 0000000..49cad10 --- /dev/null +++ b/docs/sphinx/repos/verae-archive-worm.md @@ -0,0 +1,34 @@ +# verae-archive-worm + +Bloom-filtered append-only WORM node. Stores metadata and files **off chain**. A bloom **miss is silence** (no NATS reply). + +**Forgejo:** https://git.georgelambert.org/marchon/verae-archive-worm +**Catalog:** https://zapier.georgelambert.org/packages/verae-archive-worm/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-archive-worm/NATS.pdf + +## Run + +```bash +cd packages/verae-archive-worm +npm test +``` + +Fleet keeps **min 3** copies (`keepFloor`). Pause does not count as available. + +## Addresses + +| Subject | Role | +|---------|------| +| `verae.archive.put` | Append `{ sha256, kind, record }` and add the hash to the bloom | +| `verae.archive.query` | Broadcast (no queue group). Hit → `verae.archive.reply.` | +| miss | **no message** | + +Kinds: `publicMeta`, `privateMeta`, `file`. Tree leaves live on **verae-tree-node** (`kind=tree`). + +## Depends on + +- NATS JetStream reachable on the **private** URL (`NATS_URL`) +- archive-aggregator (query fan-out / merge) +- fleet replica floor + +Does not talk to Zapier or the chain. diff --git a/docs/sphinx/repos/verae-fleet.md b/docs/sphinx/repos/verae-fleet.md new file mode 100644 index 0000000..aae377a --- /dev/null +++ b/docs/sphinx/repos/verae-fleet.md @@ -0,0 +1,44 @@ +# verae-fleet + +Operator control plane for Verae Time × Zapier **runtime** services: + +- a **list** of every service and its config file +- a **central replica spec** (`fleet.json`) — how many copies must be up +- a **monitor** of active / paused / unhealthy replicas +- **restart** when a copy is offline or fails `/health` +- **on / off / pause / resume** per service or per instance +- **keepFloor** on tree nodes so at least `min` copies stay available (paused copies do not count) + +```bash +cd packages/verae-fleet +npm test +node src/cli.js list +node src/cli.js serve # http://127.0.0.1:3850/ +``` + +Against a running daemon: + +```bash +node src/cli.js status +node src/cli.js pause tree-node-0 # floor starts another tree-node +node src/cli.js resume tree-node-0 +node src/cli.js restart tree-node-1 +node src/cli.js stop webhook-deliver # disable that service +node src/cli.js start webhook-deliver +``` + +Add capacity in `machines.json` or the monitor **Add machine** form (`kind=ssh`, user, host, identity file path). New replicas land on the least-loaded eligible host. + +```bash +node src/cli.js ssh-check ns1 # marchon@70.88.205.138 with ~/.ssh/id_ed25519 +``` + +Private keys stay on disk (`~/.ssh/id_ed25519`); git stores only the path. Optional overrides: `machines.secrets.json` (gitignored). + +Operator console (Fleet · Trace · Docs) at http://127.0.0.1:3850/ — [docs/CONSOLE.md](docs/CONSOLE.md) · [CONSOLE.pdf](docs/CONSOLE.pdf) (also https://zapier.georgelambert.org/packages/verae-fleet/docs/CONSOLE.pdf). Message-processing **min / avg / p50 / p90** RTT is on the Fleet tab. + +Zapier cloud apps are listed but **not spawned**. NATS on NS1 is **monitored only** (loopback `:4222`, never a public bind). + +Install on Docker / Proxmox / metal: https://zapier.georgelambert.org/packages/verae-ops/README.pdf + +Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-fleet.git` diff --git a/docs/sphinx/repos/verae-nats-process.md b/docs/sphinx/repos/verae-nats-process.md new file mode 100644 index 0000000..942a738 --- /dev/null +++ b/docs/sphinx/repos/verae-nats-process.md @@ -0,0 +1,21 @@ +# verae-nats-process + +Template for a new **addressed messaging process** on the central Verae NATS.IO cluster. + +**Repo:** https://git.georgelambert.org/marchon/verae-nats-process +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-nats-process.git` +**Overview:** https://zapier.georgelambert.org/overview/README.pdf +**Routing:** https://zapier.georgelambert.org/packages/verae-nats-process/ROUTING.pdf + +```bash +npm test +npm start # /health on 127.0.0.1:13900 +``` + +1. Duplicate this repository (new Forgejo name). +2. Edit `src/subjects.js` — `verae...*`. +3. Replace `handle()` in `src/handle.js`. +4. Update `ROUTING.md`; add a fleet service with `min`/`max`. +5. If Zapier needs the result, add HTTPS on **verae-middleware** only. + +Zapier cloud must not subscribe. See [address routing](https://zapier.georgelambert.org/overview/06-address-routing.pdf). diff --git a/docs/sphinx/repos/verae-ops.md b/docs/sphinx/repos/verae-ops.md new file mode 100644 index 0000000..ad9715f --- /dev/null +++ b/docs/sphinx/repos/verae-ops.md @@ -0,0 +1,44 @@ +# verae-ops — install, run, maintain + +How to stand up Verae Time × Zapier on **Docker**, **Proxmox**, **generic VMs**, or **dedicated hardware**, and how to **link dependent services**. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-ops +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git` +**Catalog:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf +**System map:** https://zapier.georgelambert.org/overview/README.pdf + +This is the operations repo. Application code lives in the other independent git repositories. + +## Reading order + +1. [01-dependencies.md](01-dependencies.md) — what must exist, who talks to whom +2. [02-docker.md](02-docker.md) — Compose (NATS 3-node cluster + HTTPS edges) +3. [03-proxmox.md](03-proxmox.md) — LXC / QEMU VMs +4. [04-virtual-servers.md](04-virtual-servers.md) — cloud or hypervisor VMs +5. [05-dedicated-hardware.md](05-dedicated-hardware.md) — bare metal (NS1-style) +6. [06-linking-services.md](06-linking-services.md) — env vars, URLs, replica floors +7. [07-maintenance.md](07-maintenance.md) — upgrade, backup, fleet, NATS + +Public PDFs of the same files: `https://zapier.georgelambert.org/packages/verae-ops/.pdf`. + +## Non-negotiables + +| Rule | Why | +|------|-----| +| Zapier cloud → **HTTPS only** (zappier-edge) | Never NATS, never `api.veraetime.net` | +| NATS binds **loopback or a private docker/VM net** | Not on the public NIC | +| Tree-node **min 3**, pause does not count | Bulk Merkle lookups | +| Private keys stay on disk; git stores **paths** | `machines.json` `identityFile` | +| Operator console is **loopback** `:3850` | Not a public site | + +## Quick lab (one machine) + +```bash +git clone ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git +cd verae-ops +docker compose up --build +``` + +Then: zappier http://127.0.0.1:3000/ middleware http://127.0.0.1:3100/health NATS monitoring http://127.0.0.1:8222/ + +Production layout is three NATS nodes + fleet-spread workers; see [02-docker.md](02-docker.md) and [05-dedicated-hardware.md](05-dedicated-hardware.md). diff --git a/docs/sphinx/repos/verae-request-splitter.md b/docs/sphinx/repos/verae-request-splitter.md new file mode 100644 index 0000000..3016526 --- /dev/null +++ b/docs/sphinx/repos/verae-request-splitter.md @@ -0,0 +1,32 @@ +# verae-request-splitter + +Splits a Zapier/middleware body into (1) the **chain hash** and (2) off-chain **archive puts**. File bytes never go on `api.veraetime.net`. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-request-splitter +**Catalog:** https://zapier.georgelambert.org/packages/verae-request-splitter/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-request-splitter/NATS.pdf + +## Run + +```bash +cd packages/verae-request-splitter +npm test +``` + +Today middleware calls this **in-process**. A later split-out can subscribe `verae.splitter.in`. + +## Outputs + +| Path | Content | +|------|---------| +| Chain | `{ sha256, hashAlg }` only | +| `verae.archive.put` | each `publicMeta` / `privateMeta` / `file` | +| Batch | Merkle **root** on chain; leaves → tree-node puts (`kind=tree`) | + +## Depends on + +- middleware-http (caller) +- archive-worm / tree-node (puts) +- chain client (hash seal) + +Does not talk to Zapier or the job poller. diff --git a/docs/sphinx/repos/verae-tree-node.md b/docs/sphinx/repos/verae-tree-node.md new file mode 100644 index 0000000..cd390e2 --- /dev/null +++ b/docs/sphinx/repos/verae-tree-node.md @@ -0,0 +1,31 @@ +# verae-tree-node + +Bloom-filtered WORM store for Merkle **leaf** proofs. Only the Merkle **root** is sealed on the chain. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-tree-node +**Catalog:** https://zapier.georgelambert.org/packages/verae-tree-node/README.pdf +**User lookup guide:** https://zapier.georgelambert.org/user-docs/09-lookup-tree-nodes.pdf + +When Zapier submits a **batch**, middleware builds a Merkle tree of item SHA-256s, seals **only the root** on `api.veraetime.net`, and puts each leaf proof on a sharded tree node. A later lookup of a leaf that is not on the main chain fans out `verae.archive.query` with `kinds: ["tree"]`. Nodes that do not hold the leaf send **nothing**. + +## Run + +```bash +cd packages/verae-tree-node +npm test +``` + +Fleet **keepFloor min=3**. Pause does not count toward the floor. + +## Addresses + +Same as archive-worm, with `kind=tree`: `verae.archive.put` / `query` / `reply.` (hit only). + +## Depends on + +- NATS (private) +- archive-aggregator for bulk lookup +- fleet replica floor +- chain holds the root only + +Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-tree-node.git` diff --git a/docs/sphinx/repos/verae-zapier-middleware.md b/docs/sphinx/repos/verae-zapier-middleware.md new file mode 100644 index 0000000..95c953a --- /dev/null +++ b/docs/sphinx/repos/verae-zapier-middleware.md @@ -0,0 +1,40 @@ +# verae-middleware + +Zapier-facing HTTPS adapter (`/zapier/v1/*`) plus NATS workers. Zapier never speaks NATS or `api.veraetime.net`; this process does. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-middleware +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-middleware.git` +**Catalog README (PDF):** https://zapier.georgelambert.org/packages/verae-zapier-middleware/README.pdf +**NATS contract:** https://zapier.georgelambert.org/docs-master/modules/verae-zapier-middleware/NATS.pdf +**Install / Docker / Proxmox:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf + +## Run + +```bash +cd packages/verae-zapier-middleware +npm install +MOCK_VERAE=true NATS_ENABLED=false npm test +PORT=3100 MOCK_VERAE=true npm start # /health, /zapier/v1 +``` + +Docker image: `Dockerfile` (Node 22, port 3100). Full stack: `verae-ops` compose. + +## Environment + +| Variable | Default | Purpose | +|----------|---------|---------| +| `PORT` | `3100` | HTTP bind | +| `VERAE_API_BASE_URL` | `http://localhost:8080` | Chain HTTPS | +| `MOCK_VERAE` | `false` | In-process mock chain | +| `NATS_ENABLED` | `false` | JetStream vs in-process poller | +| `NATS_URL` | `nats://127.0.0.1:4222` | Cluster URL (loopback / docker DNS) | +| `WAIT_TIMEOUT_MS` | — | Sync wait on `jobs.events` | + +## Depends on + +- **Upstream HTTPS:** zappier-edge (`x-api-key` already checked) or a lab client +- **Chain:** `api.veraetime.net` or `MOCK_VERAE=true` +- **NATS:** `jobs.watch` out, `jobs.events` in; optional `archive.put` / aggregator wait +- **Optional:** request-splitter (in-process), archive-worm, tree-node, webhook-deliver + +Does **not** bind NATS publicly. See [verae-ops linking](https://zapier.georgelambert.org/packages/verae-ops/06-linking-services.pdf). diff --git a/docs/sphinx/repos/verae-zapier-simulator.md b/docs/sphinx/repos/verae-zapier-simulator.md new file mode 100644 index 0000000..7ec71b1 --- /dev/null +++ b/docs/sphinx/repos/verae-zapier-simulator.md @@ -0,0 +1,34 @@ +# Verae Zapier interface simulator + +In-process stand-in for the Zapier editor. Run a step, then read a **trace console** of every hop from Zapier input through zappier-edge, middleware, splitter, mock chain, WORM archives, and tree nodes, back to the Zapier output. + +Use it to validate messaging and to catch errors, delays, failures, and recoveries **before** the Zapier app is pushed live. + +```bash +cd packages/verae-zapier-simulator +npm test +npm start # http://127.0.0.1:3847/ +``` + +## What it simulates + +| Zapier action | Path | +|---------------|------| +| Sign up | zappier portal → API key | +| Connect | Zapier test auth (`x-api-key`) | +| Create Timestamp (async) | 202 `jobId` + `jobs.watch` | +| Create Timestamp and Wait | hold until `jobs.events` | +| Find Timestamp by SHA256 | central Verae chain only | +| Find Hash (tree nodes) | chain miss → broadcast `verae.archive.query` kinds=`tree` | +| Create Batch | Merkle root sealed on chain; leaves on tree nodes | +| Verify | mock certificate | + +Faults you can inject: edge 401/402, chain timeout, NATS watch/events drop, archive put fail, all archives silent, one tree node down, hop delays, then **recover** (retry). + +The monitor panel flags broken assumptions (Zapier talking to NATS, file bytes on chain, bloom miss sending a reply) and suggests changes (tree-node search, wait+hook pairing, 402 upgrade URL, archive quorum). + +**Catalog:** https://zapier.georgelambert.org/packages/verae-zapier-simulator/README.pdf +**Live sample UI (loopback):** http://127.0.0.1:3847/ — also inside the operator console Trace tab. +**Static copy:** https://zapier.georgelambert.org/simulator/ + +Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-zapier-simulator.git` diff --git a/docs/sphinx/repos/verae-zapier.md b/docs/sphinx/repos/verae-zapier.md new file mode 100644 index 0000000..cf1f196 --- /dev/null +++ b/docs/sphinx/repos/verae-zapier.md @@ -0,0 +1,38 @@ +# verae-zapier + +Zapier Platform CLI app for Verae. Runs on **Zapier’s servers**. Calls only middleware HTTPS (`MIDDLEWARE_BASE_URL`), never NATS and never `api.veraetime.net`. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-zapier-app +**Catalog:** https://zapier.georgelambert.org/packages/verae-zapier/README.pdf +**Sphinx API sheets:** https://zapier.georgelambert.org/sphinx/index.html + +## Role + +Runs on **Zapier’s servers**. Calls only the middleware HTTPS API (`MIDDLEWARE_BASE_URL`), never NATS and never `api.veraetime.net` directly. + +## Planned modules + +| File | Purpose | +|------|---------| +| `authentication.js` | Custom API key auth → `GET /zapier/v1/auth/me` | +| `index.js` | App definition, beforeRequest, afterResponse error mapping | +| `creates/timestamp_and_wait.js` | Primary action | +| `creates/create_timestamp.js` | Async jobId action | +| `creates/verify_timestamp.js` | Verify certificate | +| `creates/batch_timestamp.js` | Batch create | +| `searches/job_status.js` | Lookup by jobId | +| `triggers/timestamp_completed.js` | REST Hook | + +I/O contracts: https://zapier.georgelambert.org/docs/developer/modules/function-reference.pdf + +## Env + +```bash +export MIDDLEWARE_BASE_URL=https://your-middleware.example.com +``` + +## Gate + +```bash +npm run gate:11 # from monorepo root, after Phase 11 implementation +``` diff --git a/docs/sphinx/repos/zapier-user-docs.md b/docs/sphinx/repos/zapier-user-docs.md new file mode 100644 index 0000000..5e84f0c --- /dev/null +++ b/docs/sphinx/repos/zapier-user-docs.md @@ -0,0 +1,27 @@ +# Verae Time for Zapier — user guide + +How to go from **zero account** to **registering SHA-256 hashes**, **looking them up on the central Verae chain**, and **finding hashes that were only sealed as part of a bulk Merkle summary** on external tree-node archives. + +This is the customer-facing guide (signup → Zaps). Developers: see [zapier-docs-master](https://git.georgelambert.org/marchon/zapier-docs-master) and the simulator at [verae-zapier-simulator](https://git.georgelambert.org/marchon/verae-zapier-simulator). + +**Live catalog:** https://zapier.georgelambert.org/ +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/zapier-user-docs.git` + +## Contents + +1. [What you get](01-what-you-get.md) +2. [Sign up for a Verae / zappier account](02-signup-zappier-portal.md) +3. [Connect the Zapier app](03-connect-zapier.md) +4. [Register a SHA-256 (create timestamp)](04-register-a-hash.md) +5. [Wait, async, and completed hooks](05-wait-async-hooks.md) +6. [Look up a hash on the central Verae chain](06-lookup-central-chain.md) +7. [Attachments and metadata (not on chain)](07-attachments-and-metadata.md) +8. [Bulk Merkle summaries](08-bulk-merkle-summaries.md) +9. [Look up a hash on tree-node archives](09-lookup-tree-nodes.md) +10. [Reading receipts](10-reading-receipts.md) +11. [Errors, billing, retries](11-errors-billing-retries.md) +12. [Security: what Zapier never sees](12-security.md) + +## Try it without going live + +The [interface simulator](https://git.georgelambert.org/marchon/verae-zapier-simulator) is a Zapier-like form plus a trace console. Run **Batch Merkle**, copy a leaf SHA-256, then **Find Timestamp by SHA256** (miss) vs **Find Hash (tree nodes)** (proof). diff --git a/docs/sphinx/repos/zappier.md b/docs/sphinx/repos/zappier.md new file mode 100644 index 0000000..8d123a4 --- /dev/null +++ b/docs/sphinx/repos/zappier.md @@ -0,0 +1,139 @@ +# Zappier + +Metered API platform: per-endpoint pricing, customer types with multipliers and +monthly credits, a usage ledger, Stripe metered billing, purchase-order +invoicing, a company admin console, a self-service customer portal, and a +Zapier integration. + +**Forgejo:** https://git.georgelambert.org/marchon/zappier-edge +**Catalog README:** https://zapier.georgelambert.org/packages/zappier/README.pdf + +## Documentation (public PDFs) + +- [USER-MANUAL](https://zapier.georgelambert.org/packages/zappier/docs/USER-MANUAL.pdf) — operations & usage +- [ACCOUNTING](https://zapier.georgelambert.org/packages/zappier/docs/ACCOUNTING.pdf) — invoices, PO billing, reports +- [USER-MANAGEMENT](https://zapier.georgelambert.org/packages/zappier/docs/USER-MANAGEMENT.pdf) — pricing, customer types +- [CUSTOMER-PORTAL](https://zapier.georgelambert.org/packages/zappier/docs/CUSTOMER-PORTAL.pdf) — signup, 2FA, reloads +- [DEVELOPER](https://zapier.georgelambert.org/packages/zappier/docs/DEVELOPER.pdf) +- [WALKTHROUGH](https://zapier.georgelambert.org/packages/zappier/docs/WALKTHROUGH.pdf) +- Markdown copies remain next to these files in `docs/` +- **Sample Zapier app:** `zapier-app/` — https://zapier.georgelambert.org/packages/zappier/zapier-app/README.pdf (if present) or the source tree in git + +## Surfaces + +| Surface | URL | Audience | +|---|---|---| +| Public API | `/v1/*` | API customers (`x-api-key`) | +| Interactive API docs | `/docs` | Integrating developers | +| Admin console | `/admin` | Company ops & accounting | +| Customer portal | `/portal` | End-user customers (signup, 2FA, billing) | +| Zapier app | `zapier-app/` | No-code users via Zapier | + +## Pricing model + +`openapi.yaml` defines the API surface; each `operationId` is a rate-card key. +Endpoints carry **list prices** (seed: `src/pricing.ts` → `DEFAULT_RATE_CARD`). +Customer types are **tier configs** (`DEFAULT_TIERS`) with a `multiplier`, a +`monthlyCreditCents` quota, and an optional `defaultRule` for endpoints not on the card. +Individual customers can carry a `multiplierOverride`. +Billed price = `round(list price × multiplier)`; usage up to the monthly credit is free. +Pricing is editable at runtime in the admin console. + +### Seed rate card (list prices, cents per call) + +| Endpoint | Model | List price | +| -------------- | -------- | -------------------------------------------- | +| `status` | free | 0 | +| `storage-list` | free | 0 | +| `transform` | fixed | 4 | +| `storage` | variable | 10 + 1 per KB metadata + 50 per MB attached | + +### Seed customer types + +| Tier | Multiplier | Monthly credit | Default rule (unlisted endpoints) | +| ---------- | ---------- | -------------- | --------------------------------- | +| `free` | 1.0 | 100 cents | none — call rejected with 403 | +| `pro` | 0.5 | 1000 cents | fixed 8 list → 4 billed | +| `business` | 0.25 | 10000 cents | fixed 8 list → 2 billed | + +Adding a new API call = add it to `openapi.yaml`, then price it in the admin UI. +Adding a customer type = create it in the admin UI. Variable pricing = base per call + +metadata size (rounded up to KB) + attachment size (rounded up to MB), then the multiplier. + +## Quickstart + +```sh +npm install +npm run dev +``` + +The server starts on port 3000. API docs at +[http://localhost:3000/docs](http://localhost:3000/docs), admin console at +`/admin`, customer portal at `/portal`. + +## Deploying + +```sh +npm ci && npm run build +node dist/index.js # runs from ANY working directory +``` + +All runtime paths (SQLite default, `.env`, OpenAPI spec, static assets) +resolve from the installation root, so the compiled server works under +systemd, Docker, or cron regardless of cwd. `PORT` and `ZAPPIER_DB` remain +environment-overridable. + +## Environment variables + +| Variable | Default | Purpose | +| ------------------- | -------------- | --------------------------------------------------- | +| `PORT` | `3000` | HTTP port the server listens on | +| `ZAPPIER_DB` | `/zappier.db` | SQLite database file path | +| `ADMIN_KEY` | `admin-dev-key`| Admin UI / admin API key — **set a real secret in production** | +| `ADMIN_USER` | `admin` | Admin UI primary login username | +| `DEMO_ADMIN_USER` | `demo` | Admin UI demo login username | +| `DEMO_ADMIN_PASSWORD` | `$$$Adm1n###` | Demo login password — **override in production** | +| `STRIPE_SECRET_KEY` | _(none)_ | Stripe secret key — billing job and portal reloads | + +## Billing + +Usage is reported to Stripe by a job (loads `STRIPE_SECRET_KEY` from `.env`): + +```sh +npx ts-node src/jobs/report-usage.ts +``` + +The job sums each customer's usage since the first of the current month (UTC), +applies the tier's monthly credit, and reports only the **delta** above what was +already reported — re-runs are safe. Idempotency comes from three layers: a +`billing_reports` ledger (cumulative cents per customer per month), an atomic +`job_locks` run guard (1 h TTL), and a deterministic Stripe event `identifier` +(`customer:period:billable`) that dedupes crash retries. It requires a Stripe +meter named `zappier.api_cents` with Sum aggregation over the `value` field. + +A Kimi cron job ("Zappier billing · report usage to Stripe") runs it daily at +06:17 America/New_York with a completion notification. + +Purchase-order customers are invoiced manually from the admin console +(**Invoices** tab); prepaid balances from the customer portal are drawn down +automatically at invoice issue. See `docs/ACCOUNTING.md`. + +## Zapier app + +The companion Zapier integration lives in `zapier-app/`: + +```sh +cd zapier-app +npm install +npm test +``` + +To deploy it, create a Zapier developer account, run `zapier login`, then +`zapier push` from the `zapier-app/` directory. + +## Testing + +```sh +npm test # root API/service suite (jest, 165 tests) +cd zapier-app && npm test # Zapier integration suite (mocha, 4 tests) +``` diff --git a/package.json b/package.json index c490436..69f500f 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "test:activate": "npm --prefix packages/verae-activate test", "docs:modules": "python3 scripts/gen-module-docs.py", "docs:sphinx": "sphinx-build -b html docs/sphinx docs/sphinx/_build/html", + "docs:latex": "sphinx-build -b html docs/sphinx docs/sphinx/_build/html && python3 scripts/build-readme-latex.py", "docs:pdf": "python3 scripts/gen-module-pdfs.py", "docs:site": "python3 scripts/build-docs-site.py", "docs:deploy": "bash scripts/deploy-docs-site.sh", diff --git a/packages/docs-master/README.md b/packages/docs-master/README.md index 01e81e7..8e76870 100644 --- a/packages/docs-master/README.md +++ b/packages/docs-master/README.md @@ -26,6 +26,7 @@ Summaries, NATS contracts, and message flows for every Verae Time × Zapier modu | **overview** | https://git.georgelambert.org/marchon/overview | | verae-nats-process | https://git.georgelambert.org/marchon/verae-nats-process | | **zapier-docs-master** (this repo) | https://git.georgelambert.org/marchon/zapier-docs-master | +| **verae-ops** | https://git.georgelambert.org/marchon/verae-ops | Clone (SSH port 2223): @@ -48,6 +49,7 @@ Clone (SSH port 2223): | verae-fleet | Replica floors + monitor | — | — | | overview | System map | — | — | | nats-process | Template worker | example.process.in | example.process.out / reply.* | +| ops | Install / Docker / Proxmox / metal | — | — | ## Documents in this repo diff --git a/packages/docs-master/modules/verae-ops/NATS.md b/packages/docs-master/modules/verae-ops/NATS.md new file mode 100644 index 0000000..ed1ae04 --- /dev/null +++ b/packages/docs-master/modules/verae-ops/NATS.md @@ -0,0 +1,3 @@ +# verae-ops NATS + +Documentation only. Runtime NATS bind stays private. See https://zapier.georgelambert.org/packages/verae-ops/06-linking-services.pdf diff --git a/packages/docs-master/modules/verae-ops/SUMMARY.md b/packages/docs-master/modules/verae-ops/SUMMARY.md new file mode 100644 index 0000000..b2f0531 --- /dev/null +++ b/packages/docs-master/modules/verae-ops/SUMMARY.md @@ -0,0 +1,3 @@ +# verae-ops + +Install and maintenance documentation: Docker, Proxmox, VMs, dedicated hardware, linking services. diff --git a/packages/overview/02-modules-and-repos.md b/packages/overview/02-modules-and-repos.md index 663ede2..50e994f 100644 --- a/packages/overview/02-modules-and-repos.md +++ b/packages/overview/02-modules-and-repos.md @@ -19,6 +19,7 @@ Each runtime piece is its **own git repo** on Forgejo (`git.georgelambert.org`, | **verae-zapier-simulator** | `packages/verae-zapier-simulator` | Trace console before `zapier-platform push` | | **zapier-user-docs** | `packages/zapier-user-docs` | Customer signup → register → lookup | | **zapier-docs-master** | `packages/docs-master` | Per-module `SUMMARY.md` + `NATS.md` | +| **verae-ops** | `packages/verae-ops` | Docker, Proxmox, VMs, dedicated hardware, linking services | Libraries that are **not** separate Forgejo apps today: `verae-chain-client` (inside middleware), job-poller and webhook-deliver (middleware workers, fleet-spawned). diff --git a/packages/overview/INDEX.md b/packages/overview/INDEX.md index 31ddb01..547a7bd 100644 --- a/packages/overview/INDEX.md +++ b/packages/overview/INDEX.md @@ -12,7 +12,8 @@ Operator console (loopback): http://127.0.0.1:3850/ · [CONSOLE.pdf](https://zap | [01-system.md](01-system.md) | What runs where, in plain language | | [02-modules-and-repos.md](02-modules-and-repos.md) | Short names of every independent repo | | [zapier-docs-master](https://git.georgelambert.org/marchon/zapier-docs-master) | One-line SUMMARY + NATS per module | -| [zapier-user-docs](https://git.georgelambert.org/marchon/zapier-user-docs) | Signup → register → lookup | +| [zapier-user-docs](https://zapier.georgelambert.org/user-docs/README.pdf) | Signup → register → lookup | +| [verae-ops](https://zapier.georgelambert.org/packages/verae-ops/README.pdf) | Docker / Proxmox / VM / metal install | ## 2. Architecture @@ -43,12 +44,15 @@ Operator console (loopback): http://127.0.0.1:3850/ · [CONSOLE.pdf](https://zap | Tree-node lookup (users) | https://zapier.georgelambert.org/packages/zapier-user-docs/09-lookup-tree-nodes.pdf | | Zapier developer setup | https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf | | docs-master | https://zapier.georgelambert.org/docs-master/README.pdf | +| Sphinx HTML | https://zapier.georgelambert.org/sphinx/ | +| Sphinx LaTeX PDF | https://zapier.georgelambert.org/sphinx/verae-zapier-modules.pdf | +| Install (verae-ops) | https://zapier.georgelambert.org/packages/verae-ops/README.pdf | ## Independent git repositories Prefix: `https://git.georgelambert.org/marchon/` -overview · verae-nats-process · master-zapier-plan-draft · zappier-edge · verae-middleware · verae-zapier-app · verae-activate · verae-request-splitter · verae-archive-worm · verae-archive-aggregator · verae-tree-node · verae-fleet · verae-zapier-simulator · zapier-user-docs · zapier-docs-master +overview · verae-nats-process · verae-ops · master-zapier-plan-draft · zappier-edge · verae-middleware · verae-zapier-app · verae-activate · verae-request-splitter · verae-archive-worm · verae-archive-aggregator · verae-tree-node · verae-fleet · verae-zapier-simulator · zapier-user-docs · zapier-docs-master ## Per-module contracts diff --git a/packages/overview/README.md b/packages/overview/README.md index 538167a..7488ca7 100644 --- a/packages/overview/README.md +++ b/packages/overview/README.md @@ -30,6 +30,7 @@ Zapier → HTTPS `zappier-edge` → HTTPS `verae-middleware` → **NATS cluster* | Repo | Role | |------|------| | [overview](https://git.georgelambert.org/marchon/overview) | This document | +| [verae-ops](https://git.georgelambert.org/marchon/verae-ops) | Docker, Proxmox, VMs, dedicated hardware | | [verae-nats-process](https://git.georgelambert.org/marchon/verae-nats-process) | **Model** for a new addressed process | | [master-zapier-plan-draft](https://git.georgelambert.org/marchon/master-zapier-plan-draft) | Monorepo snapshot | | [zappier-edge](https://git.georgelambert.org/marchon/zappier-edge) | Metered public HTTPS | diff --git a/packages/verae-activate/README.md b/packages/verae-activate/README.md index 9a5f17b..e8d99dc 100644 --- a/packages/verae-activate/README.md +++ b/packages/verae-activate/README.md @@ -6,7 +6,11 @@ This is the integration you **push tomorrow**. It has one action: It runs **inside Zapier**. You do not need `api.veraetime.net`, NATS, or a public URL. -Step-by-step account setup: [../../docs/04-activate/SETUP-ZAPIER-DEVELOPER.md](../../docs/04-activate/SETUP-ZAPIER-DEVELOPER.md) +**Catalog:** https://zapier.georgelambert.org/packages/verae-activate/README.pdf +**Setup (PDF):** https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf +**Sample action:** `creates/add_numbers.js` — public sheet https://zapier.georgelambert.org/docs/modules/verae-activate/creates/add_numbers.pdf + +Step-by-step account setup: [SETUP-ZAPIER-DEVELOPER](https://zapier.georgelambert.org/docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf) ```bash cd packages/verae-activate diff --git a/packages/verae-archive-aggregator/README.md b/packages/verae-archive-aggregator/README.md new file mode 100644 index 0000000..b44e251 --- /dev/null +++ b/packages/verae-archive-aggregator/README.md @@ -0,0 +1,29 @@ +# verae-archive-aggregator + +When a wait path sets `includeAttached`, this process broadcasts `verae.archive.query` and **merges** replies into the job JSON. Silent bloom misses omit slices; the chain receipt still succeeds. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-archive-aggregator +**Catalog:** https://zapier.georgelambert.org/packages/verae-archive-aggregator/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-archive-aggregator/NATS.pdf + +## Run + +```bash +cd packages/verae-archive-aggregator +npm test +``` + +## Addresses + +| Direction | Subject | +|-----------|---------| +| out | `verae.archive.query` `{ correlationId, sha256, tenantId, kinds[] }` | +| in | `verae.archive.reply.` (hits only) | + +## Depends on + +- middleware wait path (`includeAttached` / `includeTree`) +- one or more archive-worm and/or tree-node replicas +- NATS (private) + +Timeout: missing archives omit their records; do not fail the seal. diff --git a/packages/verae-archive-worm/README.md b/packages/verae-archive-worm/README.md new file mode 100644 index 0000000..49cad10 --- /dev/null +++ b/packages/verae-archive-worm/README.md @@ -0,0 +1,34 @@ +# verae-archive-worm + +Bloom-filtered append-only WORM node. Stores metadata and files **off chain**. A bloom **miss is silence** (no NATS reply). + +**Forgejo:** https://git.georgelambert.org/marchon/verae-archive-worm +**Catalog:** https://zapier.georgelambert.org/packages/verae-archive-worm/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-archive-worm/NATS.pdf + +## Run + +```bash +cd packages/verae-archive-worm +npm test +``` + +Fleet keeps **min 3** copies (`keepFloor`). Pause does not count as available. + +## Addresses + +| Subject | Role | +|---------|------| +| `verae.archive.put` | Append `{ sha256, kind, record }` and add the hash to the bloom | +| `verae.archive.query` | Broadcast (no queue group). Hit → `verae.archive.reply.` | +| miss | **no message** | + +Kinds: `publicMeta`, `privateMeta`, `file`. Tree leaves live on **verae-tree-node** (`kind=tree`). + +## Depends on + +- NATS JetStream reachable on the **private** URL (`NATS_URL`) +- archive-aggregator (query fan-out / merge) +- fleet replica floor + +Does not talk to Zapier or the chain. diff --git a/packages/verae-fleet/README.md b/packages/verae-fleet/README.md index dabfc60..aae377a 100644 --- a/packages/verae-fleet/README.md +++ b/packages/verae-fleet/README.md @@ -39,4 +39,6 @@ Operator console (Fleet · Trace · Docs) at http://127.0.0.1:3850/ — [docs/CO Zapier cloud apps are listed but **not spawned**. NATS on NS1 is **monitored only** (loopback `:4222`, never a public bind). +Install on Docker / Proxmox / metal: https://zapier.georgelambert.org/packages/verae-ops/README.pdf + Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-fleet.git` diff --git a/packages/verae-nats-process/README.md b/packages/verae-nats-process/README.md index b9bac35..942a738 100644 --- a/packages/verae-nats-process/README.md +++ b/packages/verae-nats-process/README.md @@ -4,7 +4,8 @@ Template for a new **addressed messaging process** on the central Verae NATS.IO **Repo:** https://git.georgelambert.org/marchon/verae-nats-process **Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-nats-process.git` -**Overview:** https://git.georgelambert.org/marchon/overview +**Overview:** https://zapier.georgelambert.org/overview/README.pdf +**Routing:** https://zapier.georgelambert.org/packages/verae-nats-process/ROUTING.pdf ```bash npm test @@ -17,4 +18,4 @@ npm start # /health on 127.0.0.1:13900 4. Update `ROUTING.md`; add a fleet service with `min`/`max`. 5. If Zapier needs the result, add HTTPS on **verae-middleware** only. -Zapier cloud must not subscribe. See [overview 06-address-routing](https://git.georgelambert.org/marchon/overview/src/branch/main/06-address-routing.md). +Zapier cloud must not subscribe. See [address routing](https://zapier.georgelambert.org/overview/06-address-routing.pdf). diff --git a/packages/verae-ops/01-dependencies.md b/packages/verae-ops/01-dependencies.md new file mode 100644 index 0000000..bc99e90 --- /dev/null +++ b/packages/verae-ops/01-dependencies.md @@ -0,0 +1,64 @@ +# 1. Dependencies and data flow + +```text +Humans / Zapier cloud + │ HTTPS x-api-key + ▼ + zappier-edge :3000 (meter, portal, admin, Stripe) + │ HTTPS internal + ▼ + middleware-http :3100 (/zapier/v1) + │ + ├── HTTPS → api.veraetime.net (or MOCK_VERAE) + └── NATS → private cluster + jobs.watch / jobs.events + webhooks.deliver + archive.put / query / reply.* + │ + archive-worm × N tree-node × N + archive-aggregator job-poller + webhook-deliver +``` + +## Repositories (clone all that you run) + +Prefix `ssh://git@git.georgelambert.org:2223/marchon/.git` (SSH **2223**). + +| You need | Repo | Catalog README | +|----------|------|----------------| +| Billing HTTPS | `zappier-edge` | https://zapier.georgelambert.org/packages/zappier/README.pdf | +| Zapier adapter | `verae-middleware` | https://zapier.georgelambert.org/packages/verae-zapier-middleware/README.pdf | +| Zapier app (cloud) | `verae-zapier-app` | https://zapier.georgelambert.org/packages/verae-zapier/README.pdf | +| WORM nodes | `verae-archive-worm` | https://zapier.georgelambert.org/packages/verae-archive-worm/README.pdf | +| Merkle leaves | `verae-tree-node` | https://zapier.georgelambert.org/packages/verae-tree-node/README.pdf | +| Archive merge | `verae-archive-aggregator` | https://zapier.georgelambert.org/packages/verae-archive-aggregator/README.pdf | +| Splitter | `verae-request-splitter` | https://zapier.georgelambert.org/packages/verae-request-splitter/README.pdf | +| Replica floors | `verae-fleet` | https://zapier.georgelambert.org/packages/verae-fleet/README.pdf | +| This install guide | `verae-ops` | https://zapier.georgelambert.org/packages/verae-ops/README.pdf | + +Optional: `verae-activate` (tiny pushable app), `verae-zapier-simulator` (trace), `overview`, `zapier-docs-master`, `zapier-user-docs`, `verae-nats-process`. + +## Runtime dependencies + +| Service | Needs | +|---------|--------| +| zappier-edge | Node 20+, SQLite path or volume, `PORT`, optional Stripe keys | +| middleware | Node 22+, `NATS_URL` **or** `NATS_ENABLED=false`, chain URL or `MOCK_VERAE` | +| NATS | JetStream, **no public bind** | +| worm / tree-node | Node, `NATS_URL`, local state dir | +| fleet | Node, `machines.json` (SSH **paths**), loopback `:3850` | +| Zapier cloud app | `MIDDLEWARE_BASE_URL` = **public HTTPS of zappier-edge** (or middleware if you skip metering in lab) | + +## Ports (lab defaults) + +| Port | Bind | Process | +|------|------|---------| +| 3000 | public or docker publish | zappier-edge | +| 3100 | public or docker publish | middleware | +| 4222 | **private only** | NATS client | +| 6222 | **private only** | NATS cluster | +| 8222 | private / localhost | NATS monitor | +| 3847 | loopback | simulator | +| 3850 | loopback | operator console | + +Chain: `https://api.veraetime.net` (prod) or `MOCK_VERAE=true` (lab). diff --git a/packages/verae-ops/02-docker.md b/packages/verae-ops/02-docker.md new file mode 100644 index 0000000..43f81b0 --- /dev/null +++ b/packages/verae-ops/02-docker.md @@ -0,0 +1,54 @@ +# 2. Docker Compose + +`docker-compose.yml` in this repo starts: + +- NATS JetStream **3-node cluster** (`nats1`–`nats3`) on an internal network +- **zappier-edge** `:3000` +- **middleware** `:3100` with `NATS_URL=nats://nats1:4222` and `MOCK_VERAE=true` by default +- **archive-worm** ×3 and **tree-node** ×3 (fleet floors) as long-running Node workers +- **aggregator** + **job-poller** stand-ins via middleware workers when `NATS_ENABLED=true` + +NATS ports are **not** published to the host by default (private `verae` network). HTTPS edges are. + +## Prereqs + +Docker Engine 24+ and Compose v2. Clone **this repo** plus the application repos as siblings, **or** set `MONOREPO` to a checkout of `master-zapier-plan-draft`. + +```bash +export MONOREPO=/path/to/master-zapier-plan-draft # contains packages/ +docker compose up --build +curl -fsS http://127.0.0.1:3000/health +curl -fsS http://127.0.0.1:3100/health +``` + +Without `MONOREPO`, Compose expects `../zappier`, `../verae-zapier-middleware`, … (independent clones next to `verae-ops`). + +## Link Zapier (cloud) to the lab + +1. Publish zappier-edge on a TLS hostname (Caddy/nginx in front of `:3000`). +2. In the Zapier app env: `MIDDLEWARE_BASE_URL=https://` (edge meters, then proxies). +3. Sign up on `/portal`, copy `x-api-key`. + +## Scale + +```bash +docker compose up --scale archive-worm=3 --scale tree-node=3 +``` + +Do not publish `4222`. To debug NATS from the host: + +```bash +docker compose exec nats1 wget -qO- http://127.0.0.1:8222/healthz +``` + +## Operator console + +Fleet is **not** inside Compose by default (it SSH-spawns). On the Docker host: + +```bash +cd $MONOREPO/packages/verae-fleet +NATS_URL=nats://127.0.0.1:4222 # only if you published 4222 on localhost for lab +node src/cli.js serve # http://127.0.0.1:3850/ loopback +``` + +For Compose-only labs, skip fleet; replica counts come from `--scale`. diff --git a/packages/verae-ops/03-proxmox.md b/packages/verae-ops/03-proxmox.md new file mode 100644 index 0000000..736a147 --- /dev/null +++ b/packages/verae-ops/03-proxmox.md @@ -0,0 +1,60 @@ +# 3. Proxmox (LXC and QEMU) + +Target: one **NATS cluster VM/CT** (or three), one **HTTPS edge** VM, one or more **worker** VMs. Fleet SSH-spreads worm/tree-node onto worker hosts. + +## Suggested guests + +| Guest | OS | vCPU / RAM / disk | Role | +|-------|----|-------------------|------| +| `nats-a` `nats-b` `nats-c` | Debian 12 LXC unprivileged | 1 / 1G / 8G | JetStream, bind `127.0.0.1` **or** a vmbr **private** bridge only | +| `edge` | Debian 12 QEMU | 2 / 2G / 20G | Caddy + zappier-edge + middleware | +| `worker-1` … | Debian 12 LXC | 2 / 2G / 20G | fleet SSH target; worm + tree-node | + +Use a **private bridge** (`vmbr1`, RFC1918) for NATS `4222`/`6222`. Public `vmbr0` only on `edge` (80/443). + +## NATS on an LXC + +```bash +apt-get update && apt-get install -y curl +# official nats-server binary +curl -sSL https://github.com/nats-io/nats-server/releases/latest/download/nats-server-v2.10.26-linux-amd64.tar.gz | tar -xz +install nats-server /usr/local/bin/ +``` + +`/etc/nats/nats.conf`: + +``` +jetstream {} +listen: 10.10.10.11:4222 # private bridge, not 0.0.0.0 on public +cluster { + name: verae + listen: 10.10.10.11:6222 + routes: [ nats-route://10.10.10.12:6222, nats-route://10.10.10.13:6222 ] +} +http: 127.0.0.1:8222 +``` + +systemd: `ExecStart=/usr/local/bin/nats-server -c /etc/nats/nats.conf`. + +## Edge VM + +Install Node 22, clone `zappier-edge` and `verae-middleware`, Caddy reverse-proxy: + +``` +zappier.example.com { + reverse_proxy 127.0.0.1:3000 +} +middleware.example.com { + reverse_proxy 127.0.0.1:3100 +} +``` + +Middleware env: `NATS_URL=nats://10.10.10.11:4222,nats://10.10.10.12:4222,nats://10.10.10.13:4222`. + +## Fleet on Proxmox + +On the operator workstation or a jump CT (loopback `:3850`): + +`machines.json` entries: `kind=ssh`, `user=root` or `marchon`, `host=10.10.10.2x`, `identityFile=~/.ssh/id_ed25519` (**path only**). Roles: `tree-node,archive-worm`. Capacity ≥ 3 per worker if you want floors on one host. + +`ssh-check` from the operator console before enabling `keepFloor`. diff --git a/packages/verae-ops/04-virtual-servers.md b/packages/verae-ops/04-virtual-servers.md new file mode 100644 index 0000000..915c39c --- /dev/null +++ b/packages/verae-ops/04-virtual-servers.md @@ -0,0 +1,28 @@ +# 4. Virtual servers (cloud / hypervisor) + +Same topology as Proxmox, without the Proxmox UI: three small VMs or one VM for lab. + +## Single VM lab + +Install Docker, clone `verae-ops`, `docker compose up`. Put Caddy/nginx TLS in front of `:3000` and `:3100`. Do **not** open 4222 on the security group. + +## Three-VM prod-shaped + +| VM | Security group | Software | +|----|----------------|----------| +| nats | private SG only 4222/6222 between the three | nats-server -js cluster | +| edge | 80/443 public; 4222 egress to nats SG | zappier + middleware + Caddy | +| workers | private; SSH from operator IP | Node; fleet identity file | + +Cloud-init example (edge): + +```yaml +packages: [curl, git, ca-certificates] +runcmd: + - curl -fsSL https://deb.nodesource.com/setup_22.x | bash - + - apt-get install -y nodejs +``` + +Set `MIDDLEWARE_BASE_URL` in Zapier to the **public zappier hostname**. + +Snapshots: SQLite (`ZAPPIER_DB`) and worm/tree state directories. NATS JetStream store (`/var/lib/nats`). diff --git a/packages/verae-ops/05-dedicated-hardware.md b/packages/verae-ops/05-dedicated-hardware.md new file mode 100644 index 0000000..d9a3cb2 --- /dev/null +++ b/packages/verae-ops/05-dedicated-hardware.md @@ -0,0 +1,59 @@ +# 5. Dedicated hardware + +NS1-style: a box that already runs NATS on **127.0.0.1:4222** (never a public bind), plus optional extra hosts for SSH workers. + +## This host (control + edges) + +1. Node 22+, git (SSH port **2223** to Forgejo). +2. `nats-server -js` listening **127.0.0.1:4222** only (cluster later on a private NIC). +3. Clone `zappier-edge`, `verae-middleware`, `verae-fleet`. +4. systemd units (below) or `verae-fleet serve` which keepFloor-spawns workers. +5. Caddy/nginx for public HTTPS to `:3000` / `:3100`. +6. Operator console: `127.0.0.1:3850` — SSH tunnel if you are off-box: + `ssh -L 3850:127.0.0.1:3850 -L 4222:127.0.0.1:4222 user@ns1` + +## systemd (middleware) + +``` +[Unit] +Description=verae-middleware +After=network.target nats.service + +[Service] +WorkingDirectory=/opt/verae/verae-middleware +Environment=PORT=3100 +Environment=NATS_ENABLED=true +Environment=NATS_URL=nats://127.0.0.1:4222 +Environment=VERAE_API_BASE_URL=https://api.veraetime.net +ExecStart=/usr/bin/node src/index.js +Restart=on-failure +User=verae + +[Install] +WantedBy=multi-user.target +``` + +zappier-edge similar with `PORT=3000` and `WorkingDirectory` of that clone. + +## Extra machines + +Add to fleet `machines.json`: + +```json +{ + "id": "ns1", + "kind": "ssh", + "user": "marchon", + "host": "70.88.205.138", + "port": 22, + "identityFile": "~/.ssh/id_ed25519", + "capacity": 8, + "roles": ["tree-node", "archive-worm"] +} +``` + +Never commit private key bytes. Optional `machines.secrets.json` is gitignored. + +## NATS 3-server cluster on metal + +Three boxes, private IPs, same `cluster_name`, routes to each other, `listen` on the private IP only. Clients (`NATS_URL`) list all three URLs. Target architecture: https://zapier.georgelambert.org/overview/03-nats-cluster.pdf diff --git a/packages/verae-ops/06-linking-services.md b/packages/verae-ops/06-linking-services.md new file mode 100644 index 0000000..4eb8241 --- /dev/null +++ b/packages/verae-ops/06-linking-services.md @@ -0,0 +1,57 @@ +# 6. Linking dependent services + +Every process learns peers from **environment variables** and **fleet service JSON**. There is no service mesh. + +## Environment map + +| Process | Variable | Points at | +|---------|----------|-----------| +| Zapier cloud app | `MIDDLEWARE_BASE_URL` | Public **zappier-edge** HTTPS (prod) or middleware (lab) | +| zappier-edge | `ZAPPIER_UPSTREAM` or internal proxy target | middleware `:3100` | +| middleware | `NATS_URL` | `nats://nats1:4222,nats://nats2:4222,nats://nats3:4222` | +| middleware | `VERAE_API_BASE_URL` | `https://api.veraetime.net` | +| middleware | `MOCK_VERAE` | `true` only in lab | +| worm / tree-node / aggregator / poller | `NATS_URL` | same cluster | +| fleet | `NATS_URL` (monitor only) | same; **publicBind=false** | +| fleet SSH | `identityFile` | path on the operator disk | + +## HTTPS hops (must work) + +```text +curl -H "x-api-key: $KEY" https://zappier.example.com/v1/status +# edge meters, then +curl http://127.0.0.1:3100/health +``` + +If Zapier gets 401/402, fix keys and the rate card on zappier-edge — not NATS. + +## NATS hops (must stay private) + +| Address | From | To | +|---------|------|----| +| `verae.zapier.jobs.watch` | middleware | job-poller (queue) | +| `verae.zapier.jobs.events` | poller | middleware wait | +| `verae.zapier.webhooks.deliver` | middleware | webhook-deliver | +| `verae.archive.put` | splitter | worm / tree-node | +| `verae.archive.query` | aggregator | **all** worm/tree (broadcast) | +| `verae.archive.reply.` | worm/tree on **hit only** | aggregator | + +Bloom **miss = silence**. Do not “fix” that with a negative reply. + +## Fleet floors + +https://zapier.georgelambert.org/docs/02-architecture/fleet.pdf + +| Service | min (keepFloor) | +|---------|-----------------| +| archive-worm | 3 | +| tree-node | 3 | +| middleware-http | 1 | +| zappier-edge | 1 | +| aggregator / poller / webhook | 1 | + +Link a new host: operator console → Add machine → `ssh-check` → reconcile. + +## Adding an unplanned function + +Copy `verae-nats-process`, pick `verae...*`, add a fleet service, and if Zapier must see the result, add **one HTTPS route on middleware**. Do not teach Zapier NATS. https://zapier.georgelambert.org/overview/06-address-routing.pdf diff --git a/packages/verae-ops/07-maintenance.md b/packages/verae-ops/07-maintenance.md new file mode 100644 index 0000000..240f151 --- /dev/null +++ b/packages/verae-ops/07-maintenance.md @@ -0,0 +1,45 @@ +# 7. Maintenance + +## Health + +| Check | Command | +|-------|---------| +| Edges | `curl -fsS https://zappier.example.com/health` and middleware `/health` | +| NATS | `curl -fsS http://127.0.0.1:8222/healthz` on each nats node (localhost) | +| Fleet | `node src/cli.js status` or http://127.0.0.1:3850/ (loopback) | +| Tree floor | status: tree-node available ≥ min, none of those paused | + +Green / yellow / red on the operator console: https://zapier.georgelambert.org/packages/verae-fleet/docs/CONSOLE.pdf + +## Restart + +- systemd: `systemctl restart verae-middleware zappier-edge` +- Compose: `docker compose up -d --no-deps middleware` +- One replica: fleet `restart tree-node-1` (floor spawns a replacement if needed) +- Pause is **not** off — paused copies do not count toward `keepFloor` + +## Backup + +| Data | Where | +|------|--------| +| zappier SQLite | `ZAPPIER_DB` path / volume | +| worm / tree blobs | instance `data/` dirs | +| NATS JetStream | nats store dir | +| fleet overlay | `packages/verae-fleet/data/` (gitignored) | + +Do not back up private keys into git. Restore `identityFile` paths on the operator host. + +## Upgrade + +1. `git pull` each independent repo (or refresh the monorepo snapshot). +2. `npm test` in that package. +3. Restart that unit only; NATS cluster stays up. +4. Zapier Platform app: `zapier-platform push` from `verae-zapier-app` when HTTPS contracts change. + +## Logs + +journald for systemd; `docker compose logs -f middleware nats1`. Redact API keys (middleware debug redaction). + +## Docs + +After doc edits: from the monorepo `npm run docs:site && npm run docs:deploy` so https://zapier.georgelambert.org/ stays current (PDF default, Markdown indexes at `/index-md.html`). diff --git a/packages/verae-ops/NATS.md b/packages/verae-ops/NATS.md new file mode 100644 index 0000000..c485dd3 --- /dev/null +++ b/packages/verae-ops/NATS.md @@ -0,0 +1,10 @@ +# NATS (ops) + +Ops does not subscribe. Runtime processes use: + +- `NATS_URL` — comma-separated client URLs on a **private** network +- JetStream required (`-js`) +- Cluster routes on port 6222 +- **No public bind** of 4222 + +See [06-linking-services.md](06-linking-services.md) and https://zapier.georgelambert.org/overview/03-nats-cluster.pdf diff --git a/packages/verae-ops/README.md b/packages/verae-ops/README.md new file mode 100644 index 0000000..ad9715f --- /dev/null +++ b/packages/verae-ops/README.md @@ -0,0 +1,44 @@ +# verae-ops — install, run, maintain + +How to stand up Verae Time × Zapier on **Docker**, **Proxmox**, **generic VMs**, or **dedicated hardware**, and how to **link dependent services**. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-ops +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git` +**Catalog:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf +**System map:** https://zapier.georgelambert.org/overview/README.pdf + +This is the operations repo. Application code lives in the other independent git repositories. + +## Reading order + +1. [01-dependencies.md](01-dependencies.md) — what must exist, who talks to whom +2. [02-docker.md](02-docker.md) — Compose (NATS 3-node cluster + HTTPS edges) +3. [03-proxmox.md](03-proxmox.md) — LXC / QEMU VMs +4. [04-virtual-servers.md](04-virtual-servers.md) — cloud or hypervisor VMs +5. [05-dedicated-hardware.md](05-dedicated-hardware.md) — bare metal (NS1-style) +6. [06-linking-services.md](06-linking-services.md) — env vars, URLs, replica floors +7. [07-maintenance.md](07-maintenance.md) — upgrade, backup, fleet, NATS + +Public PDFs of the same files: `https://zapier.georgelambert.org/packages/verae-ops/.pdf`. + +## Non-negotiables + +| Rule | Why | +|------|-----| +| Zapier cloud → **HTTPS only** (zappier-edge) | Never NATS, never `api.veraetime.net` | +| NATS binds **loopback or a private docker/VM net** | Not on the public NIC | +| Tree-node **min 3**, pause does not count | Bulk Merkle lookups | +| Private keys stay on disk; git stores **paths** | `machines.json` `identityFile` | +| Operator console is **loopback** `:3850` | Not a public site | + +## Quick lab (one machine) + +```bash +git clone ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git +cd verae-ops +docker compose up --build +``` + +Then: zappier http://127.0.0.1:3000/ middleware http://127.0.0.1:3100/health NATS monitoring http://127.0.0.1:8222/ + +Production layout is three NATS nodes + fleet-spread workers; see [02-docker.md](02-docker.md) and [05-dedicated-hardware.md](05-dedicated-hardware.md). diff --git a/packages/verae-ops/SUMMARY.md b/packages/verae-ops/SUMMARY.md new file mode 100644 index 0000000..3b26c60 --- /dev/null +++ b/packages/verae-ops/SUMMARY.md @@ -0,0 +1,7 @@ +# verae-ops + +**Job:** Installation and maintenance: Docker Compose, Proxmox, virtual servers, dedicated hardware, and how to link dependent services. + +**Expects:** clones of the runtime repos (or the monorepo snapshot) and a private NATS network. + +**Sends:** nothing at runtime (documentation + compose file). diff --git a/packages/verae-ops/docker-compose.yml b/packages/verae-ops/docker-compose.yml new file mode 100644 index 0000000..236543a --- /dev/null +++ b/packages/verae-ops/docker-compose.yml @@ -0,0 +1,115 @@ +# Lab / small-prod. NATS stays on the internal network (not published). +# Usage: +# MONOREPO=/path/to/master-zapier-plan-draft docker compose up --build +# or clone sibling repos next to this directory. + +x-node: &node + restart: unless-stopped + networks: [verae] + +services: + nats1: + image: nats:2.10-alpine + command: + - "--js" + - "--http_port=8222" + - "--cluster=nats://0.0.0.0:6222" + - "--cluster_name=verae" + - "--routes=nats://nats2:6222,nats://nats3:6222" + - "--name=nats1" + networks: [verae] + restart: unless-stopped + + nats2: + image: nats:2.10-alpine + command: + - "--js" + - "--cluster=nats://0.0.0.0:6222" + - "--cluster_name=verae" + - "--routes=nats://nats1:6222,nats://nats3:6222" + - "--name=nats2" + networks: [verae] + restart: unless-stopped + + nats3: + image: nats:2.10-alpine + command: + - "--js" + - "--cluster=nats://0.0.0.0:6222" + - "--cluster_name=verae" + - "--routes=nats://nats1:6222,nats://nats2:6222" + - "--name=nats3" + networks: [verae] + restart: unless-stopped + + zappier-edge: + <<: *node + build: + context: ${MONOREPO:-..}/packages/zappier + dockerfile: Dockerfile + environment: + PORT: "3000" + ZAPPIER_UPSTREAM: http://middleware:3100 + ports: + - "3000:3000" + + middleware: + <<: *node + build: + context: ${MONOREPO:-..}/packages/verae-zapier-middleware + dockerfile: Dockerfile + environment: + PORT: "3100" + MOCK_VERAE: "true" + NATS_ENABLED: "true" + NATS_URL: nats://nats1:4222 + ports: + - "3100:3100" + depends_on: [nats1, nats2, nats3] + + archive-worm: + <<: *node + image: node:22-alpine + working_dir: /opt/fleet + volumes: + - ${MONOREPO:-..}/packages/verae-fleet:/opt/fleet + - ${MONOREPO:-..}/packages/verae-archive-worm:/opt/worm + - worm-data:/data + command: ["node", "src/worker.js"] + environment: + NATS_URL: nats://nats1:4222 + FLEET_ROLE: archive-worm + FLEET_SERVICE: archive-worm + FLEET_HEALTH_BIND: 0.0.0.0 + FLEET_HEALTH_PORT: "13500" + FLEET_STATE_DIR: /data + deploy: + replicas: 3 + + tree-node: + <<: *node + image: node:22-alpine + working_dir: /opt/fleet + volumes: + - ${MONOREPO:-..}/packages/verae-fleet:/opt/fleet + - ${MONOREPO:-..}/packages/verae-tree-node:/opt/tree + - tree-data:/data + command: ["node", "src/worker.js"] + environment: + NATS_URL: nats://nats1:4222 + FLEET_ROLE: tree-node + FLEET_SERVICE: tree-node + FLEET_HEALTH_BIND: 0.0.0.0 + FLEET_HEALTH_PORT: "13600" + FLEET_STATE_DIR: /data + deploy: + replicas: 3 + +networks: + verae: + driver: bridge + internal: false + +volumes: + worm-data: + tree-data: diff --git a/packages/verae-ops/package.json b/packages/verae-ops/package.json new file mode 100644 index 0000000..510ecf9 --- /dev/null +++ b/packages/verae-ops/package.json @@ -0,0 +1,6 @@ +{ + "name": "verae-ops", + "version": "0.1.0", + "private": true, + "description": "Install, Docker, Proxmox, VM, dedicated hardware, and service linking for Verae Time × Zapier" +} diff --git a/packages/verae-request-splitter/README.md b/packages/verae-request-splitter/README.md new file mode 100644 index 0000000..3016526 --- /dev/null +++ b/packages/verae-request-splitter/README.md @@ -0,0 +1,32 @@ +# verae-request-splitter + +Splits a Zapier/middleware body into (1) the **chain hash** and (2) off-chain **archive puts**. File bytes never go on `api.veraetime.net`. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-request-splitter +**Catalog:** https://zapier.georgelambert.org/packages/verae-request-splitter/README.pdf +**NATS:** https://zapier.georgelambert.org/docs-master/modules/verae-request-splitter/NATS.pdf + +## Run + +```bash +cd packages/verae-request-splitter +npm test +``` + +Today middleware calls this **in-process**. A later split-out can subscribe `verae.splitter.in`. + +## Outputs + +| Path | Content | +|------|---------| +| Chain | `{ sha256, hashAlg }` only | +| `verae.archive.put` | each `publicMeta` / `privateMeta` / `file` | +| Batch | Merkle **root** on chain; leaves → tree-node puts (`kind=tree`) | + +## Depends on + +- middleware-http (caller) +- archive-worm / tree-node (puts) +- chain client (hash seal) + +Does not talk to Zapier or the job poller. diff --git a/packages/verae-tree-node/README.md b/packages/verae-tree-node/README.md index cca1ec6..cd390e2 100644 --- a/packages/verae-tree-node/README.md +++ b/packages/verae-tree-node/README.md @@ -1,7 +1,31 @@ # verae-tree-node -External tree-node role: Bloom-filtered WORM store for Merkle **leaf** receipts. +Bloom-filtered WORM store for Merkle **leaf** proofs. Only the Merkle **root** is sealed on the chain. -When Zapier submits a **batch**, middleware builds a Merkle tree of item SHA-256s, seals **only the root** on `api.veraetime.net`, and puts each leaf proof on a sharded tree node. A later lookup of a leaf that is not on the main chain fans out `verae.archive.query` with `kinds: ["tree"]`. Nodes that do not hold the leaf send nothing. +**Forgejo:** https://git.georgelambert.org/marchon/verae-tree-node +**Catalog:** https://zapier.georgelambert.org/packages/verae-tree-node/README.pdf +**User lookup guide:** https://zapier.georgelambert.org/user-docs/09-lookup-tree-nodes.pdf + +When Zapier submits a **batch**, middleware builds a Merkle tree of item SHA-256s, seals **only the root** on `api.veraetime.net`, and puts each leaf proof on a sharded tree node. A later lookup of a leaf that is not on the main chain fans out `verae.archive.query` with `kinds: ["tree"]`. Nodes that do not hold the leaf send **nothing**. + +## Run + +```bash +cd packages/verae-tree-node +npm test +``` + +Fleet **keepFloor min=3**. Pause does not count toward the floor. + +## Addresses + +Same as archive-worm, with `kind=tree`: `verae.archive.put` / `query` / `reply.` (hit only). + +## Depends on + +- NATS (private) +- archive-aggregator for bulk lookup +- fleet replica floor +- chain holds the root only Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-tree-node.git` diff --git a/packages/verae-zapier-middleware/README.md b/packages/verae-zapier-middleware/README.md new file mode 100644 index 0000000..95c953a --- /dev/null +++ b/packages/verae-zapier-middleware/README.md @@ -0,0 +1,40 @@ +# verae-middleware + +Zapier-facing HTTPS adapter (`/zapier/v1/*`) plus NATS workers. Zapier never speaks NATS or `api.veraetime.net`; this process does. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-middleware +**Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-middleware.git` +**Catalog README (PDF):** https://zapier.georgelambert.org/packages/verae-zapier-middleware/README.pdf +**NATS contract:** https://zapier.georgelambert.org/docs-master/modules/verae-zapier-middleware/NATS.pdf +**Install / Docker / Proxmox:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf + +## Run + +```bash +cd packages/verae-zapier-middleware +npm install +MOCK_VERAE=true NATS_ENABLED=false npm test +PORT=3100 MOCK_VERAE=true npm start # /health, /zapier/v1 +``` + +Docker image: `Dockerfile` (Node 22, port 3100). Full stack: `verae-ops` compose. + +## Environment + +| Variable | Default | Purpose | +|----------|---------|---------| +| `PORT` | `3100` | HTTP bind | +| `VERAE_API_BASE_URL` | `http://localhost:8080` | Chain HTTPS | +| `MOCK_VERAE` | `false` | In-process mock chain | +| `NATS_ENABLED` | `false` | JetStream vs in-process poller | +| `NATS_URL` | `nats://127.0.0.1:4222` | Cluster URL (loopback / docker DNS) | +| `WAIT_TIMEOUT_MS` | — | Sync wait on `jobs.events` | + +## Depends on + +- **Upstream HTTPS:** zappier-edge (`x-api-key` already checked) or a lab client +- **Chain:** `api.veraetime.net` or `MOCK_VERAE=true` +- **NATS:** `jobs.watch` out, `jobs.events` in; optional `archive.put` / aggregator wait +- **Optional:** request-splitter (in-process), archive-worm, tree-node, webhook-deliver + +Does **not** bind NATS publicly. See [verae-ops linking](https://zapier.georgelambert.org/packages/verae-ops/06-linking-services.pdf). diff --git a/packages/verae-zapier-simulator/README.md b/packages/verae-zapier-simulator/README.md index eb7faed..7ec71b1 100644 --- a/packages/verae-zapier-simulator/README.md +++ b/packages/verae-zapier-simulator/README.md @@ -27,4 +27,8 @@ Faults you can inject: edge 401/402, chain timeout, NATS watch/events drop, arch The monitor panel flags broken assumptions (Zapier talking to NATS, file bytes on chain, bloom miss sending a reply) and suggests changes (tree-node search, wait+hook pairing, 402 upgrade URL, archive quorum). +**Catalog:** https://zapier.georgelambert.org/packages/verae-zapier-simulator/README.pdf +**Live sample UI (loopback):** http://127.0.0.1:3847/ — also inside the operator console Trace tab. +**Static copy:** https://zapier.georgelambert.org/simulator/ + Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-zapier-simulator.git` diff --git a/packages/verae-zapier/README.md b/packages/verae-zapier/README.md index 4c62647..cf1f196 100644 --- a/packages/verae-zapier/README.md +++ b/packages/verae-zapier/README.md @@ -1,6 +1,10 @@ # verae-zapier -Zapier Platform CLI app for Verae. **Phase 11** in [../TODO.md](../TODO.md). +Zapier Platform CLI app for Verae. Runs on **Zapier’s servers**. Calls only middleware HTTPS (`MIDDLEWARE_BASE_URL`), never NATS and never `api.veraetime.net`. + +**Forgejo:** https://git.georgelambert.org/marchon/verae-zapier-app +**Catalog:** https://zapier.georgelambert.org/packages/verae-zapier/README.pdf +**Sphinx API sheets:** https://zapier.georgelambert.org/sphinx/index.html ## Role @@ -19,7 +23,7 @@ Runs on **Zapier’s servers**. Calls only the middleware HTTPS API (`MIDDLEWARE | `searches/job_status.js` | Lookup by jobId | | `triggers/timestamp_completed.js` | REST Hook | -See [../docs/developer/modules/function-reference.md](../docs/developer/modules/function-reference.md) for I/O contracts. +I/O contracts: https://zapier.georgelambert.org/docs/developer/modules/function-reference.pdf ## Env diff --git a/packages/zappier/README.md b/packages/zappier/README.md index 853cbcc..8d123a4 100644 --- a/packages/zappier/README.md +++ b/packages/zappier/README.md @@ -5,14 +5,19 @@ monthly credits, a usage ledger, Stripe metered billing, purchase-order invoicing, a company admin console, a self-service customer portal, and a Zapier integration. -## Documentation +**Forgejo:** https://git.georgelambert.org/marchon/zappier-edge +**Catalog README:** https://zapier.georgelambert.org/packages/zappier/README.pdf -- **[docs/USER-MANUAL.md](docs/USER-MANUAL.md)** — operations & usage manual -- **[docs/ACCOUNTING.md](docs/ACCOUNTING.md)** — company accounting: invoices, PO billing, reports, CSV -- **[docs/USER-MANAGEMENT.md](docs/USER-MANAGEMENT.md)** — pricing, customer types, customer accounts -- **[docs/CUSTOMER-PORTAL.md](docs/CUSTOMER-PORTAL.md)** — end-user portal: signup, 2FA, reloads, invoices -- **[docs/DEVELOPER.md](docs/DEVELOPER.md)** — full developer documentation -- **[docs/WALKTHROUGH.md](docs/WALKTHROUGH.md)** — original step-by-step pricing walkthrough +## Documentation (public PDFs) + +- [USER-MANUAL](https://zapier.georgelambert.org/packages/zappier/docs/USER-MANUAL.pdf) — operations & usage +- [ACCOUNTING](https://zapier.georgelambert.org/packages/zappier/docs/ACCOUNTING.pdf) — invoices, PO billing, reports +- [USER-MANAGEMENT](https://zapier.georgelambert.org/packages/zappier/docs/USER-MANAGEMENT.pdf) — pricing, customer types +- [CUSTOMER-PORTAL](https://zapier.georgelambert.org/packages/zappier/docs/CUSTOMER-PORTAL.pdf) — signup, 2FA, reloads +- [DEVELOPER](https://zapier.georgelambert.org/packages/zappier/docs/DEVELOPER.pdf) +- [WALKTHROUGH](https://zapier.georgelambert.org/packages/zappier/docs/WALKTHROUGH.pdf) +- Markdown copies remain next to these files in `docs/` +- **Sample Zapier app:** `zapier-app/` — https://zapier.georgelambert.org/packages/zappier/zapier-app/README.pdf (if present) or the source tree in git ## Surfaces diff --git a/packages/zappier/zapier-app/README.md b/packages/zappier/zapier-app/README.md new file mode 100644 index 0000000..17ead68 --- /dev/null +++ b/packages/zappier/zapier-app/README.md @@ -0,0 +1,13 @@ +# Sample Zapier Platform app (zappier-edge) + +Minimal Zapier app that stores data/files through the **metered** zappier HTTPS API. This is a **sample**, not the Verae timestamp app (`verae-zapier-app`). + +**Catalog:** https://zapier.georgelambert.org/packages/zappier/zapier-app/README.pdf +**Parent:** https://zapier.georgelambert.org/packages/zappier/README.pdf + +```bash +cd packages/zappier/zapier-app +npm test +``` + +Point the app at the public zappier-edge base URL and an `x-api-key` from `/portal`. diff --git a/scripts/build-docs-site.py b/scripts/build-docs-site.py index 1756632..a8a9d55 100755 --- a/scripts/build-docs-site.py +++ b/scripts/build-docs-site.py @@ -23,6 +23,7 @@ SECTIONS = [ [ ("packages/overview/README.md", "System overview (plain language)"), ("packages/overview/INDEX.md", "Documentation index"), + ("packages/verae-ops/README.md", "Install & maintenance (Docker, Proxmox, VMs, metal)"), ("packages/verae-fleet/docs/CONSOLE.md", "Operator console (Fleet · Trace · Docs)"), ("README.md", "Workspace README"), ("docs/04-activate/SETUP-ZAPIER-DEVELOPER.pdf", "Zapier developer setup (PDF)"), @@ -48,6 +49,48 @@ SECTIONS = [ ("packages/overview/08-diagrams.md", "Architectural diagrams"), ], ), + ( + "Per-module README (public PDFs)", + [ + ("packages/overview/README.md", "overview"), + ("packages/verae-ops/README.md", "verae-ops (install)"), + ("packages/zappier/README.md", "zappier-edge"), + ("packages/verae-zapier-middleware/README.md", "verae-middleware"), + ("packages/verae-zapier/README.md", "verae-zapier-app"), + ("packages/verae-activate/README.md", "verae-activate"), + ("packages/verae-request-splitter/README.md", "verae-request-splitter"), + ("packages/verae-archive-worm/README.md", "verae-archive-worm"), + ("packages/verae-archive-aggregator/README.md", "verae-archive-aggregator"), + ("packages/verae-tree-node/README.md", "verae-tree-node"), + ("packages/verae-fleet/README.md", "verae-fleet"), + ("packages/verae-zapier-simulator/README.md", "verae-zapier-simulator"), + ("packages/zapier-user-docs/README.md", "zapier-user-docs"), + ("packages/docs-master/README.md", "zapier-docs-master"), + ("packages/verae-nats-process/README.md", "verae-nats-process"), + ], + ), + ( + "Install / run", + [ + ("packages/verae-ops/README.md", "Ops index"), + ("packages/verae-ops/01-dependencies.md", "Dependencies and data flow"), + ("packages/verae-ops/02-docker.md", "Docker Compose"), + ("packages/verae-ops/03-proxmox.md", "Proxmox LXC / QEMU"), + ("packages/verae-ops/04-virtual-servers.md", "Virtual servers"), + ("packages/verae-ops/05-dedicated-hardware.md", "Dedicated hardware"), + ("packages/verae-ops/06-linking-services.md", "Linking dependent services"), + ("packages/verae-ops/07-maintenance.md", "Maintenance"), + ], + ), + ( + "Samples", + [ + ("packages/zappier/zapier-app/README.md", "Sample Zapier app (metered zappier API)"), + ("packages/verae-activate/README.md", "Activate-now Add Numbers sample"), + ("packages/verae-zapier-simulator/README.md", "Hop-trace simulator"), + ("packages/verae-nats-process/README.md", "New NATS address template"), + ], + ), ( "User guide (signup → lookup)", [ @@ -260,6 +303,9 @@ def main() -> None: sphinx = ROOT / "docs" / "sphinx" / "_build" / "html" if sphinx.exists(): copy_tree(sphinx, SITE / "sphinx") + latex_pdf = ROOT / "docs" / "sphinx" / "_build" / "latex" / "verae-zapier-modules.pdf" + if latex_pdf.exists(): + copy_tree(latex_pdf, SITE / "sphinx" / "verae-zapier-modules.pdf") for pkg in ( "verae-activate", "verae-zapier", @@ -275,9 +321,10 @@ def main() -> None: "overview", "verae-nats-process", "docs-master", + "verae-ops", ): pkg_root = ROOT / "packages" / pkg - if pkg in {"zapier-user-docs", "overview", "docs-master"}: + if pkg in {"zapier-user-docs", "overview", "docs-master", "verae-ops"}: copy_tree( pkg_root, SITE / "packages" / pkg, @@ -297,9 +344,13 @@ def main() -> None: for p in pkg_root.glob("*.md"): copy_tree(p, SITE / "packages" / pkg / p.name) else: - readme = pkg_root / "README.md" - if readme.exists(): - copy_tree(readme, SITE / "packages" / pkg / "README.md") + for name in ("README.md", "SUMMARY.md", "NATS.md"): + p = pkg_root / name + if p.exists(): + copy_tree(p, SITE / "packages" / pkg / name) + zap_app = ROOT / "packages" / "zappier" / "zapier-app" / "README.md" + if zap_app.exists(): + copy_tree(zap_app, SITE / "packages" / "zappier" / "zapier-app" / "README.md") zdocs = ROOT / "packages" / "zappier" / "docs" if zdocs.exists(): copy_tree( @@ -428,6 +479,7 @@ def main() -> None: ("verae-fleet", "Service catalog, replica floors, monitor"), ("overview", "High-level system overview"), ("verae-nats-process", "Template for a new NATS address"), + ("verae-ops", "Install, Docker, Proxmox, VMs, dedicated hardware"), ] git_lis = "".join( f'
  • {name} ' @@ -447,6 +499,7 @@ def main() -> None: ("docs/modules-pdf/", "Module PDFs (book)"), ("docs/models-pdf/", "Model PDFs (book)"), ("sphinx/index.html", "Sphinx HTML"), + ("sphinx/verae-zapier-modules.pdf", "Sphinx LaTeX PDF"), ] extra_md = [ ("docs-master/README.html", "Master summaries (docs-master)"), @@ -460,6 +513,7 @@ def main() -> None: ("docs/modules/", "All module markdown"), ("docs/models/", "All model markdown"), ("sphinx/index.html", "Sphinx HTML"), + ("sphinx/verae-zapier-modules.pdf", "Sphinx LaTeX PDF"), ] def extra_section(items: list[tuple[str, str]]) -> str: diff --git a/scripts/build-readme-latex.py b/scripts/build-readme-latex.py new file mode 100644 index 0000000..fd629c3 --- /dev/null +++ b/scripts/build-readme-latex.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +"""Concatenate package READMEs into LaTeX source + colored PDF (WeasyPrint).""" + +from __future__ import annotations + +import subprocess +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +CSS = ROOT / "scripts" / "docs-print.css" +OUT = ROOT / "docs" / "sphinx" / "_build" / "latex" +REPOS = [ + "overview", + "verae-ops", + "zappier", + "verae-zapier-middleware", + "verae-zapier", + "verae-activate", + "verae-request-splitter", + "verae-archive-worm", + "verae-archive-aggregator", + "verae-tree-node", + "verae-fleet", + "verae-zapier-simulator", + "zapier-user-docs", + "docs-master", + "verae-nats-process", +] + + +def main() -> None: + OUT.mkdir(parents=True, exist_ok=True) + files = [str(ROOT / "packages" / n / "README.md") for n in REPOS if (ROOT / "packages" / n / "README.md").exists()] + html = OUT / "verae-zapier-modules.html" + pdf = OUT / "verae-zapier-modules.pdf" + tex = OUT / "verae-zapier-readmes.tex" + hdr = OUT / "hdr.html" + hdr.write_text("\n", encoding="utf-8") + subprocess.run( + [ + "pandoc", + *files, + "-o", + str(html), + "--standalone", + "--toc", + f"--css={CSS}", + "--metadata=title=Verae Time × Zapier — repository READMEs", + f"--include-in-header={hdr}", + "--syntax-highlighting=breezedark", + ], + check=True, + ) + subprocess.run(["weasyprint", str(html), str(pdf)], check=True) + subprocess.run( + [ + "pandoc", + *files, + "-o", + str(tex), + "--standalone", + "--toc", + "--metadata=title=Verae Time × Zapier repository READMEs", + ], + check=True, + ) + print(f"wrote {pdf} ({pdf.stat().st_size} bytes) and {tex}") + + +if __name__ == "__main__": + main() diff --git a/scripts/gen-module-docs.py b/scripts/gen-module-docs.py index ed21ab1..15ee1ac 100644 --- a/scripts/gen-module-docs.py +++ b/scripts/gen-module-docs.py @@ -15,6 +15,31 @@ PACKAGES = [ ("verae-zapier-middleware", ROOT / "packages" / "verae-zapier-middleware" / "src", (".js",)), ("verae-activate", ROOT / "packages" / "verae-activate", (".js",)), ("verae-zapier", ROOT / "packages" / "verae-zapier", (".js",)), + ("verae-fleet", ROOT / "packages" / "verae-fleet" / "src", (".js",)), + ("verae-tree-node", ROOT / "packages" / "verae-tree-node" / "src", (".js",)), + ("verae-archive-worm", ROOT / "packages" / "verae-archive-worm" / "src", (".js",)), + ("verae-archive-aggregator", ROOT / "packages" / "verae-archive-aggregator" / "src", (".js",)), + ("verae-request-splitter", ROOT / "packages" / "verae-request-splitter" / "src", (".js",)), + ("verae-nats-process", ROOT / "packages" / "verae-nats-process" / "src", (".js",)), + ("verae-zapier-simulator", ROOT / "packages" / "verae-zapier-simulator" / "src", (".js",)), +] + +REPO_READMES = [ + "overview", + "verae-ops", + "zappier", + "verae-zapier-middleware", + "verae-zapier", + "verae-activate", + "verae-request-splitter", + "verae-archive-worm", + "verae-archive-aggregator", + "verae-tree-node", + "verae-fleet", + "verae-zapier-simulator", + "zapier-user-docs", + "docs-master", + "verae-nats-process", ] SKIP_PARTS = {"test", "tests", "node_modules", "dist"} @@ -296,7 +321,7 @@ def main() -> None: f"{rst_title}\n{'=' * len(rst_title)}\n\n" f"Generated API sheet for ``{rel}``.\n\n" f".. include:: {sibling_md.name}\n" - f" :literal:\n", + f" :parser: myst_parser.sphinx_\n", encoding="utf-8", ) index_entries.append(rel) @@ -308,18 +333,40 @@ def main() -> None: idx.append(f"- [{rel}]({rel}.md)") (OUT_MD / "README.md").write_text("\n".join(idx) + "\n", encoding="utf-8") + repos_dir = ROOT / "docs" / "sphinx" / "repos" + repos_dir.mkdir(parents=True, exist_ok=True) + repo_entries = [] + for name in REPO_READMES: + src = ROOT / "packages" / name / "README.md" + if not src.exists(): + continue + dest = repos_dir / f"{name}.md" + dest.write_text(src.read_text(encoding="utf-8"), encoding="utf-8") + repo_entries.append(f"repos/{name}") + + repo_toc = "\n ".join(repo_entries) or "repos/overview" toctree = "\n ".join(rst_entries) sphinx_index = f"""Verae × Zapier module reference ================================= +Public HTML: https://zapier.georgelambert.org/sphinx/ +LaTeX/PDF: https://zapier.georgelambert.org/sphinx/verae-zapier-modules.pdf +Markdown indexes: https://zapier.georgelambert.org/index-md.html + +.. toctree:: + :maxdepth: 1 + :caption: Repository READMEs + + {repo_toc} + .. toctree:: :maxdepth: 2 - :caption: Modules + :caption: API modules {toctree} """ (ROOT / "docs" / "sphinx" / "index.rst").write_text(sphinx_index, encoding="utf-8") - print(f"wrote {count} module docs") + print(f"wrote {count} module docs + {len(repo_entries)} repo READMEs") if __name__ == "__main__": diff --git a/scripts/push-module-repos.sh b/scripts/push-module-repos.sh index 1ec6672..52e23e4 100755 --- a/scripts/push-module-repos.sh +++ b/scripts/push-module-repos.sh @@ -49,6 +49,7 @@ create zapier-user-docs "User docs from signup through hash register, chain look create verae-fleet "Service catalog, replica floors, monitor, restart, pause" create overview "High-level system overview, NATS cluster, uptime, docs index" create verae-nats-process "Template JetStream worker for a new verae.* address" +create verae-ops "Install, Docker, Proxmox, VMs, dedicated hardware, service linking" push_dir "$ROOT/packages/zappier" zappier-edge push_dir "$ROOT/packages/verae-zapier-middleware" verae-middleware @@ -64,5 +65,6 @@ push_dir "$ROOT/packages/zapier-user-docs" zapier-user-docs push_dir "$ROOT/packages/verae-fleet" verae-fleet push_dir "$ROOT/packages/overview" overview push_dir "$ROOT/packages/verae-nats-process" verae-nats-process +push_dir "$ROOT/packages/verae-ops" verae-ops echo ALL_MODULE_REPOS_PUSHED