- Print
SecureStorage-0.10.0
- Print
title: SecureStorage
# SecureStorage Module
Version 0.10.0
Overview
A module for storing and retrieving secure data owned by the app
OpenRPC
Firebolt APIs are maintained in the rdkcentral/firebolt-core-sdk GitHub repository.
You can see this API in the securestorage.json OpenRPC JSON-Schema document.
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/sdk'
Methods
get
Get stored value by key
function get(scope: StorageScope, key: string): Promise<string | null>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
scope | StorageScope | true | The scope of the key/value |
key | string | true | Key to get |
Promise resolution:
Type | Description |
---|---|
string \| null | The retrieved value, if found. |
Examples
Successfully retrieve a refresh token with key authRefreshToken
JavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.get("device", "authRefreshToken")
.then(value => {
console.log(value)
})
Value of value
:
"VGhpcyBub3QgYSByZWFsIHRva2VuLgo="
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.get",
"params": {
"scope": "device",
"key": "authRefreshToken"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": "VGhpcyBub3QgYSByZWFsIHRva2VuLgo="
}
More examples...
Attempt to retrieve a key with no value setJavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.get("account", "authRefreshToken")
.then(value => {
console.log(value)
})
Value of value
:
null
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.get",
"params": {
"scope": "account",
"key": "authRefreshToken"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
set
Set or update a secure data value
function set(scope: StorageScope, key: string, value: string, options?: StorageOptions): Promise<void>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
scope | StorageScope | true | The scope of the data key |
key | string | true | Key to set |
value | string | true | Value to set |
options | StorageOptions | false | Optional parameters to set |
Promise resolution:
void
Examples
Set a refresh token with name authRefreshToken with optional paramter
JavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.set("device", "authRefreshToken", "VGhpcyBub3QgYSByZWFsIHRva2VuLgo=", {"ttl":600})
.then(success => {
console.log(success)
})
Value of success
:
null
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.set",
"params": {
"scope": "device",
"key": "authRefreshToken",
"value": "VGhpcyBub3QgYSByZWFsIHRva2VuLgo=",
"options": {
"ttl": 600
}
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
More examples...
Set a refresh token with name authRefreshToken without optional parameterJavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.set("account", "authRefreshToken", "VGhpcyBub3QgYSByZWFsIHRva2VuLgo=", null)
.then(success => {
console.log(success)
})
Value of success
:
null
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.set",
"params": {
"scope": "account",
"key": "authRefreshToken",
"value": "VGhpcyBub3QgYSByZWFsIHRva2VuLgo="
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
remove
Remove a secure data value
function remove(scope: StorageScope, key: string): Promise<void>
Parameters:
Param | Type | Required | Summary |
---|---|---|---|
scope | StorageScope | true | The scope of the data key |
key | string | true | Key to remove |
Promise resolution:
void
Examples
Remove the value with key authRefreshToken for device
JavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.remove("device", "authRefreshToken")
.then(success => {
console.log(success)
})
Value of success
:
null
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.remove",
"params": {
"scope": "device",
"key": "authRefreshToken"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
More examples...
Remove the value with key authRefreshToken for accountJavaScript:
import { SecureStorage } from '@firebolt-js/sdk'
SecureStorage.remove("account", "authRefreshToken")
.then(success => {
console.log(success)
})
Value of success
:
null
JSON-RPC:
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "securestorage.remove",
"params": {
"scope": "account",
"key": "authRefreshToken"
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
Schemas
StorageScope
The scope of the data
type StorageScope = 'device' | 'account'
StorageOptions
type StorageOptions = {
ttl: number // Seconds from set time before the data expires and is removed
}