PostHog · Schema
PinnedSceneTab
A/B TestingAnalyticsFeature FlagsOpen SourceProduct AnalyticsSession Recording
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Stable identifier for the tab. Generated client-side; safe to omit on create. |
| pathname | string | URL pathname the tab points at — for example `/project/123/dashboard/45` or `/project/123/insights`. Combined with `search` and `hash` to reconstruct the destination. |
| search | string | Query string portion of the URL, including the leading `?`. Empty string when there is no query. |
| hash | string | Fragment portion of the URL, including the leading `#`. Empty string when there is no fragment. |
| title | string | Default tab title derived from the destination scene. Used when `customTitle` is not set. |
| customTitle | string | Optional user-provided title that overrides `title` in the navigation UI. |
| iconType | string | Icon key shown next to the tab in the sidebar — for example `dashboard`, `insight`, `blank`. |
| sceneId | string | Scene identifier resolved from the pathname when known — used by the frontend for icon/title hints. |
| sceneKey | string | Scene key (logic key) for the destination, paired with `sceneParams` for deeper routing context. |
| sceneParams | object | Free-form scene parameters captured at pin time, used by the frontend to rehydrate the destination. |
| pinned | boolean | Whether this entry is pinned. Always coerced to true on save — pass true or omit. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/PinnedSceneTab",
"title": "PinnedSceneTab",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable identifier for the tab. Generated client-side; safe to omit on create."
},
"pathname": {
"type": "string",
"description": "URL pathname the tab points at \u2014 for example `/project/123/dashboard/45` or `/project/123/insights`. Combined with `search` and `hash` to reconstruct the destination."
},
"search": {
"type": "string",
"description": "Query string portion of the URL, including the leading `?`. Empty string when there is no query."
},
"hash": {
"type": "string",
"description": "Fragment portion of the URL, including the leading `#`. Empty string when there is no fragment."
},
"title": {
"type": "string",
"description": "Default tab title derived from the destination scene. Used when `customTitle` is not set."
},
"customTitle": {
"type": "string",
"nullable": true,
"description": "Optional user-provided title that overrides `title` in the navigation UI."
},
"iconType": {
"type": "string",
"description": "Icon key shown next to the tab in the sidebar \u2014 for example `dashboard`, `insight`, `blank`."
},
"sceneId": {
"type": "string",
"nullable": true,
"description": "Scene identifier resolved from the pathname when known \u2014 used by the frontend for icon/title hints."
},
"sceneKey": {
"type": "string",
"nullable": true,
"description": "Scene key (logic key) for the destination, paired with `sceneParams` for deeper routing context."
},
"sceneParams": {
"description": "Free-form scene parameters captured at pin time, used by the frontend to rehydrate the destination."
},
"pinned": {
"type": "boolean",
"description": "Whether this entry is pinned. Always coerced to true on save \u2014 pass true or omit."
}
}
}