Skip to content

Backend: add force-disconnect endpoint and data-channel disconnect signal #294

Description

@birme

Parent: Eyevinn/intercom-frontend#638 (admin control panel, epic #280). Broken out by daily-backlog-pr triage on 2026-08-26 — the "kick user" feature needs a backend capability that does not exist today (only remote-mute exists).

Add a backend capability to force-remove a participant from a line.

  • New authenticated route in api_productions.ts (e.g. POST /productions/:id/lines/:lineId/participants/:sessionId/disconnect) that targets a participant by backend sessionId.
  • Broadcast an SMB data-channel EndpointMessage with a new payload (e.g. { forceDisconnect: true }) addressed to the target endpointId so the target client can tear itself down.
  • Ensure production_manager cleanup: mark the session expired / remove it and emit users:change so getUsersForLine no longer returns the participant (drives "others see the user leave").
  • Investigate whether SMB endpoint teardown is needed (smb.ts currently has no delete-endpoint method) or whether signaling the client to close its RTCPeerConnection is sufficient for SMB to reap the endpoint.

Acceptance: endpoint returns 2xx, target session removed from line, data-channel signal emitted, tests added.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions