Skip to main content

@idpass/data-collect-core / IndexedDbAttachmentStorageAdapter

Class: IndexedDbAttachmentStorageAdapter

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:35

IndexedDB implementation of the AttachmentStore for browser-based attachment persistence.

Uses two object stores:

  • attachment_metadata: Stores AttachmentMetadata objects with indexes on entityGuid, tenantId, and syncStatus for efficient querying.
  • attachment_data: Stores binary data (ArrayBuffer) keyed by attachment GUID.

Supports multi-tenant isolation via tenant ID prefixed database names.

Implements​

Constructors​

Constructor​

new IndexedDbAttachmentStorageAdapter(tenantId?): IndexedDbAttachmentStorageAdapter

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:47

Creates a new IndexedDbAttachmentStorageAdapter instance.

Parameters​

tenantId?​

string = ""

Optional tenant identifier for multi-tenant isolation. When provided, creates a separate database prefixed with tenant ID.

Returns​

IndexedDbAttachmentStorageAdapter

Properties​

tenantId​

readonly tenantId: string = ""

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:47

Optional tenant identifier for multi-tenant isolation. When provided, creates a separate database prefixed with tenant ID.

Methods​

initialize()​

initialize(): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:56

Initializes the IndexedDB database with required object stores and indexes.

Returns​

Promise<void>


saveAttachment()​

saveAttachment(metadata, data): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:86

Saves attachment metadata and binary data.

Parameters​

metadata​

AttachmentMetadata

data​

ArrayBuffer

Returns​

Promise<void>

Implementation of​

AttachmentStore.saveAttachment


getAttachment()​

getAttachment(guid): Promise<{ metadata: AttachmentMetadata; data: ArrayBuffer; } | null>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:113

Gets attachment metadata and binary data by GUID.

Parameters​

guid​

string

Returns​

Promise<{ metadata: AttachmentMetadata; data: ArrayBuffer; } | null>

Implementation of​

AttachmentStore.getAttachment


getAttachmentMetadata()​

getAttachmentMetadata(guid): Promise<AttachmentMetadata | null>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:141

Gets only the metadata for an attachment (without loading binary data).

Parameters​

guid​

string

Returns​

Promise<AttachmentMetadata | null>

Implementation of​

AttachmentStore.getAttachmentMetadata


listAttachments()​

listAttachments(entityGuid): Promise<AttachmentMetadata[]>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:162

Lists all attachments for a specific entity.

Parameters​

entityGuid​

string

Returns​

Promise<AttachmentMetadata[]>

Implementation of​

AttachmentStore.listAttachments


deleteAttachment()​

deleteAttachment(guid): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:184

Deletes an attachment and its binary data.

Parameters​

guid​

string

Returns​

Promise<void>

Implementation of​

AttachmentStore.deleteAttachment


getPendingAttachments()​

getPendingAttachments(tenantId): Promise<AttachmentMetadata[]>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:211

Gets all attachments with 'pending' sync status for a tenant.

Parameters​

tenantId​

string

Returns​

Promise<AttachmentMetadata[]>

Implementation of​

AttachmentStore.getPendingAttachments


updateSyncStatus()​

updateSyncStatus(guid, status): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:233

Updates the sync status of an attachment.

Parameters​

guid​

string

status​

"pending" | "uploaded" | "failed"

Returns​

Promise<void>

Implementation of​

AttachmentStore.updateSyncStatus


closeConnection()​

closeConnection(): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:270

Closes the IndexedDB connection.

Returns​

Promise<void>


clearStore()​

clearStore(): Promise<void>

Defined in: storage/IndexedDbAttachmentStorageAdapter.ts:280

Clears all data from both metadata and data stores.

Returns​

Promise<void>