- Print
SecureStorage
- Print
SecureStorage Module 0.15.0
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:
Param | Type | Required | Description |
---|---|---|---|
appId | string | true | appId for which values are removed |
scope | StorageScope | true | The scope of the key/value values: 'device' | 'account' |
Promise resolution:
void
Capabilities:
Role | Capability |
---|---|
manages | xrn:firebolt:capability:storage:secure |
Examples
Clears all the secure data values for appId foo
JavaScript:
import { SecureStorage } from '@firebolt-js/manage-sdk'
SecureStorage.clearForApp("foo", "account")
.then(success => {
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:
Param | Type | Required | Description |
---|---|---|---|
appId | string | true | appId for which values are removed |
scope | StorageScope | true | The scope of the key/value values: 'device' | 'account' |
key | string | true | Key to remove |
Promise resolution:
void
Capabilities:
Role | Capability |
---|---|
manages | xrn:firebolt:capability:storage:secure |
Examples
Removes authRefreshToken for appId foo
JavaScript:
import { SecureStorage } from '@firebolt-js/manage-sdk'
SecureStorage.removeForApp("foo", "account", "authRefreshToken")
.then(success => {
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:
Param | Type | Required | Description |
---|---|---|---|
appId | string | true | appId for which value is being set |
scope | StorageScope | true | The scope of the data key values: 'device' | 'account' |
key | string | true | Key to set |
value | string | true | Value to set |
options | StorageOptions | false | Optional parameters to set |
Promise resolution:
void
Capabilities:
Role | Capability |
---|---|
manages | xrn: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'
SecureStorage.setForApp("foo",
"device",
"authRefreshToken",
"VGhpcyBub3QgYSByZWFsIHRva2VuLgo=",
{
"ttl": 600
})
.then(success => {
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'
SecureStorage.setForApp("foo", "account", "authRefreshToken", "VGhpcyBub3QgYSByZWFsIHRva2VuLgo=", null)
.then(success => {
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
enum StorageScope {
DEVICE = 'device',
ACCOUNT = 'account'
}
StorageOptions
type StorageOptions = {
ttl: number // Seconds from set time before the data expires and is removed
}