Class: ProjectSettingsManager
Manages settings for a project.
Constructors
new ProjectSettingsManager()
Internal
Parameters
| Parameter | Type |
|---|---|
ctx | ClientContext |
projectId | string |
Returns
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:43
Methods
delete()
Delete project settings
Returns
Promise<void>
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:107
get()
Get project settings
Returns
Promise<object>
Project settings
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:52
getSecret()
Read the project secret in plaintext.
The secret is the shared key for HMAC-SHA256 authentication against the
event ingest endpoint (it is what projectSecret in the client config
signs with). Cortex caches it encrypted and decrypts on read, so this is
the only way to recover the value for display or copying.
Returns
Promise<null | string>
The decrypted secret, or null when none is cached — call
syncSecret to fetch one from the Payment system
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:248
revokeSecret()
Clear the cached project secret.
Any integration still signing requests with the old value stops authenticating, so pair this with syncSecret after rotating the secret upstream rather than leaving the project without one.
Returns
Promise<boolean>
Whether a secret was present and removed
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:285
syncSecret()
Pull the project secret from the Payment system into Cortex's encrypted cache.
Cortex fetches it server-side using the caller's session, so the secret never travels through the browser. Run this when a project has no cached secret yet, or after the secret was rotated upstream.
Returns
Promise<boolean>
Whether a secret was fetched and stored
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:267
update()
Partially update project settings.
Only the fields you pass are changed; everything else (provider config,
secret, other flags) is preserved. Use this to tweak a single setting — e.g.
the bot peer userData, or the ODIN SDK major (odinSdkVersion) the bot
joins rooms with — without first reading the current settings or
re-supplying the provider configuration.
Parameters
| Parameter | Type | Description |
|---|---|---|
body | object | Partial settings to merge |
body.accessKeyConfig? | object | Description Access Key config (required for access_key provider) |
body.accessKeyConfig.accessKey | string | Description ODIN Access Key Example AK... |
body.accessKeyConfig.botUserId | string | Description Bot User ID Example transcription-bot |
body.announcementJoinText? | string | Description Text spoken when the bot joins the room Example This conversation is now being recorded and transcribed. |
body.announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room Example Recording and transcription have stopped. |
body.announcementsEnabled? | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room. |
body.botUserData? | object | Description Bot peer userData as JSON Example { * "name": "Transcription Bot", * "role": "bot" * } |
body.debugAudioEnabled? | boolean | Description Enable debug audio storage for transcription debugging (auto-deleted after 24h). Defaults to false when omitted. |
body.e2eEncryptionMode? | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot |
body.e2eEncryptionPassword? | string | Description Manual cipher password (only used when mode=manual). Stored encrypted at rest. |
body.odinSdkVersion? | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with. Must match the SDK major used by the project's client applications (v1 = ODIN 1.x, v2 = ODIN 2.x — the two are not interoperable). |
body.sanctionPush? | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. |
body.tokenProviderType? | "access_key" | "webservice" | "rooms" | Description Token provider type |
body.transcriptPush? | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. |
body.webserviceConfig? | object | Description Webservice config (required for webservice provider) |
body.webserviceConfig.bodyTemplate? | string | Description Request body template with {{roomId}} placeholder Example {"roomId": "{{roomId}}"} |
body.webserviceConfig.headers? | object | Description HTTP headers Example { * "Authorization": "Bearer xxx" * } |
body.webserviceConfig.method | "GET" | "POST" | Description HTTP method Example POST @enum {string} |
body.webserviceConfig.responseTokenPath | string | Description JSONPath to extract token from response Example data.token |
body.webserviceConfig.url | string | Description Token generation endpoint URL Example https://myserver.com/token |
Returns
Promise<object>
The updated settings
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:95
updateAnnouncements()
Configure the spoken recording announcement.
The transcription bot speaks a short notice into the room when it joins, and again just before it leaves, so participants know they are being recorded. In many jurisdictions — including the entire EU — recording a conversation without informing every participant is unlawful, so this is enabled by default and should only be switched off if your application obtains consent another way.
Every argument is optional and only the ones you pass are changed, so you can flip the switch without touching your copy, or edit the copy without touching the switch. The text is spoken as written in any language; changes apply to the next session, not to a room the bot is currently in.
Parameters
| Parameter | Type | Description |
|---|---|---|
options | object | The fields to change |
options.enabled? | boolean | Whether the bot announces the recording at all |
options.joinText? | string | Text spoken after joining (max 500 chars, non-blank) |
options.leaveText? | string | Text spoken before leaving (max 500 chars, non-blank) |
Returns
Promise<object>
The updated settings
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:192
updateDebugAudio()
Enable or disable debug audio recording for transcription debugging.
When enabled, the WAV file that was sent to the transcription API is stored alongside each transcribed message and can be downloaded via Session.downloadDebugAudio. Stored recordings are automatically deleted after 24 hours. Use this to diagnose bad transcription results (audio issues, background noise, clipping, etc).
Parameters
| Parameter | Type | Description |
|---|---|---|
enabled | boolean | true to enable debug audio storage, false to disable |
Returns
Promise<void>
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:126
updateE2EEncryption()
Set the bot's end-to-end encryption mode.
Controls how the transcription bot derives the ODIN cipher password it uses
to join rooms. This is the dedicated counterpart to setting
e2eEncryptionMode/e2eEncryptionPassword through update — it applies
the mode's password semantics directly:
"manual"— usepasswordas the cipher password. Required on this call unless one is already stored; pass it whenever you want to change it."automatic"— the bot derives the password automatically; any stored password is cleared.passwordis ignored."disabled"— no end-to-end encryption; any stored password is cleared.passwordis ignored.
Parameters
| Parameter | Type | Description |
|---|---|---|
mode | "disabled" | "automatic" | "manual" | The encryption mode to apply |
password? | string | Cipher password, used only when mode is "manual" |
Returns
Promise<object>
The updated settings
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:156
updateTranscription()
Select which transcription provider transcribes the project's rooms.
Pass the id of an installed, enabled transcription plugin instance (a
plugin with kind: "audio" and the transcribe capability) — for example
openai-transcription configured with your own OpenAI key or an
OpenAI-compatible base URL. Minutes transcribed that way are billed by your
provider, not by Cortex. Pass null to return to the default Cortex
transcription (4Players' key, billed per audio minute).
Running sessions switch within about 30 seconds. Cortex never falls back to
the billed default on its own if your provider fails. Test a new instance
first with its health plugin endpoint.
Parameters
| Parameter | Type | Description |
|---|---|---|
transcriberInstanceId | null | string | Plugin instance id, or null for the default |
Returns
Promise<object>
The updated settings (see transcriberInstanceId)
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:225
upsert()
Create or update project settings (full payload).
Replaces the configuration — tokenProviderType is required. To change just
one field, prefer update.
When configuring a project for ODIN 2.x clients, set odinSdkVersion: "v2"
so the transcription bot joins rooms with a compatible SDK major (defaults to
"v1" when omitted; the two majors are not interoperable).
Parameters
| Parameter | Type | Description |
|---|---|---|
body | object | Settings payload |
body.accessKeyConfig? | object | Description Access Key config (required for access_key provider) |
body.accessKeyConfig.accessKey | string | Description ODIN Access Key Example AK... |
body.accessKeyConfig.botUserId | string | Description Bot User ID Example transcription-bot |
body.announcementJoinText? | string | Description Text spoken when the bot joins the room Example This conversation is now being recorded and transcribed. |
body.announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room Example Recording and transcription have stopped. |
body.announcementsEnabled? | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room. Defaults to true. |
body.botUserData? | object | Description Bot peer userData as JSON Example { * "name": "Transcription Bot", * "role": "bot" * } |
body.debugAudioEnabled? | boolean | Description Enable debug audio storage for transcription debugging (auto-deleted after 24h). Defaults to false when omitted. |
body.e2eEncryptionMode? | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot |
body.e2eEncryptionPassword? | string | Description Manual cipher password (only used when mode=manual). Stored encrypted at rest. |
body.odinSdkVersion? | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with. Must match the SDK major used by the project's client applications (v1 = ODIN 1.x, v2 = ODIN 2.x — the two are not interoperable). Defaults to v1 when omitted. |
body.sanctionPush? | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. |
body.tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type |
body.transcriptPush? | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. |
body.webserviceConfig? | object | Description Webservice config (required for webservice provider) |
body.webserviceConfig.bodyTemplate? | string | Description Request body template with {{roomId}} placeholder Example {"roomId": "{{roomId}}"} |
body.webserviceConfig.headers? | object | Description HTTP headers Example { * "Authorization": "Bearer xxx" * } |
body.webserviceConfig.method | "GET" | "POST" | Description HTTP method Example POST @enum {string} |
body.webserviceConfig.responseTokenPath | string | Description JSONPath to extract token from response Example data.token |
body.webserviceConfig.url | string | Description Token generation endpoint URL Example https://myserver.com/token |
Returns
Promise<object>
Updated settings
| Name | Type | Description | Defined in |
|---|---|---|---|
announcementJoinText? | string | Description Text spoken when the bot joins the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2890 |
announcementLeaveText? | string | Description Text spoken immediately before the bot leaves the room | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2892 |
announcementsEnabled | boolean | Description Whether the bot speaks a recording announcement when joining and before leaving a room Default true | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2888 |
appId | string | Description App ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2832 |
botUserData? | object | Description Bot peer userData | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2858 |
botUserId? | string | Description Bot User ID (for access_key provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2839 |
debugAudioEnabled | boolean | Description Whether debug audio storage is enabled for transcription debugging Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2867 |
e2eEncryptionMode | "disabled" | "automatic" | "manual" | Description End-to-end encryption mode for the bot Default disabled @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2875 |
e2eEncryptionPassword? | string | Description Decrypted manual cipher password (only returned when mode=manual). Will be removed once a webhook-based mechanism replaces at-rest storage. | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2877 |
hasAccessKey | boolean | Description Whether an ODIN access key is stored for this project (the key itself is never returned) Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2856 |
hasSecret | boolean | Description Whether a project secret is cached locally for HMAC authentication | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2862 |
id | string | Description Settings ID | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2830 |
odinSdkVersion | "v1" | "v2" | Description ODIN SDK major the transcription bot joins rooms with (v1 = ODIN 1.x, v2 = ODIN 2.x) Default v1 @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2883 |
projectName? | string | Description Human-readable project name (synced from Payment system) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2869 |
sanctionPush | boolean | Description Let the bot tell the room about sanctions (cortex.sanction / cortex.mutes frames) and enforce voice mutes on the receiving side: clients stop hearing a muted peer, and the bot stops transcribing it. Only enable once your clients handle these frames. Defaults to false. Takes effect when the bot next joins a room. Default false | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2903 |
tokenProviderType | "access_key" | "webservice" | "rooms" | Description Token provider type | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2837 |
transcriberInstanceId | null | string | Format: uuid Description Plugin instance that transcribes this project; null = the default Cortex transcription (billed per minute) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2908 |
transcriptPush | "off" | "all" | "own" | Description Push the live transcript into the ODIN room through the bot (Cortex Room Protocol, frame cortex.transcript): off = never (default), all = every segment to every peer, own = each segment only to the peer who spoke it. Takes effect when the bot next joins a room. Default off @enum {string} | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2898 |
webserviceBodyTemplate? | string | Description Request body template with {{roomId}} placeholder | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2849 |
webserviceHeaders? | object | Description HTTP headers sent to the token webservice | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2845 |
webserviceMethod? | string | Description Webservice method | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2843 |
webserviceResponseTokenPath? | string | Description JSONPath used to extract the token from the webservice response | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2851 |
webserviceUrl? | string | Description Webservice URL (for webservice provider) | odin-transcription-service/packages/cortex-typescript-sdk/src/types.ts:2841 |
Defined in
odin-transcription-service/packages/cortex-typescript-sdk/src/resources/settings.ts:74