# AppCoreJBrowseModel

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. Built into JBrowse core. [View source](https://github.com/GMOD/jbrowse-components/blob/main/packages/app-core/src/JBrowseModel/index.ts).

Holds the loaded config file, usually at `rootModel.jbrowse`, with actions
that add and remove its assemblies and tracks. The model builds on the
[JBrowseRootConfig](https://jbrowse.org/jb2/docs/config/jbrowserootconfig) config model, which a
state model can do because a config model is itself an MST tree.

## Getters

| Member | Description |
| --- | --- |
| **assemblyNames**<br><code>string[]</code> |  |
| **rpcManager**<br><code>RpcManager</code> |  |

## Actions

| Member | Description |
| --- | --- |
| **addAssemblyConf**<br><code>(conf: AnyConfigurationModel) =&gt; ConfigNodeProps&lt;any&gt; &amp; ConfigNodeActions &amp; ConfigNodeBrand&lt;AnyConfigurationSchemaType&gt;</code> |  |
| **removeAssemblyConf**<br><code>(assemblyName: string) =&gt; void</code> |  |
| **addTrackConf**<br><code>(loose: { trackId: string; type?: string &#124; undefined; }) =&gt; { [key: string]: unknown; trackId: string; } &#124; undefined</code> |  |
| **addConnectionConf**<br><code>(connectionConf: AnyConfiguration) =&gt; PluggableConfigNode &amp; IStateTreeNode&lt;PluggableConfigSchemaType&gt;</code> | Adds to the config's own `connections`, which every visitor to this instance loads. Takes a snapshot as readily as a built config model — the array coerces — since callers hand it plain JSON (a session spec's `sessionConnections`, the CLI's add-connection output). |
| **deleteConnectionConf**<br><code>(configuration: AnyConfigurationModel) =&gt; boolean</code> |  |
| **deleteTrackConf**<br><code>(trackConf: AnyConfigurationModel &#124; { trackId: string; }) =&gt; void</code> |  |
| **updateTrackConf**<br><code>(trackConf: { [key: string]: unknown; trackId: string; }) =&gt; void</code> | Updates an existing track configuration. Used to sync editable configs back to the frozen tracks array. A trackId the array repeats replaces its last entry, the one the session resolves it to. |
| **addPlugin**<br><code>(pluginDefinition: PluginDefinition) =&gt; void</code> |  |
| **removePlugin**<br><code>(pluginDefinition: PluginDefinition) =&gt; void</code> | Removes the entry the loaded copy came from — the version-pinned definition, or the bare store ref that resolved to it. Not every entry sharing a name or a ref, so the update flow's remove-then-add swaps one version for another; `holdsPluginVersion` argues both halves. |
| **setDefaultSessionConf**<br><code>(sessionConf: AnyConfigurationModel) =&gt; void</code> | takes the live session or a plain session snapshot |
| **addInternetAccountConf**<br><code>(internetAccountConf: AnyConfigurationModel) =&gt; PluggableConfigNode &amp; IStateTreeNode&lt;PluggableConfigSchemaType&gt;</code> |  |
| **deleteInternetAccountConf**<br><code>(configuration: AnyConfigurationModel) =&gt; boolean</code> |  |

