Skip to content

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 docs

DocumentPurpose
SSO.mdHow to integrate with Camino OAuth2
WEBHOOKS.mdEcosystem webhook patterns
DECISION_EVENTS.mdDecision-driven workflow
PLATFORM_ROLES.mdWhat each platform does

Integration Status Matrix

Core Platform Integration

AppSSOWebhooksPaymentsCamino CommsMancha
Camino✅ Provider--Self-
Constanza✅ Client✅ Send + Receive-Via API-
Colectiva✅ Client✅ Send + Receive✅ HubVia API-
Caracol✅ Client✅ Send + Receive✅ CoDi + MPVia API✅ Sync
La Hoja✅ Client✅ Send (retry)✅ CoDi + MPVia API✅ Sync
Cosmos Pet✅ Client✅ Send✅ CoDi + PortalVia API✅ Booking
Mancha✅ Client✅ Send-✅ Via APIProvider
Agora✅ API Key-✅ TrustVia API-
Plenura✅ Client✅ Send + Receive✅ WalletVia API-
Continua----✅ Scheduling

AI Services Integration (via Constanza)

AppAI ServiceEndpointsStatus
ServilletaTask Matching AI/api/integrations/servilleta/task-matching/*✅ Ready
Puppy LoveDating Compatibility AI/api/integrations/puppy-love/matching/*✅ Ready
BaulLogistics Scheduling AI/api/integrations/baul/logistics/*✅ Ready
La HojaInventory 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

  1. Register with Camino - Get API key for communications
  2. Add SSO - Implement OAuth2 client (see SSO.md)
  3. Send Webhooks - Notify ecosystem of entity changes
  4. Receive Webhooks - Handle events from other platforms

For Existing Apps

  1. Check integration status in matrix above
  2. Implement missing integrations in priority order: SSO → Webhooks → Decisions

Environment Variables

All ecosystem apps should have:

env
# 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 needed

AI Service API Keys (in Constanza)

Apps consuming Constanza AI services need API keys configured in Constanza's .env:

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 AI

Consumer apps call Constanza endpoints with Bearer token authentication:

typescript
// 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.

Red Broom Software Ecosystem