Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@loomhq/record-sdk

Package Overview
Dependencies
Maintainers
75
Versions
114
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@loomhq/record-sdk

The Loom Software Development Kit

  • 3.2.0
  • npm
  • Socket score

Version published
Weekly downloads
8.1K
increased by2.86%
Maintainers
75
Weekly downloads
 
Created
Source

@loomhq/record-sdk

3.2.0

Minor Changes

  • bb42d5cf15: The parameters required for setup() have changed!

    export interface StandardSDK {
      mode: 'standard';
      publicAppId: string;
      environment?: Environment;
      config?: SDKConfig;
    }
    
    export interface CustomSDK {
      mode: 'custom';
      jws: string;
      environment?: Environment;
      config?: SDKConfig;
    }
    
    export interface FirstPartyMode {
      config?: SDKConfig;
      environment?: Environment;
      jws: string;
      mode: 'first-party';
      publicAppId: string;
      siteId: string;
    }
    
    export type SetupArgs = StandardSDK | CustomSDK | FirstPartyMode;
    

    setup can infer whether to use "custom" or "standard" modes.

    Introducing: createInstance, a setup method that supports "First-party-mode" for the @loomhq/record-sdk.

    There are now three operating modes of the SDK:

    • Standard
    • Custom
    • First Party

    For the sake of simplicity, the engineer needs to explicitly say which mode they want to use.

    // Example
    const publicAppId: '<my public key>';
    
    const instance = await create({
      mode: 'standard',
      publicAppId,
    });
    

    What's first-party mode?

    "First Party" mode is for our integration with Atlassian. This is not relevant externally to the company, so won't be documented on our developer docs.

    See an overview of the exchange:

    sequenceDiagram
        actor B as Browser
        participant B2 as IFrame
        participant A as Atlassian-lith
        participant E as Loom API
        participant D as Cache
    
        B ->> A: I need a token for the SDK
    
        A ->> E: proxy request to Loom API
    
        note over E: Validate request from [Atlassian]
    
        E ->> D: Record nonce
    
        note over E: Verify customer is known
        note over E: Create a JWS
    
    
        E ->> A: Here is a JWS token
    
        A ->> B: Here's your token
    
        note over B: Configure the SDK
        B ->> B2: Load
        B2 ->> E: Please load the SDK background (Here's a JWS)
    
        note over E: Validate the JWS
    
        E->>+D: Validate the nonce
    
        note over E: Mint the session
    
        E ->> B2: Here's a peripheral session cookie
    
        B2 ->> B: Store these partitioned cookies please
    
        note over B: Cool, I can now do stuff with [Third party]
    

    Q: Why is this happening? A: We're giving Atlassian a level of trust that we wouldn't give to a third-party

    Explained: Atlassian will request a minted token from Loom's internal API for any Atlassian-mastered Loom account. To mitigate risk we're doing a handful of things. These two items are important:

    • Using Atlassian's SLAuth and User-context schemes on the internal API, to verify the request is valid and comes from Atlassian
    • Minted tokens can only be redeemed for a "peripheral session cookie" (They can only view embeds and record with the SDK)

    You can think of "first-party" mode as an intermediary step before all accounts are Atlassian-mastered and we replace Loom auth with Atlassian identity.

Patch Changes

  • 142ef8c30e: Implement foundations for onboarding

  • 6a7f688ad8: navigate to share page edit tab when users are logged in

  • 75c95a7853: Add in product name and entry point name into the recording start event

  • cf9cde4bb3: Add types export to record-sdk package

  • 7e223459ff: Add internal alpha banner for Hello domain

  • cf01845b27: bump Lens v11.9.0 to add small loader

  • 3df205aeb9: Be explicit about the different modes the recorder can be in.

    Changes:

    • Deprecate setApiKey action
    • Deprecate setJws action
    • Introduce setMode action

    The recorder can be in one of four modes:

    • PendingSDK (The recorder has been initialized)
    • CustomSDK
    • StandardSDK
    • First-Party

    @loomhq/record-sdk@3.11 and bellow will continue to use setApiKey and setJws. When these actions are used, sdk-background will transform these actions to be as though setMode was used.

  • 7e8de46708: add pre record menu analytics for the sdk

  • 211ebf0d1d: Add in product identifier and entry point

  • ef1c6c934a: Add changeset

  • 6adf796331: Bump Lens to v11.11.0 to add custom height modals

  • ad079d01c6: Fixes bug where SDK could not start recording when microphone is disabled

See our docs site for a detailed guide on how to use the sdk!

FAQs

Package last updated on 23 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc