Architecture

Last generated 2026-07-13 · window 2026-07-12T18:02:00Z–2026-07-13T18:01:03Z

rapidstor-mono (Cloudflare Pages)          rapidstor legacy (Docker Swarm)
┌─────────────────────────┐               ┌──────────────────────────────┐
│ rapidstor-frontend (v2) │──REST/token──▶│ Express API /api/v1, /api/v2 │
│ rapidstor-chat (widget) │──SSE/WS──────▶│ Automate agent-runtime       │
│ @r6digital/rapidstor-types   MCP tools──▶│ (widget turns + MCP proxy)   │
└─────────────────────────┘               │ AngularJS admin + legacy FE   │
                                          │ BullMQ workers (sync/mail/…)  │
                                          └───────┬──────────┬───────────┘
                                                  │          │
                                              MongoDB     Redis
                                                  │
                                              SiteLink SOAP

Process model #

Single codebase, role via ROLE env:

  • (default) — web server
  • sync — SiteLink sync + rate-push workers
  • mail — delayed email/SMS
  • indexing — MongoDB index reconciliation (Atlas rolling builds + registry)

Data stores #

  • Central MongoDB — corporations, users, superUsers, mappings
  • Per-corp MongoDB databases — sites, units, reservations, descriptors, deals, etc.
  • Redis — sessions (optional), BullMQ queues

Cross-product: The mono chat widget streams turns from Automate agent-runtime (POST /widget/conversations/:id/messages SSE + watch WebSocket). Agent tools call RapidStor MCP at /api/v1/mcp for locations, unit types, and bookings. Legacy Laravel /api/v1/public/widget/chat/* routes remain for older deployments.