Skip to content

Latest commit

 

History

History
633 lines (382 loc) · 21.2 KB

File metadata and controls

633 lines (382 loc) · 21.2 KB


API DOCUMENTATION

capacitor-data-storage-sqlite


CAPACITOR 3


Capacitor Data Storage SQlite Plugin is a custom Native Capacitor plugin providing a key-value permanent store for simple data of type string only to SQLite on IOS, Android and Electron platforms and to IndexDB for the Web platform.

To store JSON object, you should manage conversion through JSON.stringify before storing and JSON.parse when retrieving the data

To store number, use the same procedure, with number.toString() and Number().

For both IOS and Android platforms, the store can be encrypted. The plugin uses SQLCipher for encryption with a passphrase.

Databases Location

Android

in **data/data/YOUR_PACKAGE/databases**

IOS

in **the Document folder of YOUR_APPLICATION**

Electron

in  **YourApplication/Electron/Databases**

Methods Index

API

echo(...)

echo(options: capEchoOptions) => Promise<capEchoResult>
Param Type Description
options capEchoOptions : capEchoOptions

Returns: Promise<capEchoResult>

Since: 0.0.1


openStore(...)

openStore(options: capOpenStorageOptions) => Promise<void>

Open a store

Param Type Description
options capOpenStorageOptions : capOpenStorageOptions

Since: 0.0.1


closeStore(...)

closeStore(options: capStorageOptions) => Promise<void>

Close the Store

Param Type Description
options capStorageOptions : capStorageOptions

Since: 3.0.0


isStoreOpen(...)

isStoreOpen(options: capStorageOptions) => Promise<capDataStorageResult>

Check if the Store is opened

Param Type Description
options capStorageOptions : capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


isStoreExists(...)

isStoreExists(options: capStorageOptions) => Promise<capDataStorageResult>

Check if the Store exists

Param Type Description
options capStorageOptions : capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


deleteStore(...)

deleteStore(options: capOpenStorageOptions) => Promise<void>

Delete a store

Param Type Description
options capOpenStorageOptions : capOpenStorageOptions

Since: 0.0.1


setTable(...)

setTable(options: capTableStorageOptions) => Promise<void>

Set or Add a table to an existing store

Param Type Description
options capTableStorageOptions : capTableStorageOptions

Since: 0.0.1


set(...)

set(options: capDataStorageOptions) => Promise<void>

Store a data with given key and value

Param Type Description
options capDataStorageOptions : capDataStorageOptions

Since: 0.0.1


get(...)

get(options: capDataStorageOptions) => Promise<capValueResult>

Retrieve a data value for a given data key

Param Type Description
options capDataStorageOptions : capDataStorageOptions

Returns: Promise<capValueResult>

Since: 0.0.1


remove(...)

remove(options: capDataStorageOptions) => Promise<void>

Remove a data with given key

Param Type Description
options capDataStorageOptions : capDataStorageOptions

Since: 0.0.1


clear()

clear() => Promise<void>

Clear the Data Store (delete all keys)

Since: 0.0.1


iskey(...)

iskey(options: capDataStorageOptions) => Promise<capDataStorageResult>

Check if a data key exists

Param Type Description
options capDataStorageOptions : capDataStorageOptions

Returns: Promise<capDataStorageResult>

Since: 0.0.1


keys()

keys() => Promise<capKeysResult>

Get the data key list

Returns: Promise<capKeysResult>

Since: 0.0.1


values()

values() => Promise<capValuesResult>

Get the data value list

Returns: Promise<capValuesResult>

Since: 0.0.1


filtervalues(...)

filtervalues(options: capFilterStorageOptions) => Promise<capValuesResult>

Get the data value list for filter keys

Param Type Description
options capFilterStorageOptions : capFilterStorageOptions

Returns: Promise<capValuesResult>

Since: 2.4.2


keysvalues()

keysvalues() => Promise<capKeysValuesResult>

Get the data key/value pair list

Returns: Promise<capKeysValuesResult>

Since: 0.0.1


isTable(...)

isTable(options: capTableStorageOptions) => Promise<capDataStorageResult>

Check if a table exists

Param Type Description
options capTableStorageOptions : capTableStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


tables()

tables() => Promise<capTablesResult>

Get the table list for the current store

Returns: Promise<capTablesResult>

Since: 3.0.0


deleteTable(...)

deleteTable(options: capTableStorageOptions) => Promise<void>

Delete a table

Param Type Description
options capTableStorageOptions : capTableStorageOptions

Since: 3.0.0


importFromJson(...)

importFromJson(options: capStoreImportOptions) => Promise<capDataStorageChanges>

Import a database From a JSON

Param Type
options capStoreImportOptions

Returns: Promise<capDataStorageChanges>

Since: 3.2.0


isJsonValid(...)

isJsonValid(options: capStoreImportOptions) => Promise<capDataStorageResult>

Check the validity of a JSON Object

Param Type
options capStoreImportOptions

Returns: Promise<capDataStorageResult>

Since: 3.2.0


exportToJson()

exportToJson() => Promise<capStoreJson>

Export the given database to a JSON Object

Returns: Promise<capStoreJson>

Since: 3.2.0


Interfaces

capEchoResult

Prop Type Description
value string String returned

capEchoOptions

Prop Type Description
value string String to be echoed

capOpenStorageOptions

Prop Type Description
database string The storage database name
table string The storage table name
encrypted boolean Set to true for database encryption
mode string * Set the mode for database encryption ["encryption", "secret","newsecret"]

capStorageOptions

Prop Type Description
database string The storage name

capDataStorageResult

Prop Type Description
result boolean result set to true when successful else false
message string a returned message

capTableStorageOptions

Prop Type Description
table string The storage table name

capDataStorageOptions

Prop Type Description
key string The data name
value string The data value when required

capValueResult

Prop Type Description
value string the data value for a given data key

capKeysResult

Prop Type Description
keys string[] the data key list as an Array

capValuesResult

Prop Type Description
values string[] the data values list as an Array

capFilterStorageOptions

Prop Type Description
filter string The filter data for filtering keys ['%filter', 'filter', 'filter%'] for [starts with filter, contains filter, ends with filter]

capKeysValuesResult

Prop Type Description
keysvalues any[] the data keys/values list as an Array of {key:string,value:string}

capTablesResult

Prop Type Description
tables string[] the tables list as an Array

capDataStorageChanges

Prop Type Description
changes number the number of changes from an importFromJson command

capStoreImportOptions

Prop Type Description
jsonstring string Set the JSON object to import

capStoreJson

Prop Type Description
export JsonStore an export JSON object

JsonStore

Prop Type Description
database string The database name
encrypted boolean Set to true (database encryption) / false iOS & Android only
tables JsonTable[] * Array of Table (JsonTable)

JsonTable

Prop Type Description
name string The database name
values capDataStorageOptions[] * Array of Values (capDataStorageOptions)

Encrypted DataStore

Existing Datastore encryption

use the openStore method with the following options:

{
    database:"fooDB",
    table:"fooTable",
    encrypted:true,
    mode:"encryption"
}

The existing datastore will be encrypted with a secret key and opens with given database and table names.

To define your own "secret" and "newsecret" keys:

  • in IOS, go to the Pod/Development Pods/jeepqCapacitor/DataStorageSQLite/Global.swift file
  • in Android, go to jeepq-capacitor/java/com.jeep.plugins.capacitor/cdssUtils/Global.java

and then update the default values before building your app.

Create a New Encrypted Datastore

use the openStore method with the following options:

{
    database:"fooDB",
    table:"fooTable",
    encrypted:true,
    mode:"secret"
}

The Datastore will be encrypted and opens with given database and table names and the secret key stored in your application.

Change the Secret of an Existing Encrypted Datastore

use the openStore method with the following options:

{
    database:"fooDB",
    table:"fooTable",
    encrypted:true,
    mode:"newsecret"
}

The secret key of the encrypted datastore will be modified with the newsecret key stored in your application and the datastore will be opened with given database and table names and newsecret key.

Do not forget after this change of secret to go in the code of your app and modified in the Globalfile the secret paramater with the value of the newsecret parameter and reassign a new value of your choice to the newsecret parameter, before the relauch of your app.