Skip to main content

SuperViz September Update

· 5 min read

Welcome to the September 2024 update for our platform! This update brings exciting new features, improvements, and fixes across our entire ecosystem. We're thrilled to share these updates with you, showcasing our commitment to enhancing your experience with SuperViz.

Monthly Update

We are moving to a monthly release update. This means that we will provide you with news about our entire platform: the SDK, React SDK, Plugins, our APIs, and Dashboard on a monthly basis.

These releases come with software updates bringing new features and capabilities, as you will see below. We will also describe details of the fixes released over the past month.

API

New API Endpoint

We have migrated our endpoint base URL from nodeapi.superviz.com to api.superviz.com. The old endpoint base URL will stay fully functional, but all new endpoints will be available only via api.superviz.com. Although this is NOT a breaking change, we suggest updating to this new endpoint to stay up to date with us.

Security

We are making a massive update on how you connect to our APIs, driven by our commitment to enhance security and provide a more robust authentication system that will allow us to move forward with more features to come.

Before today, there was two ways to authenticate on our APIs: using our API key in some endpoints, and using Bearer Authentication in others. To, not only facilitate that, but to improve our security, we are now using API Secrets to authenticate requests.

This will provide you more control on your available keys, including providing them an expiration date, knowing who created the key. You can create a new key under our Dashboard > Developer > Keys.

This is NOT a breaking change, but we suggest updating to this new authentication system as soon as possible to make sure to use our latest security improvements.

API First participant initialization

Starting on this version, we have implemented an API-first approach for participant initialization. This new method provides greater flexibility and efficiency in managing user data across our platform. It allows for seamless integration between our API and SDK, ensuring consistent user information across all touchpoints.

When you start using the SDK, you don't always need to provide all user details. Here's how it works:

  1. If the user already exists in our system (you had created it before via our API), you only need to provide their ID.
  2. For new users, you can provide their name, avatar, and email when you first use the SDK. This will create a new user on our end as well.
  3. After creating a user, any changes to their information should be made through our API, not the SDK.

This new approach makes it easier to manage user information across our platform and keeps user data consistent between the API and SDK.

Better NextJS compatibility

Addresses compatibility issues for builds utilizing Server-Side Rendering (SSR) and Static Site Generation (SSG) that previously resulted in errors such as HTMLElement is not defined, Document is not defined, or Window is not defined.

Our latest update implements checks and fallbacks to ensure smooth operation across different rendering contexts. For developers seeking a more in-depth understanding of the problem and our solution approach, we recommend reviewing the detailed discussion in our GitHub issue tracker: #762 - Known issue for SSR/SSG Rendering and the information on our Pull Request #764 - Implement SSR/SSG build native support.

Real-time Data Engine

Participant presences

We have add a new way to have more control over the Real-time Data Engine. Now you can update, subscribe and unsubscribe to participants updates on every channel.

This allows you to dynamically update participant information, receive real-time updates when participants join or leave, and manage participant-specific data within each channel. This enhancement provides greater flexibility for implementing features like custom avatars, user status indicators, or participant-specific interactions within your real-time applications.

Learn more about this under the Channel documentation of the SDK and the useRealtimeParticipant for our React SDK.

Other improvements

  • We’ve made the method to connect to a channel asynchronous to improve developer experience and make sure you use even less lines of code.
import { Realtime } from "@superviz/sdk";

const realtime = new Realtime();

- realtime.subscribe(RealtimeComponentEvent.REALTIME_STATE_CHANGED, (state) => {
- if (state === RealtimeComponentState.STARTED) {
- const channel = realtime.connect('YOUR_CHANNEL_NAME');
+ const channel = await realtime.connect('YOUR_CHANNEL_NAME');
- }
- });

room.addComponent(realtime);
  • We are, also, making the Channel available to be used as an type. Allowing you to store the variable
import { Channel } from "@superviz/sdk";

let channel: Channel;
  • We had made several improvements when working with TypeScript.

Fixes and Improvements

  • Fixed the issue where active instances were being updated too frequently, causing performance problems. Now, active instances are only updated when components are added or removed, and the system validates and replaces instances as necessary to prevent duplication.
  • We fixed Mouse Pointers design, where in some cases, the cursor may had a few extra elements appearing.
  • [REACT] Now, when the bundle URL is changed, we property reinitialize the Matterport and SuperViz plugin instance to load with the correct instance.

Version Numbers

The changes mentioned above are available in the following versions:

PackageVersion
@superviz/sdk6.6.0
@superviz/react-sdk1.13.0
@superviz/autodesk-viewer-plugin1.21.0
@superviz/matterport-plugin1.1.0
@superviz/threejs-plugin1.1.0
warning

By the end of October 2024, some older versions of our toolkit will be deprecated and we will no longer support them. We therefore recommend updating as soon as possible to avoid any issues.

Below is a list of deprecated versions:

  • @superviz/sdk: 6.4.0 and older
  • @superviz/react-sdk: 1.10.1 and older
  • @superviz/autodesk-viewer-plugin: 1.19.1 and older
  • @superviz/matterport-plugin: 0.22.1 and older
  • @superviz/threejs-plugin: 0.25.0 and older