The device connection system uses a cloud-first architecture where devices connect to the cloud, not the other way around. This means no IP addresses are needed and no firewall configuration is required.
Your Device (Home/Office)
↓ Connects to cloud via HTTPS
Cloud Server (Sulala.ai)
↓ Stores search requests
Your Device (Polls for requests)
↓ Executes search locally
↓ Sends results back
Cloud Server
↓ Returns results
You (Anywhere in the world)
Key Points:
Cloud Server
↓ Tries to connect to device IP
Your Device (Home)
❌ Firewall blocks
❌ NAT issues
❌ IP changes
❌ Doesn't work
Device Agent
↓ Every 30 seconds
POST /api/devices/heartbeat
↓ Updates "lastSeenAt"
Cloud marks device as "online"
You (on phone/laptop anywhere)
↓ Types "resume.pdf"
↓ Clicks "Search"
POST /api/devices/search/query
↓ Creates pending search query
↓ Status: "pending"
Cloud stores request
Device Agent
↓ Every 30 seconds (after heartbeat)
GET /api/devices/search/pending
↓ Returns pending searches
↓ Finds "resume.pdf" query
Device executes local search
Device Agent
↓ Searches local filesystem
↓ Finds: /Users/sai/Documents/resume.pdf
POST /api/devices/search
↓ Reports results
↓ Updates query status: "completed"
Cloud stores results
You (on phone/laptop)
↓ Polls or refreshes
GET /api/devices/search/query?queryId=...
↓ Returns results
↓ Shows: /Users/sai/Documents/resume.pdf
sulala.ai)| Solution | Connection Direction | IP Needed? | Firewall Issues? |
|---|---|---|---|
| Our System | Device → Cloud | ❌ No | ❌ No |
| Remote Desktop | Cloud → Device | ✅ Yes | ✅ Yes |
| Direct SSH | Cloud → Device | ✅ Yes | ✅ Yes |
| VPN | Bidirectional | ✅ Yes | ✅ Maybe |
What Happens:
No IP addresses, no firewall config, no VPN needed!
For real-time communication, we can add WebSockets:
Device Agent
↓ WebSocket connection
Cloud Server
↓ Push search requests instantly
Device Agent
↓ Execute and respond
But polling works great for now and is simpler!
✅ No IP addresses needed - Device connects to cloud domain
✅ Works from anywhere - Outbound connections only
✅ No firewall config - No inbound ports needed
✅ Secure - API keys + HTTPS
✅ Simple - Polling pattern is reliable
✅ Scalable - Works with many devices
This is exactly how services like Dropbox, Google Drive, and remote desktop tools work!