The BlackBerry Spark Communications Services provides a framework to develop real-time, end-to-end secure messaging capabilities in your own product or service.
The Spark Communications security model ensures that only the sender and intended recipients can see each message sent, and ensures that messages aren't modified in transit between the sender and recipient. Spark Communications also provides the framework for other forms of collaboration and communication, such as push notifications, secure voice and video calls, and file sharing. You can even extend and create new types of real-time services and use cases by defining your own custom application protocols and data types.
Example applications are expected to be replaced or customized by the customer to suit their own integration with the Spark Communications SDK for JavaScript.
The Spark Communications SDK Components
-
SparkCommunications
This class is responsible for establishing and maintaining connectivity to the Spark Communications infrastructure. It provides access to the messaging, media, and endpoint management interfaces. -
SparkCommunications.Messenger
This class offers the Spark Communications SDK messaging interfaces. It provides methods for creating, inviting, joining, and leaving chats as well as methods for interacting with those chats. -
SparkCommunications.Media
This library offers the Spark Communications SDK media interfaces. It provides methods and events for making, accepting and interacting with voice/video calls and data only connections. -
SparkCommunications.Event
This library defines structure of the events emitted by theSparkCommunications
andSparkCommunications.Messenger
objects. -
SparkCommunications.Error
This library defines the different error classes that may by returned by theSparkCommunications
andSparkCommunications.Messenger
interfaces.
Utilities
-
SparkCommunications.Util
This library exposes some utility functions that are useful when dealing with binary data. -
SparkCommunications.Utf8
This library provides some utility functions that are useful when dealing with UTF-8 data.
Cloud Key Storage
- SparkCommunications.KeyProviderInterface
The interface that must be implemented by your application in order to use
Cloud Key Storage.
If your application uses the BlackBery Key Management
Service,
you do not use the
KeyProviderInterface
.
Customized Message Storage
-
SparkCommunications.MessageStorageInterface
The interface that must be implemented by your application in order to use a custom data structure for chat messages. -
SparkCommunications.Storage
This library provides some convenient implementations of theMessageStorageInterface
.
Examples
The Developer Guide provides a collection of example applications that demonstrate the functionality offered by the Spark Communications SDK.
The Support Library Components
Authentication
The Support library provides several reference implementations to help you get started using the Spark Communications SDK with your own identity provider.
Please refer to Developer Guide for more information on Identity Providers.
-
MockAuthManager
A reference implementation that performs no user authentication. -
GoogleAuthManager
A reference implementation using Google's OAuth 2.0 APIs to authenticate users of your application. -
AzureAuthManager
A reference implementation using Microsoft's Azure Active Directory v2.0 OpenID Connect APIs to authenticate a user against your application's Active Directory instance.
User Management
The Support library provides several reference implementations to help you get started using the Spark Communications SDK with your own user management.
Please refer to the Developer Guide for more information on User Management.
-
MockUserManager
A reference implementation that allows contacts to be managed using the browser's local storage. -
GooglePeopleUserManager
A reference implementation that allows contacts to be managed using Google's People APIs. -
AzureUserManager
A reference implementation using the Microsoft Graph API to access basic user information from your application's Active Directory instance. -
FirebaseUserManager
A reference implementation for managing a user's contacts using Google's Firebase Realtime Database. This module can be used to create and maintain a user's social graph.
Key Management
The Support library provides several reference implementations that meet the Cloud Key Storage requirements. If your application uses the BlackBery Key Management Service, you do not use these classes.
-
FirebaseKeyProvider
A reference implementation of theKeyProviderInterface
using Google's Firebase Realtime Database. -
CosmosDbKeyProvider
A reference implementation of theKeyProviderInterface
using Microsoft Azure Cosmos DB. This implementation uses the Key Provider Server example application to enforce key access permissions in order to meet the Cloud Key Storage requirements. -
KeyProtect
A reference implementation for protecting and unprotecting keys for export and import when using Cloud Key Storage. This class works with theFirebaseKeyProvider
or theComosDbKeyProvider
.