LogicSuite is a public-sector governance platform. LogicOS (os.publiclogic.org) is the primary user interface. PuddleJumper (PJ) is the backend API and rules engine running on Fly.io.
Open os.publiclogic.org and sign in with GitHub or Google. OAuth tokens are session-cookie based. Refresh is automatic.
All tools available to your role appear as tiles. Click any tool to launch it. Recent CaseSpaces appear below for quick re-entry.
Open LogicPen to write and print governed documents. Use built-in templates or your LogicCommons templates. Save to Vault.
Open LogicBackend to register API connectors (LOGICBRIDGE) and test live API calls in the API Explorer.
Open FormKey to create governed intake forms. Forms require a legal basis, purpose, and retention tier before publishing.
Use Admin → PJ Health to see real-time status of all backend modules. Use Audit Trail to inspect the ARCHIEVE event chain.
# 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
# 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, formkey, logicbridge, seal,
│ archieve, syncronate, casespace, connectors,
│ admin, prr, access, axis, governance
├── formkey/ 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 runs through FormKey. Two paths:
| Path | Steps |
|---|---|
| Intake | Schema validate → Consent check → SEAL stamp → VAULT write → ARCHIEVE event |
| Output / Render | SEAL verify → Field binding resolution → JSON output (HTML template library in future) |
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/formkey/forms | bearer | List FormDefinitions |
| POST | /api/formkey/forms | bearer | Create draft |
| POST | /api/formkey/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/formkey/forms/:id/render/:recordId | bearer | Render VAULT record as form output |
| GET | /api/formkey/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 |