@norionsoft/qr-vault-cloud-google
v0.1.0
Published
Google Drive adapter for @norionsoft/qr-vault — store encrypted backups in Drive appDataFolder
Readme
@norionsoft/qr-vault-cloud-google
Google Drive adapter for @norionsoft/qr-vault — store encrypted wallet backups in Drive's appDataFolder.
Installation
npm install @norionsoft/qr-vault @norionsoft/qr-vault-cloud-googleQuick Start
import { Vault } from '@norionsoft/qr-vault';
import { GoogleDriveAdapter } from '@norionsoft/qr-vault-cloud-google';
const adapter = new GoogleDriveAdapter({
accessToken: 'ya29.xxx...', // your OAuth access token
onTokenExpired: async () => {
// refresh and return new token
return await refreshMyToken();
},
});
const vault = new Vault({ adapter });
await vault.put({
payload: 'U2FsdGVkX1/...',
meta: { label: 'Cloud Backup', chains: ['btc'] },
});
const entries = await vault.list();API Reference
GoogleDriveAdapter
new GoogleDriveAdapter({
accessToken: string,
onTokenExpired?: () => Promise<string>,
space?: 'appDataFolder' | 'drive', // default: 'appDataFolder'
folder?: string, // for 'drive' space only
});Required OAuth Scopes
| Space | Scope |
|-------|-------|
| appDataFolder | https://www.googleapis.com/auth/drive.appdata |
| drive | https://www.googleapis.com/auth/drive.file |
Storage Layout
- One Drive file per vault entry:
<id>.qrvault.json - File properties:
{ qrvault: '1', id: '<id>' }for efficient filtering - MIME type:
application/json
Error Handling
| HTTP Status | AdapterError cause |
|-------------|-------------------|
| 401/403 (after retry) | 'unauthorized' |
| 404 on get | Returns null |
| 5xx | 'transient' |
| Network failure | 'network' |
Important
This package does not implement the OAuth flow. You must obtain the access token through your own OAuth implementation and pass it in.
Security
Only encrypted blobs (ds envelopes) are stored in Drive. No plaintext is ever transmitted or stored.
Compatibility
- Modern browsers with
fetchsupport - Node.js >= 18
License
MIT — Norionsoft
