Interface: ManagementStore
@roomful/relay / ManagementStore
Interface: ManagementStore
Section titled “Interface: ManagementStore”Defined in: packages/relay/src/management/store.ts:23
Pluggable storage backend for project/room/quota management data.
Implementations must be safe for concurrent access. The in-memory version is synchronous; Redis / DB versions will be async.
Methods
Section titled “Methods”createProject()
Section titled “createProject()”Defined in: packages/relay/src/management/store.ts:33
Creates a project and returns the stored record.
Parameters
Section titled “Parameters”description?
Section titled “description?”string = ...
string = ...
Optional id; auto-generated when omitted. Must be unique.
metadata?
Section titled “metadata?”Record<string, unknown> = ...
string = ...
ownerId
Section titled “ownerId”string = ...
Returns
Section titled “Returns”createRoom()
Section titled “createRoom()”createRoom(
projectId,input):RoomRecord|Promise<RoomRecord>
Defined in: packages/relay/src/management/store.ts:53
Creates a room record. Throws when the project does not exist.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
ephemeral?
Section titled “ephemeral?”boolean = ...
string = ...
Optional id; auto-generated when omitted.
metadata?
Section titled “metadata?”Record<string, unknown> = ...
string = ...
ttlMs?
Section titled “ttlMs?”number = ...
Returns
Section titled “Returns”RoomRecord | Promise<RoomRecord>
deleteProject()
Section titled “deleteProject()”deleteProject(
projectId):boolean|Promise<boolean>
Defined in: packages/relay/src/management/store.ts:42
Deletes a project and all associated rooms + quota. Returns true if it existed.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”boolean | Promise<boolean>
deleteQuota()
Section titled “deleteQuota()”deleteQuota(
projectId):boolean|Promise<boolean>
Defined in: packages/relay/src/management/store.ts:67
Removes the explicit quota for a project so it falls back to relay defaults.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”boolean | Promise<boolean>
deleteRoom()
Section titled “deleteRoom()”deleteRoom(
roomId):boolean|Promise<boolean>
Defined in: packages/relay/src/management/store.ts:56
Deletes a room. Returns true if it existed.
Parameters
Section titled “Parameters”roomId
Section titled “roomId”string
Returns
Section titled “Returns”boolean | Promise<boolean>
getProject()
Section titled “getProject()”getProject(
projectId):Project|Promise<Project|null> |null
Defined in: packages/relay/src/management/store.ts:30
Returns a single project, or null when not found.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”Project | Promise<Project | null> | null
getQuota()
Section titled “getQuota()”getQuota(
projectId):ProjectQuota|Promise<ProjectQuota|null> |null
Defined in: packages/relay/src/management/store.ts:61
Returns the quota for a project, or null when the project has no explicit quota.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”ProjectQuota | Promise<ProjectQuota | null> | null
getRoom()
Section titled “getRoom()”getRoom(
roomId):RoomRecord|Promise<RoomRecord|null> |null
Defined in: packages/relay/src/management/store.ts:50
Returns a single room, or null when not found.
Parameters
Section titled “Parameters”roomId
Section titled “roomId”string
Returns
Section titled “Returns”RoomRecord | Promise<RoomRecord | null> | null
getUsage()
Section titled “getUsage()”getUsage(
projectId):ProjectUsage|Promise<ProjectUsage>
Defined in: packages/relay/src/management/store.ts:72
Returns a point-in-time usage snapshot for a project.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”ProjectUsage | Promise<ProjectUsage>
listProjects()
Section titled “listProjects()”Defined in: packages/relay/src/management/store.ts:27
Lists all projects visible to ownerId. Pass '*' to bypass filtering.
Parameters
Section titled “Parameters”ownerId
Section titled “ownerId”string
Returns
Section titled “Returns”Project[] | Promise<Project[]>
listRooms()
Section titled “listRooms()”listRooms(
projectId):RoomRecord[] |Promise<RoomRecord[]>
Defined in: packages/relay/src/management/store.ts:47
Lists all rooms belonging to a project.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
Returns
Section titled “Returns”RoomRecord[] | Promise<RoomRecord[]>
setQuota()
Section titled “setQuota()”setQuota(
projectId,input):ProjectQuota|Promise<ProjectQuota>
Defined in: packages/relay/src/management/store.ts:64
Creates or replaces the quota for a project.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
maxEphemeralTtlMs?
Section titled “maxEphemeralTtlMs?”number = ...
maxPeersPerRoom?
Section titled “maxPeersPerRoom?”number = ...
maxRooms?
Section titled “maxRooms?”number = ...
maxTotalPeers?
Section titled “maxTotalPeers?”number = ...
maxTotalStateBytes?
Section titled “maxTotalStateBytes?”number = ...
messageRateIntervalMs?
Section titled “messageRateIntervalMs?”number = ...
messageRateLimit?
Section titled “messageRateLimit?”number = ...
Returns
Section titled “Returns”ProjectQuota | Promise<ProjectQuota>
updateProject()
Section titled “updateProject()”updateProject(
projectId,input):Project|Promise<Project|null> |null
Defined in: packages/relay/src/management/store.ts:36
Updates a project in-place. Returns the updated record or null when not found.
Parameters
Section titled “Parameters”projectId
Section titled “projectId”string
description?
Section titled “description?”string = ...
metadata?
Section titled “metadata?”Record<string, unknown> = ...
string = ...