Unclassified

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 and AGENTS.md or the frozen architecture docs disagree, the frozen docs win.


                           USERS / HOSTS / AGENTS
                                     |
                                     |
                              ┌─────────────┐
                              │  One Auth   │
                              │  Identity   │
                              └──────┬──────┘
                                     |
              ┌──────────────────────┴──────────────────────┐
              │                                             │
              ▼                                             ▼
    ┌──────────────────┐                         ┌──────────────────┐
    │ Human Entry      │                         │ MCP Entry        │
    │ Workbench        │                         │ MCP Clients      │
    └────────┬─────────┘                         └────────┬─────────┘
             │                                            │
             ▼                                            ▼

Frontend Layer

AppSurfaceResponsibilityVercel ProjectCustom DomainStatus
apps/webMain Workbench + Tenant RoutingPrimary user workbench, subdomain-based tenant routing, role-aware viewsintegratewise-webapp.spineworkspace.comdeployed, verified
apps/platformPlatform ConsolePlatform Control Board, Integration Manager, Governance, Continuityintegratewise-platformplatform.spineworkspace.comdeployed, verified
apps/one-accessAuth ExperienceLogin, signup, onboarding, host detectionintegratewise-one-accessauth.spineworkspace.comdeployed, verified
apps/marketingPublic WebsitePublic marketing siteintegratewise-marketingwww.spineworkspace.comdeployed, 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-live build 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

DomainPurposeServices
spineworkspace.comProduction — all workers, MCP, frontendsGateway, all services, all apps
integratewise.onlineDevelopment — workers, MCP, spineGateway, services, dev apps
integratewise.ai / integratewise.coCustomer Zero — workers, MCP, spineGateway, services, customer-zero apps

Production Subdomains (spineworkspace.com)

SubdomainApp / SurfaceProjectBackend origin
www.spineworkspace.comPublic websiteintegratewise-marketingNEXT_PUBLIC_API_BASE_URL (Cloudflare Gateway)
app.spineworkspace.comMain Workbenchintegratewise-webCloudflare Gateway
platform.spineworkspace.comPlatform Consoleintegratewise-platformCloudflare Gateway
auth.spineworkspace.comAuth / onboardingintegratewise-one-accessCloudflare Gateway
{tenant}.spineworkspace.comTenant workspaceintegratewise-webCloudflare Gateway
gateway.spineworkspace.comAPI GatewayCloudflare WorkerDirect

Customer Zero Subdomains (integratewise.ai)

SubdomainApp / Surface
app.integratewise.aiMain Workbench
gateway.integratewise.aiAPI Gateway
preview.integratewise.aiPreview deployments

Development Subdomains (integratewise.online)

SubdomainApp / Surface
app.integratewise.onlineMain Workbench (dev)
platform.integratewise.onlinePlatform 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
    • tenants
    • deployment_manifests
    • tenant_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_catalog
    • mcp_catalog
  • D1
    • tenant_connections
    • capability_registry

Spine / Context Layer

services/spine

The operational truth layer.

Owns:

  • entities
  • relationships
  • versions
  • lineage

Storage:

  • D1
    • entity_spine
    • external_identities
    • spine_relationships
    • entity_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_entries
    • continuity_ledger
    • agent_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.

StoreWhat it holdsLocation
workspace_page entitiesCanvas component state, layout, data bindings, actionsD1 entity_spine.attributes (JSONB)
tenant_view_registryView contracts, fetch plans, field projectionsD1 tenant_view_registry (JSONB)
tenant_view_linksCross-view navigation contractsD1 tenant_view_links (JSONB)
memory_entriesAgent/operational memoryD1 memory_entries (JSONB)
context_fetch_runsFetch traces, SQL traces, cache tracesD1 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
    • tenants
    • organizations
    • subscriptions
    • entitlements
  • Marketplace
    • connector_catalog
    • plugin_catalog
    • mcp_catalog
  • Governance
    • platform_policies
    • schema_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

PlaneOwnershipDeploy TargetDB Infrastructure
Frontend experienceapps/web, apps/platform, apps/one-access, apps/marketingVercel (one project per app)None — reads via Projection API only
Gatewayservices/gatewayCloudflare WorkerD1 (Operational Spine cache)
Core servicesservices/*Cloudflare WorkersD1 + KV + R2 + Vectorize + Durable Objects
Operational truthservices/spine + D1Cloudflare D1D1 (cache), reads from Neon via sync pipeline
Control planeTenant/provider/catalog dataNeonPostgreSQL (Canonical DB — Fortress)
Files / evidenceKnowledge, loader outputsCloudflare R2R2 object storage
Model routingAI callsCloudflare AI Gateway + Workers AIAI 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.