Class: SshRouteRegistry
Owns user-scoped AppKit paths that proxy to HTTP ports over SSH forwarding.
Route ownership is checked against AppKit request identity before HTTP or WebSocket traffic reaches the remote service. User hashes only prevent path collisions and do not replace ownership checks.
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new SshRouteRegistry(
prefix):SshRouteRegistry
Creates an empty registry beneath one normalized AppKit route prefix.
Parameters
Section titled “Parameters”prefix
Section titled “prefix”string
Returns
Section titled “Returns”SshRouteRegistry
Methods
Section titled “Methods”add(
session,input):Promise<SshForwardedRoute>
Registers or reuses a route and starts its local SSH forwarding bridge.
User-created paths are placed beneath userPathPrefix. Internal built-in service paths must provide their complete reserved path.
Parameters
Section titled “Parameters”session
Section titled “session”RouteInput
Returns
Section titled “Returns”Promise<SshForwardedRoute>
canHandleUpgrade()
Section titled “canHandleUpgrade()”canHandleUpgrade(
path):boolean
Returns whether an upgrade path belongs to a registered route or browser relay.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”boolean
close()
Section titled “close()”close():
Promise<void>
Removes every route and closes the shared HTTP/WebSocket proxy.
Returns
Section titled “Returns”Promise<void>
handleUpgrade()
Section titled “handleUpgrade()”handleUpgrade(
request,socket,head):Promise<boolean>
Proxies an authorized matching HTTP Upgrade request, including WebSockets.
Parameters
Section titled “Parameters”request
Section titled “request”IncomingMessage
socket
Section titled “socket”Socket
Buffer
Returns
Section titled “Returns”Promise<boolean>
list()
Section titled “list()”list(
machineId?,ownerId?,options?):SshForwardedRoute[]
Lists routes, optionally filtered by machine and owner. Internal routes are excluded by default.
Parameters
Section titled “Parameters”machineId?
Section titled “machineId?”string
ownerId?
Section titled “ownerId?”string
options?
Section titled “options?”includeInternal?
Section titled “includeInternal?”boolean
Returns
Section titled “Returns”middleware()
Section titled “middleware()”middleware(): (
request,response,next) =>Promise<void>
Returns Express middleware that authorizes, rewrites, and proxies matching HTTP requests. Unmatched requests continue to the next AppKit handler.
Returns
Section titled “Returns”(request, response, next) => Promise<void>
remove()
Section titled “remove()”remove(
routeId,ownerId?):Promise<boolean>
Removes an owned route, closes active sockets, and deletes its local bridge.
Parameters
Section titled “Parameters”routeId
Section titled “routeId”string
ownerId?
Section titled “ownerId?”string
Returns
Section titled “Returns”Promise<boolean>
removeMachine()
Section titled “removeMachine()”removeMachine(
machineId,ownerId?):Promise<void>
Removes every matching route for one machine and optional owner.
Parameters
Section titled “Parameters”machineId
Section titled “machineId”string
ownerId?
Section titled “ownerId?”string
Returns
Section titled “Returns”Promise<void>
revokeOwner()
Section titled “revokeOwner()”revokeOwner(
machineId,ownerId):void
Revokes one owner’s active and future access to machine-owned service routes.
Parameters
Section titled “Parameters”machineId
Section titled “machineId”string
ownerId
Section titled “ownerId”string
Returns
Section titled “Returns”void
userPathPrefix()
Section titled “userPathPrefix()”userPathPrefix(
ownerId):string
Returns the collision-avoidance path namespace for one authenticated user.
Parameters
Section titled “Parameters”ownerId
Section titled “ownerId”string
Returns
Section titled “Returns”string
whenSessionDrained()
Section titled “whenSessionDrained()”whenSessionDrained(
session):Promise<void>
Resolves after a replaced SSH session no longer backs routes or forwarded sockets.
Parameters
Section titled “Parameters”session
Section titled “session”Returns
Section titled “Returns”Promise<void>