My App
BoardKitCore

Types

Core data types — Board, Page, BoardMember, ShareLink, Asset

Board

Represents a whiteboard instance.

interface Board {
    id: string;
    name: string;
    ownerId: string;
    sessionType: 'ephemeral' | 'persistent';
    isArchived: boolean;
    createdAt: string;
    updatedAt: string;
}
FieldDescription
idUnique board identifier
nameDisplay name
ownerIdID of the user who created the board
sessionType'ephemeral' (5-min idle timeout) or 'persistent' (15-min idle, snapshot on archive)
isArchivedWhether the board has been archived
createdAtISO 8601 creation timestamp
updatedAtISO 8601 last-updated timestamp

Page

Boards contain one or more pages (up to 100 by default).

interface Page {
    id: string;
    boardId: string;
    name: string;
    order: number;
    thumbnail?: string;
    createdAt: string;
    updatedAt: string;
}
FieldDescription
idUnique page identifier
boardIdParent board ID
nameDisplay name (e.g., "Page 1")
orderZero-based sort order
thumbnailOptional thumbnail image URL

BoardMember

Represents a user's membership and role on a board.

interface BoardMember {
    boardId: string;
    userId: string;
    role: 'owner' | 'editor' | 'viewer';
    joinedAt: string;
}

A tokenized link for sharing board access.

interface ShareLink {
    id: string;
    boardId: string;
    token: string;
    permission: 'view' | 'edit';
    expiresAt?: string;
    createdAt: string;
}
FieldDescription
tokenUnique share token (used in URLs)
permissionAccess level granted by this link
expiresAtOptional expiration timestamp (ISO 8601)

Asset

An uploaded file (image, PDF) associated with a board.

interface Asset {
    id: string;
    boardId: string;
    mimeType: string;
    sizeBytes: number;
    storageKey: string;
    uploadedBy: string;
    createdAt: string;
}
FieldDescription
mimeTypeMIME type (e.g., image/png, image/svg+xml, application/pdf)
sizeBytesFile size in bytes
storageKeyKey used to retrieve the file from storage
uploadedByUser ID of the uploader

On this page