Skip to content

Describe the sockets at the API's addresses, a voice call's socket and the Recorder's topic - #1618

Open
davidmckayv wants to merge 2 commits into
mainfrom
api/asyncapi-v2-addresses
Open

davidmckayv wants to merge 2 commits into
mainfrom
api/asyncapi-v2-addresses

Conversation

@davidmckayv

Copy link
Copy Markdown
Contributor

Stacked on #1616; its base moves to main when that merges.

What

  • The API's addresses. Conversation events, a Bot's screen and its terminal are described at /api/v2/organizations/{organizationId}/conversation-events, /computers/{botId}/screen and /computers/{botId}/terminal, as the channels conversationEvents, botScreen and botTerminal. The addresses they have had until now stay described as the legacy channels, with the same messages.
  • Signing in. At the API's addresses a socket takes the web app's session, an API key, or an app's access token as Authorization: Bearer on the request that opens it. An app's token needs conversations:read for conversation events and computers:read for a Bot's computer; without computers:write it watches only, and its input is answered with the socket's own error message.
  • A voice call. The voice service's realtime socket is described as a server of its own, which a client dials directly with the address and one-call secret the REST operation that starts a call answers. A call set up over WebRTC has no socket, and the file says that is outside what AsyncAPI describes.
  • The Recorder. Its trajectory:{trajectoryId} topic on the gateway's socket: join, batches of events, and the reply to each.

Checks

Tested

Against a running OpenBot that serves these addresses, with Intelligence 0.16.0-rc.13, in Chromium and in headless WebKit: conversation events and a Bot's screen opened at the API's addresses from a signed-in page carry the messages this file gives them, beside the legacy addresses the web app opens today. The bearer sign-in and the watch-only rule are tested on the server with real tokens.

Merge order

This describes addresses a server serves from its next build, so it merges once that build is on the server's main. The three scopes also need adding to the REST spec's OAuth scheme, which is with that file's owner.

Base automatically changed from api/asyncapi-channels to main November 14, 2026 15:28
…d the Recorder's topic

Conversation events, a Bot's screen and its terminal get the plain channel names at their addresses
under /api/v2/organizations/{organizationId}, signed in to by a session, an API key or an app's
access token; the addresses they had before stay described as the legacy channels. A voice call on
the voice service's realtime socket and the Recorder's trajectory topic on the gateway are described
too, and a call over WebRTC is said to be outside what AsyncAPI describes.
@davidmckayv
davidmckayv force-pushed the api/asyncapi-v2-addresses branch from 3008933 to 64b78db Compare November 14, 2026 15:28

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant