SecureStorage

    SecureStorage


    Article summary


    title: SecureStorage

    version: 1.2.0
    layout: default
    sdk: manage

    # SecureStorage Module


    Version SecureStorage 1.2.0

    Table of Contents

    Usage

    To use the SecureStorage module, you can import it into your project from the Firebolt SDK:

    import { SecureStorage } from '@firebolt-js/manage-sdk'
    

    Overview

    A module for storing and retrieving secure data owned by the app

    Methods

    clearForApp

    Clears all the secure data values for a specific app

    function clearForApp(appId: string, scope: StorageScope): Promise<void>
    

    Parameters:

    ParamTypeRequiredDescription
    appIdstringtrueappId for which values are removed
    scopeStorageScopetrueThe scope of the key/value
    values: 'device' \| 'account'

    Promise resolution:

    Capabilities:

    RoleCapability
    managesxrn:firebolt:capability:storage:secure

    Examples

    Clears all the secure data values for appId foo

    JavaScript:

    import { SecureStorage } from '@firebolt-js/manage-sdk'
    
    let success = await SecureStorage.clearForApp('foo', 'account')
    console.log(success)
    

    Value of success:

    null
    
    JSON-RPC:Request:
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "SecureStorage.clearForApp",
      "params": {
        "appId": "foo",
        "scope": "account"
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": null
    }
    

    removeForApp

    Removes single data value for a specific app.

    function removeForApp(
      appId: string,
      scope: StorageScope,
      key: string,
    ): Promise<void>
    

    Parameters:

    ParamTypeRequiredDescription
    appIdstringtrueappId for which values are removed
    scopeStorageScopetrueThe scope of the key/value
    values: 'device' \| 'account'
    keystringtrueKey to remove

    Promise resolution:

    Capabilities:

    RoleCapability
    managesxrn:firebolt:capability:storage:secure

    Examples

    Removes authRefreshToken for appId foo

    JavaScript:

    import { SecureStorage } from '@firebolt-js/manage-sdk'
    
    let success = await SecureStorage.removeForApp(
      'foo',
      'account',
      'authRefreshToken',
    )
    console.log(success)
    

    Value of success:

    null
    
    JSON-RPC:Request:
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "SecureStorage.removeForApp",
      "params": {
        "appId": "foo",
        "scope": "account",
        "key": "authRefreshToken"
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": null
    }
    

    setForApp

    Set or update a secure data value for a specific app.

    function setForApp(
      appId: string,
      scope: StorageScope,
      key: string,
      value: string,
      options: StorageOptions,
    ): Promise<void>
    

    Parameters:

    ParamTypeRequiredDescription
    appIdstringtrueappId for which value is being set
    scopeStorageScopetrueThe scope of the data key
    values: 'device' \| 'account'
    keystringtrueKey to set
    valuestringtrueValue to set
    optionsStorageOptionsfalseOptional parameters to set

    Promise resolution:

    Capabilities:

    RoleCapability
    managesxrn:firebolt:capability:storage:secure

    Examples

    Set a refresh token with name authRefreshToken with optional parameter for appId foo

    JavaScript:

    import { SecureStorage } from '@firebolt-js/manage-sdk'
    
    let success = await SecureStorage.setForApp(
      'foo',
      'device',
      'authRefreshToken',
      'VGhpcyBub3QgYSByZWFsIHRva2VuLgo=',
      {
        ttl: 600,
      },
    )
    console.log(success)
    

    Value of success:

    null
    
    JSON-RPC:Request:
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "SecureStorage.setForApp",
      "params": {
        "appId": "foo",
        "scope": "device",
        "key": "authRefreshToken",
        "value": "VGhpcyBub3QgYSByZWFsIHRva2VuLgo=",
        "options": {
          "ttl": 600
        }
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": null
    }
    

    Set a refresh token with name authRefreshToken without optional parameter for appId foo

    JavaScript:

    import { SecureStorage } from '@firebolt-js/manage-sdk'
    
    let success = await SecureStorage.setForApp(
      'foo',
      'account',
      'authRefreshToken',
      'VGhpcyBub3QgYSByZWFsIHRva2VuLgo=',
      null,
    )
    console.log(success)
    

    Value of success:

    null
    
    JSON-RPC:Request:
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "SecureStorage.setForApp",
      "params": {
        "appId": "foo",
        "scope": "account",
        "key": "authRefreshToken",
        "value": "VGhpcyBub3QgYSByZWFsIHRva2VuLgo="
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": null
    }
    

    Types

    StorageScope

    The scope of the data

    StorageScope: {
        DEVICE: 'device',
        ACCOUNT: 'account',
    },
    
    

    StorageOptions

    type StorageOptions = {
      ttl: number // Seconds from set time before the data expires and is removed
    }
    


    Was this article helpful?

    What's Next