|
|
@@ -19,6 +19,57 @@ message GetSystemInfoResponse {
|
|
|
repeated AdminDurableWorkerStatus durable_workers = 4;
|
|
|
// Whether projection diagnostics were collected successfully.
|
|
|
optional bool projections_available = 5;
|
|
|
+ // LiveKit voice and video call setup diagnostics.
|
|
|
+ AdminLiveKitStatus livekit = 6;
|
|
|
+}
|
|
|
+
|
|
|
+// LiveKit voice and video call setup as seen by the Chatto server that
|
|
|
+// handled the request. The response never includes the API secret or the
|
|
|
+// webhook signing secret.
|
|
|
+//
|
|
|
+// Chatto calls the LiveKit server API once for each request to check
|
|
|
+// reachability and credentials. Webhook times come from the memory of the
|
|
|
+// Chatto server that handled the request. They reset when that server
|
|
|
+// restarts, and other servers in a cluster keep their own times.
|
|
|
+message AdminLiveKitStatus {
|
|
|
+ // Whether `livekit.enabled` is set.
|
|
|
+ bool enabled = 1;
|
|
|
+ // Whether LiveKit is enabled and the URL, API key, and API secret are all set.
|
|
|
+ bool configured = 2;
|
|
|
+ // Configured LiveKit server URL that clients connect to.
|
|
|
+ string url = 3;
|
|
|
+ // Configured LiveKit API key. This is an identifier, not a secret.
|
|
|
+ string api_key = 4;
|
|
|
+ // Whether webhooks use a signing key that differs from `api_key`.
|
|
|
+ bool separate_webhook_key = 5;
|
|
|
+ // URL that LiveKit must send webhooks to. Empty when the public server URL is not set.
|
|
|
+ string webhook_url = 6;
|
|
|
+ // Result of the LiveKit server API check.
|
|
|
+ AdminLiveKitConnectionState connection_state = 7;
|
|
|
+ // Error detail when the check fails. Never contains secrets.
|
|
|
+ string connection_error = 8;
|
|
|
+ // True when `url` uses unencrypted `ws://` or `http://` and the public server URL host is not a loopback address or a `.localhost` name.
|
|
|
+ bool insecure_url = 9;
|
|
|
+ // Time of the last webhook with a valid signature that this server received.
|
|
|
+ google.protobuf.Timestamp last_webhook_at = 10;
|
|
|
+ // Time of the last webhook that this server rejected because of an invalid signature.
|
|
|
+ google.protobuf.Timestamp last_rejected_webhook_at = 11;
|
|
|
+}
|
|
|
+
|
|
|
+// Result of the LiveKit server API check.
|
|
|
+enum AdminLiveKitConnectionState {
|
|
|
+ // Unknown state.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_UNSPECIFIED = 0;
|
|
|
+ // LiveKit is not configured, so Chatto did not do the check.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_NOT_CONFIGURED = 1;
|
|
|
+ // LiveKit accepted the API call with the configured key and secret.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_OK = 2;
|
|
|
+ // Chatto could not connect to the LiveKit server URL.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_UNREACHABLE = 3;
|
|
|
+ // LiveKit rejected the configured API key or secret.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_UNAUTHORIZED = 4;
|
|
|
+ // The server at the URL replied with an unexpected error.
|
|
|
+ ADMIN_LIVE_KIT_CONNECTION_STATE_ERROR = 5;
|
|
|
}
|
|
|
|
|
|
// Broker-derived health for one known durable worker queue.
|
|
|
@@ -279,7 +330,8 @@ message AdminProjectionMetric {
|
|
|
|
|
|
// Provides server diagnostics for the admin system page.
|
|
|
service AdminDiagnosticsService {
|
|
|
- // Returns broker, JetStream, and projection diagnostics. Requires the
|
|
|
- // server owner role.
|
|
|
+ // Returns broker, JetStream, projection, and LiveKit diagnostics. Requires
|
|
|
+ // the server owner role. The call checks the LiveKit server API, so it can
|
|
|
+ // take up to five seconds when LiveKit does not reply.
|
|
|
rpc GetSystemInfo(GetSystemInfoRequest) returns (GetSystemInfoResponse);
|
|
|
}
|