Service Wiring Contract: eyevinn-intercom-manager
Eyevinn Open Intercom Manager requires three dependencies created in order: SFU (Symphony Media Bridge) → CouchDB → Intercom Manager.
Dependency Creation Order
- Create SFU:
eyevinn-docker-wrtc-sfu(or your own SFU deployment) - Create CouchDB:
apache-couchdb - Create Intercom Manager:
eyevinn-intercom-manager
Field Reference
smbUrl — SFU HTTP endpoint
- Format: Plain HTTP/HTTPS URL, no embedded credentials, no query parameters
- Correct:
https://xxxx.svc.prod.osaas.io - Wrong:
https://user:password@xxxx.svc.prod.osaas.io(credentials must NOT be embedded) - Credentials belong in
smbApiKey, not in this URL
smbApiKey — SFU API key
- Format: Plain string (the SFU's API key)
- Stored separately from
smbUrlto keep credentials out of the URL field - Find this in the SFU instance's connection details
dbUrl — CouchDB connection string
- Format: Full CouchDB URL including the target database name in the path
- Correct:
http://admin:password@xxxx.svc.prod.osaas.io/intercom - Wrong:
http://admin:password@xxxx.svc.prod.osaas.io(missing/intercompath — service crashes on startup) - The database name (
intercom) is the last path segment — omitting it causes DB initialization failure - Credentials (admin/password) ARE embedded in this URL (CouchDB standard format)
- Also supports MongoDB:
mongodb://user:password@host/intercom
whipAuthKey — WHIP endpoint auth key (optional)
- Secret key for authenticating WHIP producers
- Store in parameter store if sensitive
Common Mistakes
- Credentials in smbUrl: Putting API credentials in the SFU URL instead of
smbApiKey. The SFU expects the API key as an HTTP header, not URL auth. - Missing database path in dbUrl: Using just
http://hostinstead ofhttp://host/intercom. The service parses the path segment as the database name and fails to initialize if it is absent.
Parameter Store Recommendation
Store smbApiKey, dbUrl (contains CouchDB password), and whipAuthKey as secrets via setup-parameter-store + set-parameter. Pass the parameter store name as configService when creating the Intercom instance.
Example Creation Flow
# Step 1: Create SFU
create-service-instance service=eyevinn-docker-wrtc-sfu name=my-sfu
# Step 2: Get SFU endpoint and API key from instance details
get-instance-status service=eyevinn-docker-wrtc-sfu name=my-sfu
# Step 3: Create CouchDB
create-service-instance service=apache-couchdb name=my-couchdb
# Step 4: Create Intercom — use PLAIN SFU URL (no auth), full CouchDB URL with /intercom path
create-service-instance service=eyevinn-intercom-manager name=my-intercom \
smbUrl=https://my-sfu.svc.prod.osaas.io \
smbApiKey=<key-from-sfu-details> \
dbUrl=http://admin:password@my-couchdb.svc.prod.osaas.io/intercom