IntegrateWise Platform Map
Navigation document for v0 go-live.
It maps every frontend surface to the backend services, storage ownership, and the golden execution flow.
When this file andAGENTS.mdor the frozen architecture docs disagree, the frozen docs win.
USERS / HOSTS / AGENTS
|
|
┌─────────────┐
│ One Auth │
│ Identity │
└──────┬──────┘
|
┌──────────────────────┴──────────────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Human Entry │ │ MCP Entry │
│ Workbench │ │ MCP Clients │
└────────┬─────────┘ └────────┬─────────┘
│ │
▼ ▼
Frontend Layer
| App | Surface | Responsibility | Vercel Project | Custom Domain | Status |
|---|---|---|---|---|---|
apps/web | Main Workbench + Tenant Routing | Primary user workbench, subdomain-based tenant routing, role-aware views | integratewise-web | app.spineworkspace.com | deployed, verified |
apps/platform | Platform Console | Platform Control Board, Integration Manager, Governance, Continuity | integratewise-platform | platform.spineworkspace.com | deployed, verified |
apps/one-access | Auth Experience | Login, signup, onboarding, host detection | integratewise-one-access | auth.spineworkspace.com | deployed, verified |
apps/marketing | Public Website | Public marketing site | integratewise-marketing | www.spineworkspace.com | deployed, DNS pending |
Notes:
- These are independent Next.js apps. Each is deployed as its own Vercel project.
- Do not deploy the repository root as a single Vercel Services monolith for v0; that path has already failed (
integratewise-livebuild UNKNOWN). Backend services stay on Cloudflare Workers.
Subdomain Routing
v0 uses subdomain-based routing rather than path-based routing. Each frontend app owns a dedicated subdomain.
Domain Tiers
| Domain | Purpose | Services |
|---|---|---|
spineworkspace.com | Production — all workers, MCP, frontends | Gateway, all services, all apps |
integratewise.online | Development — workers, MCP, spine | Gateway, services, dev apps |
integratewise.ai / integratewise.co | Customer Zero — workers, MCP, spine | Gateway, services, customer-zero apps |
Production Subdomains (spineworkspace.com)
| Subdomain | App / Surface | Project | Backend origin |
|---|---|---|---|
www.spineworkspace.com | Public website | integratewise-marketing | NEXT_PUBLIC_API_BASE_URL (Cloudflare Gateway) |
app.spineworkspace.com | Main Workbench | integratewise-web | Cloudflare Gateway |
platform.spineworkspace.com | Platform Console | integratewise-platform | Cloudflare Gateway |
auth.spineworkspace.com | Auth / onboarding | integratewise-one-access | Cloudflare Gateway |
{tenant}.spineworkspace.com | Tenant workspace | integratewise-web | Cloudflare Gateway |
gateway.spineworkspace.com | API Gateway | Cloudflare Worker | Direct |
Customer Zero Subdomains (integratewise.ai)
| Subdomain | App / Surface |
|---|---|
app.integratewise.ai | Main Workbench |
gateway.integratewise.ai | API Gateway |
preview.integratewise.ai | Preview deployments |
Development Subdomains (integratewise.online)
| Subdomain | App / Surface |
|---|---|
app.integratewise.online | Main Workbench (dev) |
platform.integratewise.online | Platform Console (dev) |
Path-based rewrites in the repository root vercel.json are not used for v0. The root vercel.json Services manifest is archived until backend services are moved onto Vercel (not planned for v0).
DNS setup (required)
spineworkspace.com is on Cloudflare nameservers and is already added to the Vercel team.
For each custom domain, add a CNAME record in Cloudflare DNS pointing to cname.vercel-dns.com:
www.spineworkspace.com CNAME cname.vercel-dns.com. (proxied)
app.spineworkspace.com CNAME cname.vercel-dns.com. (proxied)
platform.spineworkspace.com CNAME cname.vercel-dns.com. (proxied)
auth.spineworkspace.com CNAME cname.vercel-dns.com. (proxied)
For tenant subdomains ({tenant}.spineworkspace.com), add a wildcard CNAME:
*.spineworkspace.com CNAME cname.vercel-dns.com. (proxied)
Vercel TXT verification record for www.spineworkspace.com:
_vercel.spineworkspace.com TXT vc-domain-verify=www.spineworkspace.com,39dcfb1d9a7120c3ebf7
Platform Gateway
Path: services/gateway
Responsibilities:
- Authentication validation
- Tenant resolution
- Workspace resolution
- Request routing
- Rate limits
- Zero-trust enforcement
The Gateway is the single frontend↔backend entrypoint, deployed as a Cloudflare Worker.
│
├─────────────────────────────────────────────────┐
│ │
▼ ▼
Core Platform Services
Tenant & Identity
services/tenants
Owns:
- tenant lifecycle
- provisioning
- runtime registry
Storage:
- Neon Control Plane
tenantsdeployment_manifeststenant_runtime_registry
services/admin
Owns:
- platform administration
- policies
- operations
services/identity
Owns:
- users
- memberships
- roles
- permissions
Storage:
- D1 Tenant Spine
Connectivity Fabric
services/integration-management-mcp
Owns:
- connector discovery
- MCP integration management
- tool registration
services/provider-management-mcp
Owns:
- provider metadata
- provider capabilities
services/connector-sync
Owns:
- OAuth sync
- ingestion jobs
- connector hydration
services/mcp-connector
Owns:
- MCP connector runtime
services/mcp-pool
Owns:
- MCP tool execution pool
Storage:
- Neon
connector_catalogmcp_catalog
- D1
tenant_connectionscapability_registry
Spine / Context Layer
services/spine
The operational truth layer.
Owns:
- entities
- relationships
- versions
- lineage
Storage:
- D1
entity_spineexternal_identitiesspine_relationshipsentity_versions
│
│
▼
services/loader
Owns:
- ingestion pipeline
- normalization
- hydration
services/knowledge
Owns:
- documents
- RAG
- embeddings
Storage:
- D1
- R2
- Vectorize
Intelligence Layer
services/hermes
Owns:
- assistant experience
- interaction layer
services/twin-orchestrator
Owns:
- Twin planning
- cognitive orchestration
services/iw-agent-runtime
Owns:
- agent execution
- tools
- memory interaction
services/continuity
Owns:
- agent state
- continuity ledger
- session memory
Storage:
- D1
memory_entriescontinuity_ledgeragent_sessions
Execution & Governance
services/task-management
Owns:
- tasks
- work items
- assignments
services/workflow
Owns:
- long-running workflows
services/pipeline
Owns:
- business pipelines
services/intelligence
Owns:
- reasoning services
- AI capabilities
Execution Flow:
User Intent
│
▼
Twin Orchestrator
│
▼
Capability Service
│
▼
Governance
│
▼
Task / Workflow
│
▼
Provider Execution
│
▼
Reconciliation
Event + Realtime Infrastructure
Cloudflare Runtime:
Workers
│
├─ Gateway
└─ Services
D1
│
└─ Operational Spine
KV
│
├─ Sessions
└─ Cache
R2
│
├─ Evidence
└─ Documents
Queues
│
├─ Sync jobs
├─ Hydration
└─ Execution retry
Durable Objects
│
├─ realtime sessions
└─ coordination
Workers AI
│
└─ inference
AI Gateway
│
└─ model routing
Data Authority
JSONB Canvas Views
Canvas views (workspace pages) are stored as JSONB in D1/PostgreSQL, not localStorage.
| Store | What it holds | Location |
|---|---|---|
workspace_page entities | Canvas component state, layout, data bindings, actions | D1 entity_spine.attributes (JSONB) |
tenant_view_registry | View contracts, fetch plans, field projections | D1 tenant_view_registry (JSONB) |
tenant_view_links | Cross-view navigation contracts | D1 tenant_view_links (JSONB) |
memory_entries | Agent/operational memory | D1 memory_entries (JSONB) |
context_fetch_runs | Fetch traces, SQL traces, cache traces | D1 context_fetch_runs (JSONB) |
The canvas view JSONB structure:
{
"icon": "📊",
"department": "sales",
"components": [
{
"id": "c1",
"type": "kanban",
"label": "Pipeline",
"x": 0,
"y": 2,
"width": 8,
"height": 6,
"dataSource": { "type": "spine", "sourceId": "sales.opportunities" },
"actions": [{ "id": "advance", "label": "Advance", "capability": "deal.advance" }],
"config": { "groupBy": "stage" }
}
],
"isFavorite": false,
"isTemplate": true,
"sortOrder": 0
}
Neon Control Plane
Owns:
- Tenant
tenantsorganizationssubscriptionsentitlements
- Marketplace
connector_catalogplugin_catalogmcp_catalog
- Governance
platform_policiesschema_versions
│
│
▼
D1 Tenant Operational Spine
Owns:
- workspace state
- entity graph
- memory
- continuity
- approvals
- work items
- projections
- reconciliation
Golden Flow
CONNECT
Connector Marketplace
│
▼
Integration Service
│
▼
Connector Sync
│
▼
Loader
│
▼
Spine
UNDERSTAND
Spine
│
▼
Knowledge
│
▼
Business Context
│
▼
Twin
ACT
Twin Proposal
│
▼
Governance
│
▼
Capability
│
▼
Execution
VERIFY
Provider
│
▼
Reconciliation
│
▼
Evidence
│
▼
Projection Refresh
Request Path Through the Stack
Browser / MCP Client
│
▼
Frontend (Vercel)
│
├─ NEXT_PUBLIC_* inlined at build time
└─ API routes → Gateway
│
▼
Gateway (Cloudflare Worker)
│
├─ validate auth
├─ resolve tenant/workspace
└─ route to service
│
▼
Service (Cloudflare Worker)
│
├─ read from Spine/D1/KV/R2
├─ emit write intent
└─ return projection
│
▼
Spine / Storage (D1, R2, KV, Vectorize)
Deployment Boundaries
| Plane | Ownership | Deploy Target | DB Infrastructure |
|---|---|---|---|
| Frontend experience | apps/web, apps/platform, apps/one-access, apps/marketing | Vercel (one project per app) | None — reads via Projection API only |
| Gateway | services/gateway | Cloudflare Worker | D1 (Operational Spine cache) |
| Core services | services/* | Cloudflare Workers | D1 + KV + R2 + Vectorize + Durable Objects |
| Operational truth | services/spine + D1 | Cloudflare D1 | D1 (cache), reads from Neon via sync pipeline |
| Control plane | Tenant/provider/catalog data | Neon | PostgreSQL (Canonical DB — Fortress) |
| Files / evidence | Knowledge, loader outputs | Cloudflare R2 | R2 object storage |
| Model routing | AI calls | Cloudflare AI Gateway + Workers AI | AI Gateway routing |
The rule: Vercel frontend NEVER touches a database directly. All reads go through the Gateway → Projection Platform → Operational Spine (D1/KV). All writes go through the Promotion Queue → Canonical DB (Neon).
Architectural Law
- Frontend owns experience.
- Gateway owns access.
- Services own business capability.
- Spine owns operational truth.
- Projection owns views.
- AI proposes.
- Governance controls.
- Reconciliation confirms.