MicroStrategySDK

API reference for the MicroStrategySDK interface in the embed-dossier-mstr-react package.

Type Definition

interface MicroStrategySDK {
  dossier: {
    create: (
      config: MicroStrategyDossierConfig
    ) => Promise<MicroStrategyDossier>
    destroy: () => void
    CustomAuthenticationType: {
      AUTH_TOKEN: string
      IDENTITY_TOKEN: string
    }
    EventType: EVENT_TYPE
  }
  auth: {
    oidcLogin: (serverUrl: string) => Promise<string>
    samlLogin: (serverUrl: string) => Promise<string>
  }
  embedding: {
    featureFlags: Record<string, unknown> | unknown
  }
  embeddingContexts: {
    embedLibraryPage: (
      config: EmbedLibraryPageConfig
    ) => Promise<EmbedLibraryPage>
    embedDossierConsumptionPage: (
      config: EmbedDossierConsumptionPageConfig
    ) => Promise<EmbedDossierConsumptionPage>
    embedBotConsumptionPage: (
      config: EmbedBotConsumptionPageConfig
    ) => Promise<EmbedBotConsumptionPage>
    embedReportPage: (config: EmbedReportPageConfig) => Promise<EmbedReportPage>
  }
}

Properties and Methods

dossier

Object containing methods and properties related to dossier (dashboard) functionality.

dossier.create

create: (config: MicroStrategyDossierConfig) => Promise<MicroStrategyDossier>

Creates a new embedded dossier instance with the provided configuration.

Parameters:

Returns:

  • Promise<MicroStrategyDossier>: A promise that resolves to the created MicroStrategyDossier object.

dossier.destroy

destroy: () => void

Destroys the current dossier instance, cleaning up resources.

dossier.CustomAuthenticationType

CustomAuthenticationType: {
  AUTH_TOKEN: string
  IDENTITY_TOKEN: string
}

Constants for authentication types.

dossier.EventType

EventType: EVENT_TYPE

Enum of event types that can be used for event handling.

auth

Object containing authentication-related methods.

auth.oidcLogin

oidcLogin: (serverUrl: string) => Promise<string>

Initiates OpenID Connect (OIDC) authentication.

Parameters:

  • serverUrl: string - The base URL of the MicroStrategy Library server.

Returns:

  • Promise<string>: A promise that resolves to the authentication token.

auth.samlLogin

samlLogin: (serverUrl: string) => Promise<string>

Initiates SAML authentication.

Parameters:

  • serverUrl: string - The base URL of the MicroStrategy Library server.

Returns:

  • Promise<string>: A promise that resolves to the authentication token.

embedding

Object containing embedding-related properties.

embedding.featureFlags

featureFlags: Record<string, unknown> | unknown

Feature flags for the embedding SDK.

embeddingContexts

Object containing methods for embedding different types of MicroStrategy content.

embeddingContexts.embedLibraryPage

embedLibraryPage: (config: EmbedLibraryPageConfig) => Promise<EmbedLibraryPage>

Embeds a MicroStrategy Library page.

Parameters:

Returns:

  • Promise<EmbedLibraryPage>: A promise that resolves to the EmbedLibraryPage object.

embeddingContexts.embedDossierConsumptionPage

embedDossierConsumptionPage: (config: EmbedDossierConsumptionPageConfig) =>
  Promise<EmbedDossierConsumptionPage>

Embeds a MicroStrategy Dossier consumption page.

Parameters:

Returns:

embeddingContexts.embedBotConsumptionPage

embedBotConsumptionPage: (config: EmbedBotConsumptionPageConfig) =>
  Promise<EmbedBotConsumptionPage>

Embeds a MicroStrategy Bot consumption page.

Parameters:

Returns:

embeddingContexts.embedReportPage

embedReportPage: (config: EmbedReportPageConfig) => Promise<EmbedReportPage>

Embeds a MicroStrategy Report page.

Parameters:

Returns:

  • Promise<EmbedReportPage>: A promise that resolves to the EmbedReportPage object.

Usage Example

// After the MicroStrategy SDK is loaded
const sdk = window.microstrategy

// Create a dossier
const dossier = await sdk.dossier.create({
  placeholder: document.getElementById("dossier-container"),
  url: "https://your-mstr-server/MicroStrategyLibrary/app/PROJECT_ID/DOSSIER_ID",
})

// Authenticate using OIDC
const authToken = await sdk.auth.oidcLogin(
  "https://your-mstr-server/MicroStrategyLibrary"
)

// Embed a library page
const libraryPage = await sdk.embeddingContexts.embedLibraryPage({
  placeholder: document.getElementById("library-container"),
  serverUrl: "https://your-mstr-server/MicroStrategyLibrary",
})

Global Declaration

The package extends the global Window interface to make the SDK accessible:

declare global {
  interface Window {
    microstrategy: MicroStrategySDK
  }
}