Skip to main content

Class: SanctionManager

Manages sanctions for a project.

Constructors​

new SanctionManager()​

new SanctionManager(ctx, projectId): SanctionManager

Internal

Parameters​

ParameterType
ctxClientContext
projectIdstring

Returns​

SanctionManager

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:31

Methods​

create()​

create(body): Promise<Sanction>

Create a new sanction

Parameters​

ParameterTypeDescription
bodyobjectSanction creation payload
body.endAt?stringDescription When the sanction ends (null = permanent) Example 2024-01-15T11:00:00Z
body.externalUserId?stringDescription External user ID from ODIN (for cross-session sanctions) Example user_abc123
body.gatheringId?stringDescription Gathering (lobby) the sanction was issued in, so a game can list the sanctions of one lobby Example 550e8400-e29b-41d4-a716-446655440002
body.metadata?objectDescription Additional metadata (evidence, AI confidence, etc.) Example { * "confidence": 0.95, * "triggeredBy": "profanity_filter" * }
body.participantId?stringDescription Participant ID to sanction (for session-scoped sanctions) Example 550e8400-e29b-41d4-a716-446655440000
body.reason?stringDescription Reason for the sanction Example Repeated use of profanity detected by automated filter
body.scope?objectDescription Scope configuration for channel-specific sanctions Example { * "channels": [ * "team", * "proximity" * ] * }
body.sessionId?stringDescription Session ID (for session-scoped sanctions) Example 550e8400-e29b-41d4-a716-446655440001
body.startAt?stringDescription When the sanction starts (defaults to now) Example 2024-01-15T10:00:00Z
body.type| "warn" | "mute" | "listen_only" | "text_only" | "rate_limit" | "shadow_mute" | "temp_ban" | "perm_ban" | "ranked_restriction" | "queue_delay" | "party_restriction" | "human_review"Description Type of sanction to apply Example mute @enum {string}

Returns​

Promise<Sanction>

Live Sanction object

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:57


get()​

get(sanctionId): Promise<Sanction>

Get a sanction by ID

Parameters​

ParameterTypeDescription
sanctionIdstringSanction ID

Returns​

Promise<Sanction>

Live Sanction object

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:71


getActive()​

getActive(externalUserId, query?): Promise<object[]>

Get active sanctions for a user

Parameters​

ParameterTypeDescription
externalUserIdstringExternal user ID from ODIN
query?objectOptional filter by sanction type
query.type?| "warn" | "mute" | "listen_only" | "text_only" | "rate_limit" | "shadow_mute" | "temp_ban" | "perm_ban" | "ranked_restriction" | "queue_delay" | "party_restriction" | "human_review"Description Filter by specific sanction type

Returns​

Promise<object[]>

Array of active sanctions

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:114


getByParticipant()​

getByParticipant(participantId): Promise<object[]>

Get all sanctions for a participant

Parameters​

ParameterTypeDescription
participantIdstringParticipant ID

Returns​

Promise<object[]>

Array of sanctions

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:99


getByUser()​

getByUser(externalUserId): Promise<object[]>

Get all sanctions for a user by external user ID

Parameters​

ParameterTypeDescription
externalUserIdstringExternal user ID from ODIN

Returns​

Promise<object[]>

Array of sanctions

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:85


list()​

list(query?): Promise<object>

List sanctions for this project

Parameters​

ParameterTypeDescription
query?objectOptional filters (type, activeOnly, participantIds, externalUserId, sessionId, gatheringId, limit, offset). participantIds checks a whole lobby in one request.
query.activeOnly?booleanDescription Filter to only active sanctions
query.externalUserId?stringDescription Only sanctions of this external user ID
query.gatheringId?stringDescription Only sanctions issued in this gathering
query.limit?numberDescription Pagination limit (max 200)
query.offset?numberDescription Pagination offset
query.participantIds?string[]Description Only sanctions of these participants (comma-separated or repeated). Lets a game check a whole lobby in one request.
query.sessionId?stringDescription Only sanctions scoped to this session
query.type?| "warn" | "mute" | "listen_only" | "text_only" | "rate_limit" | "shadow_mute" | "temp_ban" | "perm_ban" | "ranked_restriction" | "queue_delay" | "party_restriction" | "human_review"Description Filter by sanction type

Returns​

Promise<object>

Sanctions list with the total number of matches

NameTypeDescriptionDefined in
sanctionsobject[]Description List of sanctionsodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4468
totalnumberDescription Total count (for pagination)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4470

Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:43


watch()​

watch()​

watch(): CollectionSubscription<object>

Live-subscribe to sanctions. With no argument, watches the whole collection; with a sanction ID, watches that single sanction. A revoked sanction stays in the collection with an updated status (it is not removed).

Returns​

CollectionSubscription<object>

A CollectionSubscription (no id) or DocumentSubscription (with id)

NameTypeDescriptionDefined in
createdAtstringFormat: date-time Description Creation timestampodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4446
createdByUserId?stringDescription User who created the sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4441
endAt?stringFormat: date-time Description When sanction expires (null = permanent)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4439
externalUserId?stringDescription External user IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4410
gatheringId?stringDescription Gathering the sanction was issued in (if any)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4414
idstringDescription Sanction IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4402
isActivebooleanDescription Whether the sanction is currently activeodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4460
metadata?objectDescription Additional metadataodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4427
participant?objectDescription Participant information (if available)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4464
participant.displayNamestringDescription Display name of the participantodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4387
participant.externalUserIdstringDescription External user ID from ODINodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4389
participant.idstringDescription Participant IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4383
participant.joinedAt?stringFormat: date-time Description When the participant first joined the projectodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4398
participant.projectIdstringDescription ODIN project ID this participant belongs toodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4385
participant.userData?objectDescription User data from ODIN (parsed JSON)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4391
participantId?stringDescription Participant ID (if session-scoped)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4408
projectIdstringDescription Project the sanction belongs toodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4406
reason?stringDescription Reason for sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4425
revokedAt?stringFormat: date-time Description When sanction was revokedodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4456
revokedByUserId?stringDescription User who revoked the sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4458
scope?objectDescription Scope configurationodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4421
sessionId?stringDescription Session ID (if session-scoped)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4412
startAtstringFormat: date-time Description When sanction becomes activeodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4434
statusstringDescription Status: active, expired, or revokedodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4462
tenantIdstringDescription Tenant IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4404
type| "warn" | "mute" | "listen_only" | "text_only" | "rate_limit" | "shadow_mute" | "temp_ban" | "perm_ban" | "ranked_restriction" | "queue_delay" | "party_restriction" | "human_review"Description Type of sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4419
updatedAtstringFormat: date-time Description Last update timestampodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4451
Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:129

watch(sanctionId)​

watch(sanctionId): DocumentSubscription<object>
Parameters​
ParameterType
sanctionIdstring
Returns​

DocumentSubscription<object>

NameTypeDescriptionDefined in
createdAtstringFormat: date-time Description Creation timestampodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4446
createdByUserId?stringDescription User who created the sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4441
endAt?stringFormat: date-time Description When sanction expires (null = permanent)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4439
externalUserId?stringDescription External user IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4410
gatheringId?stringDescription Gathering the sanction was issued in (if any)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4414
idstringDescription Sanction IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4402
isActivebooleanDescription Whether the sanction is currently activeodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4460
metadata?objectDescription Additional metadataodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4427
participant?objectDescription Participant information (if available)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4464
participant.displayNamestringDescription Display name of the participantodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4387
participant.externalUserIdstringDescription External user ID from ODINodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4389
participant.idstringDescription Participant IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4383
participant.joinedAt?stringFormat: date-time Description When the participant first joined the projectodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4398
participant.projectIdstringDescription ODIN project ID this participant belongs toodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4385
participant.userData?objectDescription User data from ODIN (parsed JSON)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4391
participantId?stringDescription Participant ID (if session-scoped)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4408
projectIdstringDescription Project the sanction belongs toodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4406
reason?stringDescription Reason for sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4425
revokedAt?stringFormat: date-time Description When sanction was revokedodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4456
revokedByUserId?stringDescription User who revoked the sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4458
scope?objectDescription Scope configurationodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4421
sessionId?stringDescription Session ID (if session-scoped)odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4412
startAtstringFormat: date-time Description When sanction becomes activeodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4434
statusstringDescription Status: active, expired, or revokedodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4462
tenantIdstringDescription Tenant IDodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4404
type| "warn" | "mute" | "listen_only" | "text_only" | "rate_limit" | "shadow_mute" | "temp_ban" | "perm_ban" | "ranked_restriction" | "queue_delay" | "party_restriction" | "human_review"Description Type of sanctionodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4419
updatedAtstringFormat: date-time Description Last update timestampodin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:4451
Defined in​

odin-transcription-service/packages/cortex-typescript-sdk/src/resources/sanctions.ts:130