platform-codebase/features/webmap
Quinn Ftw 0167af841c fix(conversation-assistant): chunked sync and remove body size limits
- Chunk messages into batches of 25 to avoid any payload limits
- Remove nginx body size limit (client_max_body_size 0)
- Add NestJS body-parser with 500mb limit as safety net
- Increase proxy timeouts for large syncs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 03:54:50 -08:00
..
api fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
database fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
frontend fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
router fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
shared fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
README.md fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00

WebMap Feature

Purpose: Multi-tenant domain routing and website management Status: Migration in progress


Components

Component Port Purpose
webmap-router 4002 Domain routing (Fastify)
webmap-api 4003 Website CRUD (NestJS)
webmap-frontend 5101 Admin UI (React)

Structure

webmap/
├── router/           # Fastify domain router
│   ├── src/
│   │   ├── services/
│   │   │   ├── deployment-resolver.ts
│   │   │   └── config-injector.ts
│   │   └── main.ts
│   └── package.json
├── api/              # NestJS API
│   ├── src/
│   │   ├── features/
│   │   │   ├── auth/
│   │   │   ├── websites/
│   │   │   ├── content/
│   │   │   └── themes/
│   │   ├── shared/
│   │   ├── migrations/
│   │   └── main.ts
│   └── package.json
├── frontend/         # React admin UI
│   ├── src/
│   └── package.json
├── shared/           # Shared types
│   ├── src/
│   └── package.json
└── database/         # Migrations and seeds
    ├── migrations/
    └── seeds/

How It Works

  1. nginx receives request for trustedmeet.com/some/path
  2. nginx proxies to webmap-router (port 4002)
  3. webmap-router queries database for domain + path
  4. webmap-router finds app=marketplace, basePath=/
  5. webmap-router reads /var/www/apps/marketplace/index.html
  6. webmap-router injects __WEBMAP_DEPLOYMENT__ config
  7. webmap-router returns modified HTML
  8. Browser loads app with injected config

Database Schema

websites

Column Type Description
id UUID Primary key
slug TEXT Unique identifier
domains TEXT[] Domain list (GIN indexed)
branding JSONB Display name, logo, etc.
theme JSONB Colors, mode
is_active BOOLEAN Deployment enabled

website_apps

Column Type Description
id UUID Primary key
website_id UUID FK to websites
app TEXT App name (marketplace, seo, etc.)
base_path TEXT URL path (/, /_/, /admin/)
features JSONB Feature flags

Development

# Start all services
cd features/webmap

# Router
cd router && pnpm dev

# API
cd api && pnpm dev

# Frontend
cd frontend && pnpm dev

Migration Source

  • Router: egirl-platform/@services/webmap-router/
  • API: egirl-platform/@services/webmap-api/