Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions generated/api-types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1159,7 +1159,7 @@ export interface paths {
};
/**
* Subscribe to a channel (WebSocket)
* @description Open a WebSocket to subscribe to a channel. This is a WebSocket upgrade (HTTP 101), not a normal GET — clients send `Upgrade: websocket`. Browser/SDK clients that cannot set headers may pass the key as `?access_token=`. On connect the server sends a `welcome` frame (current presence + recent history), then live frames: `message` (a published event), `join`/`leave` (presence), `presence` (full list). The real path is `/v1/connect?channel=<id>`.
* @description Open a WebSocket to subscribe to a channel. This is a WebSocket upgrade (HTTP 101), not a normal GET — clients send `Upgrade: websocket`. Browser/SDK clients that cannot set headers may pass the key as `?access_token=`. On connect the server sends a `welcome` frame (current presence + recent history), then live frames: `message` (a published event), `join`/`leave` (presence), `presence` (full list).
*/
get: operations["realtimeConnect"];
put?: never;
Expand All @@ -1181,7 +1181,7 @@ export interface paths {
put?: never;
/**
* Publish an event to a channel
* @description Producer endpoint — publish one event to every subscriber of a channel. The real path is `/v1/channels/{channel}/publish`.
* @description Producer endpoint — publish one event to every subscriber of a channel.
*/
post: operations["realtimePublish"];
delete?: never;
Expand All @@ -1199,7 +1199,7 @@ export interface paths {
};
/**
* Current presence for a channel
* @description The real path is `/v1/channels/{channel}/presence`.
* @description Current presence membership for a channel.
*/
get: operations["realtimePresence"];
put?: never;
Expand All @@ -1219,7 +1219,7 @@ export interface paths {
};
/**
* Recent event history for a channel
* @description Last-N events (≤50). The real path is `/v1/channels/{channel}/history`.
* @description Last-N events (≤50).
*/
get: operations["realtimeHistory"];
put?: never;
Expand Down
39 changes: 19 additions & 20 deletions openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,11 @@ tags:
- name: Realtime
description: >-
Live control & event plane — presence, pub/sub broadcast, and the streaming-event bus the WAVE
AI products push into. Served at realtime.wave.online (not the api host); subscribe over one
WebSocket, producers publish over REST. Auth federates to the gateway.
AI products push into. Served at https://api.wave.online/v1/realtime/* like every other /v1
route; subscribe over one WebSocket, producers publish over REST. GA-CONTRACT-001 (2026-09-28):
these four operations previously carried a per-operation `servers` override to the bare host
`realtime.wave.online`, which does not resolve (NXDOMAIN) — removed below; the live route is
/v1/realtime/*, not a separate host.
- name: AV Mux/Demux
description: >-
Synchronous container-transform for local IP video + Dante/AES67 audio: mux separate RTP H.264
Expand Down Expand Up @@ -3462,8 +3465,16 @@ paths:
schema:
$ref: '#/components/schemas/SearchAnalyticsResponse'

# Realtime API — served at realtime.wave.online (per-operation server override). WebSocket subscribe
# is documented descriptively (OpenAPI has no native WS); REST publish/presence/history are first-class.
# Realtime API — GA-CONTRACT-001 (2026-09-28): served at https://api.wave.online/v1/realtime/*
# (no per-operation server override — these four operations use the document's default server
# like every other /v1 route). The four operations below previously carried a `servers` override
# to the bare host `realtime.wave.online`, which does not resolve (NXDOMAIN, confirmed via dig
# against 1.1.1.1 and 8.8.8.8 2026-09-28) — removed. The internal forwarding path is NOT this
# contract's concern and is no longer named in these descriptions, which previously read "the
# real path is /v1/connect..." — true of the internal forward target, misleading as advice to a
# caller of this API, who must call the documented /v1/realtime/* path exactly as declared.
# WebSocket subscribe is documented descriptively (OpenAPI has no native WS); REST
# publish/presence/history are first-class.
/realtime/connect:
get:
tags: [Realtime]
Expand All @@ -3474,10 +3485,7 @@ paths:
GET — clients send `Upgrade: websocket`. Browser/SDK clients that cannot set headers may pass the
key as `?access_token=`. On connect the server sends a `welcome` frame (current presence +
recent history), then live frames: `message` (a published event), `join`/`leave` (presence),
`presence` (full list). The real path is `/v1/connect?channel=<id>`.
servers:
- url: https://realtime.wave.online
description: WAVE Realtime edge
`presence` (full list).
Comment thread
yakimoto marked this conversation as resolved.
Comment thread
greptile-apps[bot] marked this conversation as resolved.
parameters:
- name: channel
in: query
Expand All @@ -3499,10 +3507,7 @@ paths:
tags: [Realtime]
summary: Publish an event to a channel
operationId: realtimePublish
description: Producer endpoint — publish one event to every subscriber of a channel. The real path is `/v1/channels/{channel}/publish`.
servers:
- url: https://realtime.wave.online
description: WAVE Realtime edge
description: Producer endpoint — publish one event to every subscriber of a channel.
parameters:
- name: channel
in: path
Expand Down Expand Up @@ -3537,10 +3542,7 @@ paths:
tags: [Realtime]
summary: Current presence for a channel
operationId: realtimePresence
description: The real path is `/v1/channels/{channel}/presence`.
servers:
- url: https://realtime.wave.online
description: WAVE Realtime edge
description: Current presence membership for a channel.
parameters:
- name: channel
in: path
Expand All @@ -3566,10 +3568,7 @@ paths:
tags: [Realtime]
summary: Recent event history for a channel
operationId: realtimeHistory
description: Last-N events (≤50). The real path is `/v1/channels/{channel}/history`.
servers:
- url: https://realtime.wave.online
description: WAVE Realtime edge
description: Last-N events (≤50).
parameters:
- name: channel
in: path
Expand Down
Loading