# JBrowseWebSessionModel

Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the [developer guide](https://jbrowse.org/jb2/docs/developer_guide/) for concepts. [View source](https://github.com/GMOD/jbrowse-components/blob/main/products/jbrowse-web/src/sessionModel/index.ts).

The full-app web session: the shared web session plus the saved-session
database management surface (favorites, recent sessions, activate/delete) and
the permanent plugin list.

Each section ends with the members a composed model contributes, linked to the page that documents them.

## Properties

33 inherited properties from 9 models:

From [BaseWebSessionModel](../basewebsessionmodel): [`sessionPlugins`](../basewebsessionmodel#property-sessionplugins)

From [MultipleViewsSessionMixin](../multipleviewssessionmixin): [`views`](../multipleviewssessionmixin#property-views), [`stickyViewHeaders`](../multipleviewssessionmixin#property-stickyviewheaders)

From [BaseSessionModel](../basesessionmodel): [`id`](../basesessionmodel#property-id), [`name`](../basesessionmodel#property-name), [`focusedViewId`](../basesessionmodel#property-focusedviewid), [`highlights`](../basesessionmodel#property-highlights), [`highlightsVisible`](../basesessionmodel#property-highlightsvisible), [`highlightLabelsVisible`](../basesessionmodel#property-highlightlabelsvisible), [`heldForMissingPlugins`](../basesessionmodel#property-heldformissingplugins)

From [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin): [`drawerPosition`](../drawerwidgetsessionmixin#property-drawerposition), [`drawerWidth`](../drawerwidgetsessionmixin#property-drawerwidth), [`widgets`](../drawerwidgetsessionmixin#property-widgets), [`activeWidgets`](../drawerwidgetsessionmixin#property-activewidgets), [`minimized`](../drawerwidgetsessionmixin#property-minimized)

From [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin): [`sessionTracks`](../sessiontracksmanagersessionmixin#property-sessiontracks), [`trackConfigDeltas`](../sessiontracksmanagersessionmixin#property-trackconfigdeltas)

From [AssembliesMixin](../assembliesmixin): [`sessionAssemblies`](../assembliesmixin#property-sessionassemblies), [`temporaryAssemblies`](../assembliesmixin#property-temporaryassemblies)

From [WebSessionConnectionsMixin](../websessionconnectionsmixin): [`sessionConnections`](../websessionconnectionsmixin#property-sessionconnections)

From [ConnectionManagementSessionMixin](../connectionmanagementsessionmixin): [`connectionInstances`](../connectionmanagementsessionmixin#property-connectioninstances), [`connectionTrackConfigs`](../connectionmanagementsessionmixin#property-connectiontrackconfigs)

From [WorkspaceLayoutMixin](../workspacelayoutmixin): [`viewIds`](../workspacelayoutmixin#property-viewids), [`title`](../workspacelayoutmixin#property-title), [`size`](../workspacelayoutmixin#property-size), [`tabs`](../workspacelayoutmixin#property-tabs), [`activeTabId`](../workspacelayoutmixin#property-activetabid), [`size`](../workspacelayoutmixin#property-size), [`direction`](../workspacelayoutmixin#property-direction), [`children`](../workspacelayoutmixin#property-children), [`layout`](../workspacelayoutmixin#property-layout), [`activePanelId`](../workspacelayoutmixin#property-activepanelid), [`maximizedPanelId`](../workspacelayoutmixin#property-maximizedpanelid)


## Volatiles

| Member | Description |
| --- | --- |
| **permanentPlugins**<br><code>PermanentPluginEntry[]</code> | the plugins installed for this config on this browser, mirrored from localStorage.<br><br>Volatile rather than a view over storage, because a view is a MobX computed and this one would read no observable: it would compute once inside the plugin store's `observer` and cache the list forever. And volatile rather than a property, because the list belongs to the browser rather than to this session — sharing or exporting a session must not carry it. |
| **permanentPluginsSafeMode**<br><code>{ reason: SafeModeReason; suspects: string[]; } &#124; undefined</code> | why this load skipped the list, or undefined when it loaded them, decided once at boot |

12 inherited volatiles from 6 models:

From [BaseWebSessionModel](../basewebsessionmodel): [`pendingFileHandleIds`](../basewebsessionmodel#volatile-pendingfilehandleids)

From [ThemeManagerSessionMixin](../thememanagersessionmixin): [`systemPrefersDark`](../thememanagersessionmixin#volatile-systemprefersdark), [`darkReaderDark`](../thememanagersessionmixin#volatile-darkreaderdark)

From [BaseSessionModel](../basesessionmodel): [`selection`](../basesessionmodel#volatile-selection), [`hovered`](../basesessionmodel#volatile-hovered), [`queueOfDialogs`](../basesessionmodel#volatile-queueofdialogs), [`preferencesOverrides`](../basesessionmodel#volatile-preferencesoverrides)

From [SnackbarModel](../snackbarmodel): [`snackbarMessages`](../snackbarmodel#volatile-snackbarmessages), [`errorDialog`](../snackbarmodel#volatile-errordialog)

From [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin): [`poppedOut`](../drawerwidgetsessionmixin#volatile-poppedout), [`modalWidgets`](../drawerwidgetsessionmixin#volatile-modalwidgets)

From [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin): [`editableTrackConfigs`](../sessiontracksmanagersessionmixin#volatile-editabletrackconfigs)


## Getters

40 inherited getters from 11 models:

From [BaseWebSessionModel](../basewebsessionmodel): [`root`](../basewebsessionmodel#getter-root), [`shareURL`](../basewebsessionmodel#getter-shareurl), [`textSearchManager`](../basewebsessionmodel#getter-textsearchmanager)

From [ThemeManagerSessionMixin](../thememanagersessionmixin): [`themeName`](../thememanagersessionmixin#getter-themename), [`themeMode`](../thememanagersessionmixin#getter-thememode), [`selectedThemeMode`](../thememanagersessionmixin#getter-selectedthememode), [`effectiveThemeMode`](../thememanagersessionmixin#getter-effectivethememode), [`themeIsDark`](../thememanagersessionmixin#getter-themeisdark), [`themeOptions`](../thememanagersessionmixin#getter-themeoptions), [`palette`](../thememanagersessionmixin#getter-palette), [`styleTheme`](../thememanagersessionmixin#getter-styletheme), [`theme`](../thememanagersessionmixin#getter-theme)

From [BaseSessionModel](../basesessionmodel): [`jbrowse`](../basesessionmodel#getter-jbrowse), [`rpcManager`](../basesessionmodel#getter-rpcmanager), [`configuration`](../basesessionmodel#getter-configuration), [`adminMode`](../basesessionmodel#getter-adminmode), [`assemblies`](../basesessionmodel#getter-assemblies), [`DialogComponent`](../basesessionmodel#getter-dialogcomponent), [`DialogProps`](../basesessionmodel#getter-dialogprops), [`animationMode`](../basesessionmodel#getter-animationmode), [`scrollZoom`](../basesessionmodel#getter-scrollzoom), [`numberGrouping`](../basesessionmodel#getter-numbergrouping)

From [SnackbarModel](../snackbarmodel): [`snackbarMessageSet`](../snackbarmodel#getter-snackbarmessageset)

From [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin): [`visibleWidget`](../drawerwidgetsessionmixin#getter-visiblewidget), [`drawerVisible`](../drawerwidgetsessionmixin#getter-drawervisible), [`modalWidgetVisible`](../drawerwidgetsessionmixin#getter-modalwidgetvisible)

From [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin): [`trackBasesById`](../sessiontracksmanagersessionmixin#getter-trackbasesbyid), [`tracks`](../sessiontracksmanagersessionmixin#getter-tracks), [`promotableTrackIds`](../sessiontracksmanagersessionmixin#getter-promotabletrackids)

From [AssembliesMixin](../assembliesmixin): [`assemblyNames`](../assembliesmixin#getter-assemblynames)

From [AppSessionMixin](../appsessionmixin): [`version`](../appsessionmixin#getter-version), [`gitCommit`](../appsessionmixin#getter-gitcommit), [`history`](../appsessionmixin#getter-history), [`assemblyManager`](../appsessionmixin#getter-assemblymanager)

From [WebSessionConnectionsMixin](../websessionconnectionsmixin): [`connections`](../websessionconnectionsmixin#getter-connections)

From [WorkspaceLayoutMixin](../workspacelayoutmixin): [`tree`](../workspacelayoutmixin#getter-tree), [`panels`](../workspacelayoutmixin#getter-panels), [`tabs`](../workspacelayoutmixin#getter-tabs), [`visibleTree`](../workspacelayoutmixin#getter-visibletree)

From [WebSessionManagementMixin](../websessionmanagementmixin): [`savedSessionMetadata`](../websessionmanagementmixin#getter-savedsessionmetadata)


## Methods

26 inherited methods from 10 models:

From [BaseWebSessionModel](../basewebsessionmodel): [`canEditTrack`](../basewebsessionmodel#method-canedittrack), [`getTrackActions`](../basewebsessionmodel#method-gettrackactions)

From [ReferenceManagementSessionMixin](../referencemanagementsessionmixin): [`getReferringMultiple`](../referencemanagementsessionmixin#method-getreferringmultiple), [`getReferring`](../referencemanagementsessionmixin#method-getreferring)

From [ThemeManagerSessionMixin](../thememanagersessionmixin): [`allThemes`](../thememanagersessionmixin#method-allthemes), [`getActiveThemeOptions`](../thememanagersessionmixin#method-getactivethemeoptions)

From [BaseSessionModel](../basesessionmodel): [`getPreferenceDefault`](../basesessionmodel#method-getpreferencedefault), [`getPreference`](../basesessionmodel#method-getpreference), [`getPreferenceChanges`](../basesessionmodel#method-getpreferencechanges)

From [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin): [`withTrackEdits`](../sessiontracksmanagersessionmixin#method-withtrackedits), [`baseTrackConfig`](../sessiontracksmanagersessionmixin#method-basetrackconfig), [`getEditableTrackConfig`](../sessiontracksmanagersessionmixin#method-geteditabletrackconfig), [`getTrackConfigChanges`](../sessiontracksmanagersessionmixin#method-gettrackconfigchanges), [`isTrackOverride`](../sessiontracksmanagersessionmixin#method-istrackoverride)

From [TracksManagerSessionMixin](../tracksmanagersessionmixin): [`getTrackById`](../tracksmanagersessionmixin#method-gettrackbyid), [`getTracksById`](../tracksmanagersessionmixin#method-gettracksbyid)

From [AssembliesMixin](../assembliesmixin): [`findAssemblyConf`](../assembliesmixin#method-findassemblyconf)

From [AppSessionMixin](../appsessionmixin): [`menus`](../appsessionmixin#method-menus)

From [WorkspaceLayoutMixin](../workspacelayoutmixin): [`hasPanel`](../workspacelayoutmixin#method-haspanel), [`findTab`](../workspacelayoutmixin#method-findtab), [`tabContainingView`](../workspacelayoutmixin#method-tabcontainingview), [`panelContainingView`](../workspacelayoutmixin#method-panelcontainingview), [`viewIdsForTab`](../workspacelayoutmixin#method-viewidsfortab), [`activeTabOf`](../workspacelayoutmixin#method-activetabof)

From [TrackMenuItemsSessionMixin](../trackmenuitemssessionmixin): [`getTrackListMenuItems`](../trackmenuitemssessionmixin#method-gettracklistmenuitems), [`getTrackActionMenuItems`](../trackmenuitemssessionmixin#method-gettrackactionmenuitems)


## Actions

| Member | Description |
| --- | --- |
| **syncPermanentPlugins**<br><code>() =&gt; void</code> | re-reads the permanent plugin list from the browser, after something outside this session has written it |
| **addPermanentPlugin**<br><code>(plugin: PluginDefinition) =&gt; void</code> | keeps a plugin for every future visit to this JBrowse, and asks for the whole-app reload every plugin change needs |
| **removePermanentPlugin**<br><code>(plugin: PluginDefinition) =&gt; void</code> |  |
| **setPermanentPluginDisabled**<br><code>(plugin: PluginDefinition, disabled: boolean) =&gt; void</code> | switches a kept plugin off without taking it out of the list, so a user hunting one that crashed the app can keep the innocent ones. No reload is asked for: the entry is one the load already skipped, and rebuilding the app per switch is not what hunting a culprit wants |
| **reloadWithPermanentPlugins**<br><code>() =&gt; void</code> | leaves safe mode: clears the crash marker and reloads the page |

114 inherited actions from 14 models:

From [BaseWebSessionModel](../basewebsessionmodel): [`addAssemblyConf`](../basewebsessionmodel#action-addassemblyconf), [`addSessionPlugin`](../basewebsessionmodel#action-addsessionplugin), [`removeSessionPlugin`](../basewebsessionmodel#action-removesessionplugin), [`setSession`](../basewebsessionmodel#action-setsession), [`setPendingFileHandleIds`](../basewebsessionmodel#action-setpendingfilehandleids)

From [ReferenceManagementSessionMixin](../referencemanagementsessionmixin): [`dereferenceTrack`](../referencemanagementsessionmixin#action-dereferencetrack)

From [ThemeManagerSessionMixin](../thememanagersessionmixin): [`setThemeName`](../thememanagersessionmixin#action-setthemename), [`noteDarkReader`](../thememanagersessionmixin#action-notedarkreader), [`setSystemPrefersDark`](../thememanagersessionmixin#action-setsystemprefersdark), [`setSystemThemeOverride`](../thememanagersessionmixin#action-setsystemthemeoverride), [`setThemeMode`](../thememanagersessionmixin#action-setthememode)

From [MultipleViewsSessionMixin](../multipleviewssessionmixin): [`moveViewDown`](../multipleviewssessionmixin#action-moveviewdown), [`moveViewUp`](../multipleviewssessionmixin#action-moveviewup), [`moveViewToTop`](../multipleviewssessionmixin#action-moveviewtotop), [`moveViewToBottom`](../multipleviewssessionmixin#action-moveviewtobottom), [`orderViews`](../multipleviewssessionmixin#action-orderviews), [`addView`](../multipleviewssessionmixin#action-addview), [`replaceView`](../multipleviewssessionmixin#action-replaceview), [`removeView`](../multipleviewssessionmixin#action-removeview), [`takeOutViewsMissingFrom`](../multipleviewssessionmixin#action-takeoutviewsmissingfrom), [`setStickyViewHeaders`](../multipleviewssessionmixin#action-setstickyviewheaders), [`setUseWorkspaces`](../multipleviewssessionmixin#action-setuseworkspaces), [`launchView`](../multipleviewssessionmixin#action-launchview)

From [BaseSessionModel](../basesessionmodel): [`setSelection`](../basesessionmodel#action-setselection), [`clearSelection`](../basesessionmodel#action-clearselection), [`setHovered`](../basesessionmodel#action-sethovered), [`setHighlightsVisible`](../basesessionmodel#action-sethighlightsvisible), [`setHighlightLabelsVisible`](../basesessionmodel#action-sethighlightlabelsvisible), [`addHighlight`](../basesessionmodel#action-addhighlight), [`removeHighlight`](../basesessionmodel#action-removehighlight), [`updateHighlight`](../basesessionmodel#action-updatehighlight), [`setHighlights`](../basesessionmodel#action-sethighlights), [`setPreferenceOverride`](../basesessionmodel#action-setpreferenceoverride), [`clearPreferenceOverrides`](../basesessionmodel#action-clearpreferenceoverrides), [`clearPreferenceOverride`](../basesessionmodel#action-clearpreferenceoverride), [`setScrollZoom`](../basesessionmodel#action-setscrollzoom), [`setName`](../basesessionmodel#action-setname), [`setFocusedViewId`](../basesessionmodel#action-setfocusedviewid), [`removeActiveDialog`](../basesessionmodel#action-removeactivedialog), [`queueDialog`](../basesessionmodel#action-queuedialog), [`removeDialog`](../basesessionmodel#action-removedialog)

From [SnackbarModel](../snackbarmodel): [`notify`](../snackbarmodel#action-notify), [`notifyError`](../snackbarmodel#action-notifyerror), [`setErrorDialog`](../snackbarmodel#action-seterrordialog), [`pushSnackbarMessage`](../snackbarmodel#action-pushsnackbarmessage), [`popSnackbarMessage`](../snackbarmodel#action-popsnackbarmessage), [`removeSnackbarMessage`](../snackbarmodel#action-removesnackbarmessage)

From [DrawerWidgetSessionMixin](../drawerwidgetsessionmixin): [`setDrawerPosition`](../drawerwidgetsessionmixin#action-setdrawerposition), [`updateDrawerWidth`](../drawerwidgetsessionmixin#action-updatedrawerwidth), [`resizeDrawer`](../drawerwidgetsessionmixin#action-resizedrawer), [`addWidget`](../drawerwidgetsessionmixin#action-addwidget), [`showWidget`](../drawerwidgetsessionmixin#action-showwidget), [`hideWidget`](../drawerwidgetsessionmixin#action-hidewidget), [`minimizeWidgetDrawer`](../drawerwidgetsessionmixin#action-minimizewidgetdrawer), [`showWidgetDrawer`](../drawerwidgetsessionmixin#action-showwidgetdrawer), [`popoutWidget`](../drawerwidgetsessionmixin#action-popoutwidget), [`returnWidgetToDrawer`](../drawerwidgetsessionmixin#action-returnwidgettodrawer), [`setModalWidgets`](../drawerwidgetsessionmixin#action-setmodalwidgets), [`hideAllWidgets`](../drawerwidgetsessionmixin#action-hideallwidgets), [`closeModalWidget`](../drawerwidgetsessionmixin#action-closemodalwidget), [`openWidget`](../drawerwidgetsessionmixin#action-openwidget), [`editConfiguration`](../drawerwidgetsessionmixin#action-editconfiguration)

From [SessionTracksManagerSessionMixin](../sessiontracksmanagersessionmixin): [`addSessionTrackConf`](../sessiontracksmanagersessionmixin#action-addsessiontrackconf), [`publishTrackConf`](../sessiontracksmanagersessionmixin#action-publishtrackconf), [`addTrackConf`](../sessiontracksmanagersessionmixin#action-addtrackconf), [`updateTrackConfiguration`](../sessiontracksmanagersessionmixin#action-updatetrackconfiguration), [`promoteTrackConfigDeltas`](../sessiontracksmanagersessionmixin#action-promotetrackconfigdeltas), [`resetTrackConfiguration`](../sessiontracksmanagersessionmixin#action-resettrackconfiguration), [`deleteTrackConf`](../sessiontracksmanagersessionmixin#action-deletetrackconf)

From [AssembliesMixin](../assembliesmixin): [`addSessionAssembly`](../assembliesmixin#action-addsessionassembly), [`addAssembly`](../assembliesmixin#action-addassembly), [`removeAssembly`](../assembliesmixin#action-removeassembly), [`removeSessionAssembly`](../assembliesmixin#action-removesessionassembly), [`addTemporaryAssembly`](../assembliesmixin#action-addtemporaryassembly), [`removeTemporaryAssembly`](../assembliesmixin#action-removetemporaryassembly)

From [AppSessionMixin](../appsessionmixin): [`renameCurrentSession`](../appsessionmixin#action-renamecurrentsession)

From [WebSessionConnectionsMixin](../websessionconnectionsmixin): [`addSessionConnectionConf`](../websessionconnectionsmixin#action-addsessionconnectionconf), [`addConnectionConf`](../websessionconnectionsmixin#action-addconnectionconf), [`deleteConnection`](../websessionconnectionsmixin#action-deleteconnection)

From [ConnectionManagementSessionMixin](../connectionmanagementsessionmixin): [`makeConnection`](../connectionmanagementsessionmixin#action-makeconnection), [`breakConnection`](../connectionmanagementsessionmixin#action-breakconnection), [`teardownConnection`](../connectionmanagementsessionmixin#action-teardownconnection), [`clearConnections`](../connectionmanagementsessionmixin#action-clearconnections), [`captureConnectionTrack`](../connectionmanagementsessionmixin#action-captureconnectiontrack), [`updateConnectionTrackConfig`](../connectionmanagementsessionmixin#action-updateconnectiontrackconfig), [`setConnectionTrackConfig`](../connectionmanagementsessionmixin#action-setconnectiontrackconfig), [`pruneConnectionTrackConfig`](../connectionmanagementsessionmixin#action-pruneconnectiontrackconfig), [`hydrateConnection`](../connectionmanagementsessionmixin#action-hydrateconnection)

From [WorkspaceLayoutMixin](../workspacelayoutmixin): [`setActivePanelId`](../workspacelayoutmixin#action-setactivepanelid), [`toggleMaximizedPanel`](../workspacelayoutmixin#action-togglemaximizedpanel), [`restorePanels`](../workspacelayoutmixin#action-restorepanels), [`setActiveTab`](../workspacelayoutmixin#action-setactivetab), [`renameTab`](../workspacelayoutmixin#action-renametab), [`splitPanel`](../workspacelayoutmixin#action-splitpanel), [`closePanel`](../workspacelayoutmixin#action-closepanel), [`addTab`](../workspacelayoutmixin#action-addtab), [`closeTab`](../workspacelayoutmixin#action-closetab), [`addViewToTab`](../workspacelayoutmixin#action-addviewtotab), [`dropTabInPanel`](../workspacelayoutmixin#action-droptabinpanel), [`dropTabInNewSplit`](../workspacelayoutmixin#action-droptabinnewsplit), [`setSizes`](../workspacelayoutmixin#action-setsizes), [`applyLayoutSpec`](../workspacelayoutmixin#action-applylayoutspec), [`moveViewToNewTab`](../workspacelayoutmixin#action-moveviewtonewtab), [`moveViewToSplit`](../workspacelayoutmixin#action-moveviewtosplit), [`moveViewToTab`](../workspacelayoutmixin#action-moveviewtotab), [`homeUnassignedViews`](../workspacelayoutmixin#action-homeunassignedviews), [`setPendingMove`](../workspacelayoutmixin#action-setpendingmove), [`tileViews`](../workspacelayoutmixin#action-tileviews), [`layoutViews`](../workspacelayoutmixin#action-layoutviews)

From [WebSessionManagementMixin](../websessionmanagementmixin): [`deleteSavedSession`](../websessionmanagementmixin#action-deletesavedsession), [`deleteSavedSessions`](../websessionmanagementmixin#action-deletesavedsessions), [`setSavedSessionFavorite`](../websessionmanagementmixin#action-setsavedsessionfavorite), [`renameSavedSession`](../websessionmanagementmixin#action-renamesavedsession), [`activateSession`](../websessionmanagementmixin#action-activatesession)


