Skip to main content
This guide covers every breaking change and deprecation between SofIA SDK v0.0.x and v1.0.0, with before/after code examples and a checklist to complete the migration. Start by upgrading to the latest version:
Then make sure the SDK is imported once in your app’s entry file — this side-effect import is what registers the <sofia-sdk> custom element. Without it, the component never mounts:
Using React? Import the component and its styles from the /react subpath instead:
Not sure whether the SDK registered? Run customElements.get('sofia-sdk') in the browser console — it should return the component definition, not undefined.

Migration overview

Step-by-step migration

1. Rename toolsargs to template

The toolsargs prop has been renamed to template. The JSON Schema content is identical — only the attribute name changes. Before (v0.x):
After (v1.0):
In v1.0, templateid is also required for report generation. Without both template and templateid, the SDK operates in chat-only mode.

2. Remove isonlychat

Chat-only mode is now automatic. If you omit both template and templateid, the SDK operates in chat-only mode without showing the generate button. Before (v0.x):
After (v1.0):

3. Remove disablegenerate

To hide the generate button, omit template and templateid instead of setting a flag. Before (v0.x):
After (v1.0):

4. Remove disableactions

If the component should not be rendered, don’t mount it at all instead of passing a disable flag. Before (v0.x):
After (v1.0):

5. Remove remaining deprecated props

Remove these props entirely — they have no effect in v1.0:

6. Update callback assignments (framework-specific)

The handleReport, setIsOpen, and setGetLastReport callbacks remain unchanged. However, verify your bindings are correct: Vanilla JS:
React:
Angular:

7. Remove wssurl (v1.0.7+) and simplify baseurl (v1.0.8+)

As of v1.0.7, wssurl is deprecated and ignored — the transcription WebSocket URL is delivered by the settings API. Remove it. For newer keys, the SDK (v1.0.8) resolves the endpoint automatically, so you can also drop baseurl (Omniloy tells you whether your key needs it). Before:
After (newer key):
Does your key still require baseurl? Keep it, but still remove wssurl.

Migration checklist

Use this checklist to verify your migration is complete:
  • Renamed all toolsargs attributes to template
  • Added templateid wherever template is used
  • Removed isonlychat — chat-only mode is automatic when template/templateid are omitted
  • Removed disablegenerate — omit template/templateid instead
  • Removed disableactions — conditionally mount/unmount the component
  • Removed sofiatitle, isscreenloading, transcriptorselectvalues
  • Removed renderReportContent and handleFill callbacks
  • Removed wssurl — deprecated and ignored since v1.0.7
  • Dropped baseurl if your key doesn’t require it; kept it otherwise
  • Verified handleReport callback still works correctly
  • Tested with debug="true" to confirm no deprecation warnings in console
  • Validated in all target browsers
Enable debug="true" during migration. The SDK logs deprecation warnings for any v0.x props still in use, prefixed with [Sofia SDK] DEPRECATED:.

Breaking changes summary

Props removed in v1.0

These props were deprecated in v0.0.10 and are removed in v1.0. If still passed, they have no functional effect but emit deprecation warnings when debug="true" is enabled.

New requirements in v1.0

  • templateid is now required alongside template for report generation
  • The generate button only appears when both template and templateid are provided
  • template must be a valid JSON Schema Draft-07 with $schema, type, and properties

Connection props (changed in v1.0.7)

  • apikey — required connection prop (unchanged)
  • wssurldeprecated and ignored since v1.0.7; the transcriber URL now comes from the settings API — remove it

Connection props (changed in v1.0.8)

  • baseurl — now conditional: optional for newer keys (endpoint auto-resolved), still required otherwise

No changes

These props work exactly the same in v1.0:
  • userid, patientid — required session identifiers
  • patientdata — optional patient context
  • language — localization ("es" or "en")
  • debug — enables verbose logging
  • isopen — controls widget visibility
  • handleReport — report delivery callback
  • setIsOpen — visibility state callback
  • setGetLastReport — last report retrieval