RBS Ecosystem Integration Documentation
Last Updated: January 25, 2026 Location: This is the canonical source for all ecosystem integration docs
Documentation Structure
/Projects/docs/
├── ECOSYSTEM_ROADMAP_2026.md # Master roadmap (source of truth)
├── RBS_ECOSYSTEM_REAL_STATUS.md # Current app status
├── integration/ # Integration guides (this directory)
│ ├── README.md # This file
│ ├── SSO.md # OAuth2 SSO integration
│ ├── WEBHOOKS.md # Webhook patterns
│ ├── DECISION_EVENTS.md # Decision event architecture
│ └── PLATFORM_ROLES.md # Platform responsibilities
└── archive/ # Historical docs
/Projects/<app>/
├── ECOSYSTEM_CONTEXT.md # What this app is, its role
└── docs/ # App-specific technical docsQuick Links
| Document | Purpose |
|---|---|
| SSO.md | How to integrate with Camino OAuth2 |
| WEBHOOKS.md | Ecosystem webhook patterns |
| DECISION_EVENTS.md | Decision-driven workflow |
| PLATFORM_ROLES.md | What each platform does |
Integration Status Matrix
Core Platform Integration
| App | SSO | Webhooks | Payments | Camino Comms | Mancha |
|---|---|---|---|---|---|
| Camino | ✅ Provider | - | - | Self | - |
| Constanza | ✅ Client | ✅ Send + Receive | - | Via API | - |
| Colectiva | ✅ Client | ✅ Send + Receive | ✅ Hub | Via API | - |
| Caracol | ✅ Client | ✅ Send + Receive | ✅ CoDi + MP | Via API | ✅ Sync |
| La Hoja | ✅ Client | ✅ Send (retry) | ✅ CoDi + MP | Via API | ✅ Sync |
| Cosmos Pet | ✅ Client | ✅ Send | ✅ CoDi + Portal | Via API | ✅ Booking |
| Mancha | ✅ Client | ✅ Send | - | ✅ Via API | Provider |
| Agora | ✅ API Key | - | ✅ Trust | Via API | - |
| Plenura | ✅ Client | ✅ Send + Receive | ✅ Wallet | Via API | - |
| Continua | - | - | - | - | ✅ Scheduling |
AI Services Integration (via Constanza)
| App | AI Service | Endpoints | Status |
|---|---|---|---|
| Servilleta | Task Matching AI | /api/integrations/servilleta/task-matching/* | ✅ Ready |
| Puppy Love | Dating Compatibility AI | /api/integrations/puppy-love/matching/* | ✅ Ready |
| Baul | Logistics Scheduling AI | /api/integrations/baul/logistics/* | ✅ Ready |
| La Hoja | Inventory AI | /api/integrations/la-hoja/inventory-ai/* | ✅ Ready |
Note: AI services are hosted in Constanza and consumed by apps via API key authentication. All services include rule-based fallback when Groq AI is unavailable.
Core Principles
1. Standalone + Enhanced
Each platform works independently. Integration is an enhancement, not a requirement.
2. Camino as Hub
- SSO: Camino OAuth2 provides unified identity
- Communications: Email, WhatsApp, Voice through Camino APIs
- No direct app-to-app communication (except webhooks)
3. Decision-Driven Workflow
Decisions made in Colectiva trigger coordinated actions across platforms.
4. Idempotent Webhooks
All webhook handlers must be idempotent. Events include eventId for deduplication.
Getting Started
For New Apps
- Register with Camino - Get API key for communications
- Add SSO - Implement OAuth2 client (see SSO.md)
- Send Webhooks - Notify ecosystem of entity changes
- Receive Webhooks - Handle events from other platforms
For Existing Apps
- Check integration status in matrix above
- Implement missing integrations in priority order: SSO → Webhooks → Decisions
Environment Variables
All ecosystem apps should have:
# Camino SSO (for OAuth2)
RBS_CLIENT_ID=your_oauth_client_id
RBS_CLIENT_SECRET=your_oauth_client_secret
# Camino APIs (for communications)
CAMINO_API_URL=https://camino.redbroomsoftware.com
CAMINO_API_SECRET=cam_yourapp_xxxxx
# Webhook Secrets (for receiving)
COLECTIVA_WEBHOOK_SECRET=whsec_xxxxx
CONSTANZA_WEBHOOK_SECRET=whsec_xxxxx
# ... other apps as neededAI Service API Keys (in Constanza)
Apps consuming Constanza AI services need API keys configured in Constanza's .env:
# AI Service Consumer Keys
SERVILLETA_API_KEY=srv_xxxxx # Task Matching AI
PUPPY_LOVE_API_KEY=ppl_xxxxx # Dating Compatibility AI
BAUL_API_KEY=baul_xxxxx # Logistics Scheduling AI
LA_HOJA_API_KEY=lhj_xxxxx # Inventory AIConsumer apps call Constanza endpoints with Bearer token authentication:
// Example: Servilleta calling Task Matching AI
const response = await fetch('https://constanza.redbroomsoftware.com/api/integrations/servilleta/task-matching', {
method: 'POST',
headers: {
'Authorization': `Bearer ${CONSTANZA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ task, taskers, options })
});This documentation is maintained centrally. Do not duplicate in project-specific docs.