API.md

November 11, 2025 ยท View on GitHub


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

openStore(...)

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

Open a store

ParamTypeDescription
optionscapOpenStorageOptions: capOpenStorageOptions

Since: 0.0.1


closeStore(...)

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

Close the Store

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Since: 3.0.0


isStoreOpen(...)

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

Check if the Store is opened

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


isStoreExists(...)

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

Check if the Store exists

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


deleteStore(...)

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

Delete a store

ParamTypeDescription
optionscapOpenStorageOptions: capOpenStorageOptions

Since: 0.0.1


setTable(...)

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

Set or Add a table to an existing store

ParamTypeDescription
optionscapTableStorageOptions: capTableStorageOptions

Since: 0.0.1


set(...)

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

Store a data with given key and value

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Since: 0.0.1


get(...)

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

Retrieve a data value for a given data key

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Returns: Promise<capValueResult>

Since: 0.0.1


remove(...)

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

Remove a data with given key

ParamTypeDescription
optionscapDataStorageOptions: 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

ParamTypeDescription
optionscapDataStorageOptions: 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

ParamTypeDescription
optionscapFilterStorageOptions: 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

ParamTypeDescription
optionscapTableStorageOptions: 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

ParamTypeDescription
optionscapTableStorageOptions: capTableStorageOptions

Since: 3.0.0


importFromJson(...)

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

Import a database From a JSON

ParamType
optionscapStoreImportOptions

Returns: Promise<capDataStorageChanges>

Since: 3.2.0


isJsonValid(...)

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

Check the validity of a JSON Object

ParamType
optionscapStoreImportOptions

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

PropTypeDescription
valuestringString returned

capEchoOptions

PropTypeDescription
valuestringString to be echoed

capOpenStorageOptions

PropTypeDescription
databasestringThe storage database name
tablestringThe storage table name
encryptedbooleanSet to true for database encryption
modestring* Set the mode for database encryption ["encryption", "secret","newsecret"]

capStorageOptions

PropTypeDescription
databasestringThe storage name

capDataStorageResult

PropTypeDescription
resultbooleanresult set to true when successful else false
messagestringa returned message

capTableStorageOptions

PropTypeDescription
tablestringThe storage table name

capDataStorageOptions

PropTypeDescription
keystringThe data name
valuestringThe data value when required

capValueResult

PropTypeDescription
valuestringthe data value for a given data key

capKeysResult

PropTypeDescription
keysstring[]the data key list as an Array

capValuesResult

PropTypeDescription
valuesstring[]the data values list as an Array

capFilterStorageOptions

PropTypeDescription
filterstringThe filter data for filtering keys ['%filter', 'filter', 'filter%'] for [starts with filter, contains filter, ends with filter]

capKeysValuesResult

PropTypeDescription
keysvaluesany[]the data keys/values list as an Array of {key:string,value:string}

capTablesResult

PropTypeDescription
tablesstring[]the tables list as an Array

capDataStorageChanges

PropTypeDescription
changesnumberthe number of changes from an importFromJson command

capStoreImportOptions

PropTypeDescription
jsonstringstringSet the JSON object to import

capStoreJson

PropTypeDescription
exportJsonStorean export JSON object

JsonStore

PropTypeDescription
databasestringThe database name
encryptedbooleanSet to true (database encryption) / false iOS & Android only
tablesJsonTable[]* Array of Table (JsonTable)

JsonTable

PropTypeDescription
namestringThe database name
valuescapDataStorageOptions[]* 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 parameter 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.