Skip to main content

AppsDB

||

AppsDB is a key/value store built into the Showpad Apps platform. It gives your app a place to persist data with three core capabilities:

  • Offline storage - Data is available even when the device is offline.
  • Cross-platform - Works consistently across desktop and mobile Showpad clients.
  • Data protection - Access is controlled by scope, so user data stays isolated by default.

Access AppsDB through the Experience App SDK in your extension code.

What you'll learn:

  • The core concepts: stores, store entries, and scopes
  • The difference between USER and GLOBAL scope
  • How pagination works when retrieving large sets of entries
TL;DR
  • Register a store: declare it in sharedStores in your manifest, or POST to the store endpoint
  • User data: use USER scope — each user's entries are isolated from other users
  • Shared data: use GLOBAL scope — readable by all, write-protected by OAuth scope
  • Large datasets: use cursor-based pagination; keep fetching until no cursor is returned

Concepts

Data Model

Store

A store is the top-level container that groups related entries together. A store must be registered before it can be used, either by declaring it in the sharedStores property of your manifest, or by sending a POST request to the store endpoint.

Store Entry

A store entry is the individual record that holds your data. Each entry has an ID, a string value, and a scope that controls who can access it.

Scope

A scope is the permission boundary that determines who can read or write an entry. There are two scopes: USER and GLOBAL.

User Scope

Entries in USER scope are tied to the Showpad user who created them. Each user gets their own isolated set of entries within the same store, so users never see each other's data by default.

tip

To retrieve entries across all users, use the store entries call with the appsdb_online_integrations OAuth2 scope. This scope can be added to your OAuth2 client or to a personal access token.

Global Scope

Entries in GLOBAL scope can be read by all users, but creating or updating them requires the appsdb_online_integrations OAuth2 scope.

Pagination

AppsDB uses cursor-based pagination. When a result set exceeds the limit, the response includes a cursor string. Pass that cursor in your next request to retrieve the following page. When no cursor is returned, you have retrieved all entries.

Data Storage

For offline use cases, store data that changes infrequently in as few store entries as possible. This reduces the number of sync operations needed when the device reconnects.

Next Steps

Was this page helpful?