Start with current work, blockers, deadlines, and selected-thread detail.
Open Flow for active work, blockers, deadlines, and thread detail. Use PuddleJumper when the action becomes governed. Use VAULT when you need proof and policy records.
Start with current work, blockers, deadlines, and selected-thread detail.
Pick a thread, clear dependencies, and watch compliance dates.
Use PuddleJumper for governed action and VAULT for policy or proof only when needed.
Use this order: Flow for work, PuddleJumper for governed action, VAULT for proof.
Open Flow directly, or sign in first if you need an authenticated surface.
Open the workbench and select the thread that needs action now.
Use Flow until the work is ready to route or govern.
Use connector pages when you need route details or integration behavior.
Use the municipal track when you need intake, records, approvals, or publication flow.
Use Flow for status and deadlines. Use audit surfaces only when you need evidence.
# From monorepo root
pnpm install
cd apps/puddlejumper
# Minimum env vars
export JWT_SECRET=dev-secret
export AUTH_ISSUER=puddle-jumper
export AUTH_AUDIENCE=puddle-jumper-api
# Start
npx tsx src/api/server.ts
# → http://localhost:3002/v1/health
Start in Flow. Move to PuddleJumper only when the work becomes governed or connector-specific.
# From monorepo root (/n8drive)
flyctl deploy -a publiclogic-puddlejumper
n8drive/
├── packages/core/ @publiclogic/core — JWT auth, middleware, CSRF
├── packages/vault/ @publiclogic/vault — Vault policy provider
├── apps/logic-commons/ @publiclogic/logic-commons — OAuth, session, audit
└── apps/puddlejumper/
├── public/ guide.html, admin.html, CSS, workspace
└── src/
├── api/
│ ├── server.ts Boot sequence + all route wiring
│ └── routes/ auth, vault, logicbridge, seal,
│ archieve, syncronate, casespace, connectors,
│ admin, prr, access, axis, governance
├── formkey/ Forms intake · consent · output
├── logicbridge/ Registry · Publisher · Sandbox runner
├── seal/ ECDSA-P256 sign / verify
├── archieve/ Event chain · Notarizations · Export
├── syncronate/ Feed definitions · Job scheduler
├── axis/ AI provider credential resolver
└── casespace/ Factory · Environment provisioning
Every governed form submission now runs through the Forms layer inside the Docs / Vault workspace. Two paths:
| Path | Steps |
|---|---|
| Intake | Schema validate → Consent check → SEAL stamp → VAULT write → archival event |
| Output / Render | SEAL verify → Field binding resolution → JSON output (HTML template library in future) |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/vault/forms | bearer | List FormDefinitions |
| POST | /api/vault/forms | bearer | Create draft |
| POST | /api/vault/forms/:id/publish | admin | Publish (5-step pipeline) |
| POST | /v1/forms/:id/submit | public | Submit intake (rate limited) |
| POST | /v1/forms/:id/consent | public | Grant consent |
| GET | /api/vault/forms/:id/render/:recordId | bearer | Render VAULT record as form output |
| GET | /api/vault/forms/:id/submissions | bearer | List intake records |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/auth/github/login | public | GitHub OAuth redirect |
| GET | /api/auth/google/login | public | Google OAuth redirect |
| GET | /api/auth/microsoft/login | public | Microsoft OAuth redirect |
| GET | /api/auth/status | public | Current auth state |
| POST | /api/refresh | cookie | Rotate refresh token |
| GET | /api/identity | bearer | Current user identity |
| POST | /api/auth/logout | cookie | Revoke session |
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/seal/verify | bearer | Verify SealToken against artifact |
| GET | /api/seal/public-key | public | Tenant public key PEM |
| GET | /api/seal/keys | bearer | List ESK versions |
| POST | /api/seal/rotate | admin | Rotate signing key |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/archieve/events | bearer | Paginated event stream |
| GET | /api/archieve/events/:id | bearer | Single event |
| POST | /api/archieve/verify | bearer | Chain integrity verification |
| GET | /api/archieve/export | bearer | Download events (CSV/JSON) |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/logicbridge/connectors | bearer | List connectors |
| POST | /api/logicbridge/connectors | bearer | Create connector |
| POST | /api/logicbridge/connectors/:id/publish | bearer | Publish (SEAL sign) |
| POST | /api/logicbridge/explorer/request | bearer | API Explorer live request |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /v1/health | public | Full module health (all PJ modules) |
| GET | /health | public | Basic health check |
| GET | /ready | public | Readiness probe |
| GET | /api/admin/stats | admin | Admin dashboard stats |
| GET | /api/admin/audit/export | admin | Auth audit export |