useSecureStore
Encrypted key/value storage for secrets (tokens, etc.), backed by Electron safeStorage (OS
keychain). Values are encrypted at rest in userData/nextop-secure-store.json; plaintext is never
written.
const { isAvailable, setItem, getItem, removeItem, hasItem, clear } = useSecureStore()
| Member | Type | Notes |
|---|---|---|
isAvailable | () => Promise<boolean> | Whether OS encryption is available (e.g. false if a Linux keyring is missing). |
setItem | (key: string, value: string) => Promise<boolean> | Rejects if encryption is unavailable (won't store plaintext). |
getItem | (key: string) => Promise<string | null> | null if the key is absent. |
removeItem | (key: string) => Promise<boolean> | |
hasItem | (key: string) => Promise<boolean> | |
clear | () => Promise<boolean> | Wipes the whole store. |
import { useSecureStore } from 'nextop-app'const store = useSecureStore()if (await store.isAvailable()) {await store.setItem('apiToken', 'secret-value')const token = await store.getItem('apiToken')}
This protects per-user/local secrets at rest. It does not make it safe to embed shared/central DB master credentials in app code — see the Security Model.