Settings Objects
Settings Store
The core object for settings panel.
Properties
| Prop | Type | Description |
|---|---|---|
account* | AccountStore | User account. |
workspace* | WorkspaceStore | Current workspace. |
Account Store
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the user. |
name* | string | User's name. |
email* | string | User's email. |
avatarUrl* | string | Chosen avatar image. |
preferredName* | string | Preferred name of the user. |
hasPassword | boolean | Whether user has set password. |
currentSessionId | string | Unique identifier of the current login session. |
language | "en" | "de" | "es" | Preferred language. |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Steve",
email: "steve@example.com",
avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
preferredName: "Steeeee",
language: "de"
}Workspace Store
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the workspace. |
name* | string | Name of the workspace. |
icon* | IconData | Icon of the workspace. |
domain* | string | Public domain. |
inviteLink* | string | Invite link for the workspace. |
plan* | Plan | Plan of the workspace. |
role* | Role | Role of the user in this workspace. |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Workspace",
icon: { type: "text", src: "W" },
domain: "notion.so",
inviteLink: "notion.so/e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
plan: "free",
role: "owner"
}Passkey
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the passkey. |
name* | string | Name of the passkey. |
createdAt* | number | Creation time of the passkey. Formatted as timestamp (ms). |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "My Passkey",
createdAt: 1738368000000
}Session Row
The row data of the sessions table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the session. |
token* | string | Unique token of the session. |
device* | string | The logged in device. |
type* | "laptop" | "mobile" | "unknown" | Type of the device. |
lastActive* | number | Last active time of the session. Formatted as timestamp (ms). |
location* | string | The logged in location. |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
device: "MacBook Pro",
type: "laptop",
token: "abc123xyz456",
lastActive: 1738368000000,
location: "New York, USA"
}Connection
The row data of the connections table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the connection. |
connection* | { type: string, account: string, accountId?: string } | The connection type and account. |
scopes | string[] | Available scopes of the connection. |
Example
{
id: "be633bf1-dfa0-436d-b259-571129a590e5",
connection: {
type: "github",
account: "steeeee0223",
accountId: "abc123xyz456"
},
scopes: ["can view"]
}Member Row
The row data of the members table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the member. |
user* | User | Information of the member. |
role* | Role | Role of the member. |
teamspaces* | MemberTeamspace[] | Available teamspaces. |
groups* | CellOptions<GroupOption> | Available groups. |
See schema definitions for:
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
user: {
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Steve",
email: "steve@example.com",
avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
},
role: "owner",
teamspaces: {
current: "t1",
options: [
{ id: "t1", name: "Teamspace 1", memberCount: 25 },
{ id: "t2", name: "Teamspace 2", memberCount: 10 },
{ id: "t3", name: "Teamspace 3", memberCount: 32 },
]
},
groups: {
current: "g1",
options: [
{ id: "g1", name: "Group 1", memberCount: 2 },
{ id: "g2", name: "Group 2", memberCount: 1 },
{ id: "g3", name: "Group 3", memberCount: 3 },
]
}
}Guest Row
The row data of the guests table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | Unique identifier of the guest. |
user* | User | Information of the guest. |
access* | PageAccess[] | Available pages for the guest. |
See schema definitions for:
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
user: {
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Steve",
email: "steve@example.com",
avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
},
role: "owner",
teamspaces: {
current: "t1",
options: [
{ id: "t1", name: "Teamspace 1", memberCount: 25 },
{ id: "t2", name: "Teamspace 2", memberCount: 10 },
{ id: "t3", name: "Teamspace 3", memberCount: 32 },
]
},
groups: {
current: "g1",
options: [
{ id: "g1", name: "Group 1", memberCount: 2 },
{ id: "g2", name: "Group 2", memberCount: 1 },
{ id: "g3", name: "Group 3", memberCount: 3 },
]
}
}Invitation Row
The row data of the invitations table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | The unique identifier of the invitation. |
email* | string | Email address of the invited user. |
role* | Role | Role of the invited user. |
status* | "pending" | "rejected" | "canceled" | Current status of the invitation. |
invitedBy* | User | The user who sent the invitation. |
See schema definitions for:
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
email: "steve@example.com",
role: "guest"
status: "pending",
invitedBy: {
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Steve",
email: "steve@example.com",
avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
},
}Teamspace Row
The row data of the teamspaces table.
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | The unique identifier of the teamspace. |
name* | string | Name of the teamspace. |
icon* | IconData | Icon of the teamspace. |
permission* | "default" | "open" | "closed" | "private" | Permission level of the teamspace. |
description | string | Description of the teamspace. |
memberCount* | number | The number of users in the teamspace. |
ownedBy* | Pick<User, "name" | "avatarUrl"> | User who owns the teamspace. |
ownerCount* | number | The number of teamspace owners. |
updatedAt* | number | Last updated time of the teamspace. Formatted as timestamp (ms). |
role | "owner" | "member" | false | Role of the user in the teamspace; falsy if the user is not a member. |
See schema definitions for:
Example
{
id: "t1",
name: "Acme Lab",
icon: { type: "emoji", value: "🚀" },
permission: "closed",
memberCount: 25,
ownedBy: {
name: "Steve",
avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
},
ownerCount: 3,
updatedAt: 1738368000000,
}Group Option
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | The unique identifier of the group. |
name* | string | Name of the group. |
memberCount* | number | The number of members in the group. |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Group name",
memberCount: 3
}Cell Options
A CellOptions is a generic type CellOptions<T>, where T extends { id: string }.
Properties
| Prop | Type | Description |
|---|---|---|
current* | string | null | The unique identifier of current option, i.e. options[i].id |
options* | T[] | Available options. |
Example
An example for CellOptions<{ id: string, title: string }>
{
current: "a",
options: [
{ id: "a", title: "A" },
{ id: "b", title: "B" },
{ id: "c", title: "C" },
]
}Page Access
Properties
| Prop | Type | Description |
|---|---|---|
id* | string | The unique identifier of the page. |
name* | string | Name of the page. |
scope* | string | The user scope of the page. |
Example
{
id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
name: "Page 1",
scope: 'can edit'
}