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;
}| Field | Description |
|---|---|
id | Unique board identifier |
name | Display name |
ownerId | ID of the user who created the board |
sessionType | 'ephemeral' (5-min idle timeout) or 'persistent' (15-min idle, snapshot on archive) |
isArchived | Whether the board has been archived |
createdAt | ISO 8601 creation timestamp |
updatedAt | ISO 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;
}| Field | Description |
|---|---|
id | Unique page identifier |
boardId | Parent board ID |
name | Display name (e.g., "Page 1") |
order | Zero-based sort order |
thumbnail | Optional 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;
}ShareLink
A tokenized link for sharing board access.
interface ShareLink {
id: string;
boardId: string;
token: string;
permission: 'view' | 'edit';
expiresAt?: string;
createdAt: string;
}| Field | Description |
|---|---|
token | Unique share token (used in URLs) |
permission | Access level granted by this link |
expiresAt | Optional 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;
}| Field | Description |
|---|---|
mimeType | MIME type (e.g., image/png, image/svg+xml, application/pdf) |
sizeBytes | File size in bytes |
storageKey | Key used to retrieve the file from storage |
uploadedBy | User ID of the uploader |