summaryrefslogtreecommitdiff
path: root/docs/guide/enterprise
diff options
context:
space:
mode:
authorAlexander Taylor <alex@vector35.com>2024-07-09 20:43:15 -0400
committerAlexander Taylor <alex@vector35.com>2024-07-09 20:49:53 -0400
commit0bcd6afef3b82a046a7e7179e010bcdb32e727a6 (patch)
treeb2682e8db88ab950a6fc8cde2923c3defc327a16 /docs/guide/enterprise
parent283410e6209134b0980363ca297abeb7dea75001 (diff)
Merge the Enterprise docs in with everything else.
Diffstat (limited to 'docs/guide/enterprise')
-rw-r--r--docs/guide/enterprise/functionality.md225
-rw-r--r--docs/guide/enterprise/index.md189
-rw-r--r--docs/guide/enterprise/troubleshooting.md37
-rw-r--r--docs/guide/enterprise/user-interface.md134
4 files changed, 153 insertions, 432 deletions
diff --git a/docs/guide/enterprise/functionality.md b/docs/guide/enterprise/functionality.md
deleted file mode 100644
index 489a8f1f..00000000
--- a/docs/guide/enterprise/functionality.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Functionality
-
-Most functionality in the Enterprise client is accessed from the [Remote Dialog](user-interface.md#remote-dialog), which is shown when clicking the Active Server Button in the bottom-left of the status bar.
-
-
-## Managing Servers
-
-### Add a New Server
-1. Open the Remote Dialog
-2. Click `Connect...`
-3. Click `Add...`
-4. Enter the server hostname / port, and a friendly name it will be displayed as
-5. Click `Add`
-
-### Remove an Existing Server
-1. Open the Remote Dialog
-2. Click `Connect...`
-3. Choose the server you want to remove
-4. Click `Remove...`
-5. Click `Yes`
-
-### Log Into a Server
-1. Open the Remote Dialog
- 1. If you have previously chosen `Remember Me`, you may be prompted for credentials as Binary Ninja checks for saved sessions
-2. Click `Connect...`
-3. Choose the Enterprise server you want to connect to
-4. Click `Connect`
- 1. If you have previously chosen `Remember Me` and are logged into this server, you will not see an authentication dialog before being connected
- 2. If the server cannot be connected to, an error will be displayed in the log with details (click the error indicator on the window’s status bar to read the error)
- 3. The Server ID mismatch dialog may appear if the server you are connecting to has changed in some way since you last connected to it
-5. The authentication dialog will open for you to enter your username and password
- 1. If you have forgotten or need to reset your password, click `Forgot Password` and follow the directions to be emailed a link to reset your password
- 2. Optionally, check `Remember Me` if you want to save your login for the next time you open Binary Ninja
- 3. Optionally, check `Automatically Connect` if you want to log in automatically every time you open Binary Ninja
-6. Click `Login`
- 1. If the login was successful, the authentication dialog will close, and the Remote Dialog will update to show your current Projects
- 2. If you checked `Remember Me`, your session will be saved to your OS’s secure storage and can be cleared at any time by logging out of the Enterprise server
- 3. If the login was unsuccessful, a dialog will display an error message with details
-
-### Disconnecting From a Server
-1. Open the Remote Dialog
-2. Click `Disconnect...`
-
-### Log Out of a Server
-1. Open the Remote Dialog
- 1. If you are currently connected to an Enterprise server, disconnect from it
-2. Click `Connect...`
-3. Choose the Enterprise server you want to log out of
-4. Click `Log Out`
-5. Click `Yes`
-
-
-## Managing Users
-
-### Create a New User
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as an administrator.
-3. Click `Manage Users...`
-4. The Manage Users dialog will appear.
-5. Click `Add...`
-6. Fill out the details for the new user you want to create.
-
-!!! note
- If you want to make the new user a server administrator, see the Binary Ninja Enterprise server documentation.
-
-### Edit an Existing User
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as an administrator.
-3. Click `Manage Users...`
-4. The Manage Users dialog will appear.
-5. Select the user whose details you want to edit.
-6. Click `Edit...`
-7. Fill in the new details for this user
-
-!!! note
- If you want to make the new user a server administrator, see the Binary Ninja Enterprise server documentation.
-
-### Disable an Existing User
-Users cannot be deleted from the Enterprise server since this would break our ability to keep attribution on stored snapshots. Users can, however, be disabled. Disabled users are unable to authenticate with an Enterprise client or with the Enterprise server.
-
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as an administrator
-3. Click `Manage Users...`
-4. The Manage Users dialog will appear
-5. Select the user to remove
-6. Click `Disable...`
-7. Click `Yes`
-
-
-## Managing Groups
-### Create a New Group
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as a server administrator.
-3. Click `Manage Groups...`
-4. The Manage Groups dialog will appear.
-5. Click `Add...`
-6. Move users between "Available" and "Chosen" as needed
-
-### Edit an Existing Group
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as an administrator.
-3. Click `Manage Groups...`
-4. The Manage Group dialog will appear.
-5. Select the group you want to edit.
-6. Click `Edit...`
-7. Move users between "Available" and "Chosen" as needed
-
-### Delete an Existing Group
-1. Open the Remote Dialog
-2. Ensure you are logged into the server as an administrator
-3. Click `Manage Groups...`
-4. The Manage Groups dialog will appear
-5. Select the group to remove
-6. Click `Delete...`
-7. Click `Yes`
-
-
-## Managing Projects
-
-### Create a New Project
-1. Open the Remote Dialog
-2. Connect to an Enterprise server
-3. Click `Actions` above the File List
-4. In the Project List, click `Create Project...`
-5. Enter a name and description for your new project
-6. Click `Ok`
-
-### Edit a Project's Details
-1. Open the Remote Dialog
-2. Connect to an Enterprise server
-3. In the Project List, select the project whose details you want to edit
-4. Click `Actions` above the File List
-5. In the Project List, click `Edit Properties...`
-6. Enter the name and description for the project
-7. Click `Ok`
-
-### Delete a Project
-1. Open the Remote Dialog
-2. Connect to an Enterprise server
-3. In the Project List, select the project you want to delete
-4. Click `Actions` above the File List
-5. In the Project List, click `Delete...`
-6. Click `Yes`
-
-### Manage User or Group Permissions for a Project
-!!! note
- If the `Manage Permissions...` action is disabled, your account is not marked as a Project Admin.
-
-1. Open the Remote Dialog
-2. Connect to an Enterprise server
-3. In the Project List, select the project you want to modify
-4. Click `Actions` above the File List
-5. Click `Manage Permissions...` and the Project Permissions dialog will open
-
-#### Add a User to a Project
-From the Project Permissions dialog:
-
-1. Click `Add User`
-2. In the user textbox, type the username of the user that will be given access
-3. Change the `Permission` drop-down to "View", "Edit", or "Admin"
-4. Click `Save`
-
-#### Add a Group to a Project
-From the Project Permissions dialog:
-
-1. Click the `Groups` tab at the top
-2. Click `Add Group`
-3. In the group textbox, type the name of the group that will be given access
-4. Change the `Permission` drop-down to "View", "Edit", or "Admin"
-5. Click `Save`
-
-#### Remove a User from a Project
-From the Project Permissions dialog:
-
-1. Click the user you would like to remove
-2. Click the `Remove User(s)` button at the bottom left
-3. Click `Save`
-
-#### Add a Group to a Project
-From the Project Permissions dialog:
-
-1. Click the `Groups` tab at the top
-2. Click the group you would like to remove
-3. Click the `Remove Group(s) button at the bottom left
-4. Click `Save`
-
-
-## Managing Files
-Managing files within a Project, as of Binary Ninja 4.0, is now handled through the Project Browser. More information can now be found in the main Binary Ninja documentation.
-
-
-## Syncing Changes
-
-### Sync File Changes
-1. Open a project file
-2. Click the `Sync` button in the bottom left on the window
- 1. If there are any conflicts when syncing see, [Resolving Conflicts](#resolving-conflicts) below
-
-### Resolving Conflicts
-If there has been a conflict while syncing changes that cannot be resolved automatically, the Resolve Merge Conflict dialog will open.
-
-1. Select a conflict to resolve
-2. Inspect the left and right sides of the conflict
-3. Click either `Choose Left` or `Choose Right` to select one of the changes, or click `Cancel Merge` if you wish to cancel Syncing and merge later
- 1. If there are many conflicts and wish to resolve them all to the same direction, click either `Choose All Left` or `Choose All Right` to select one side for all conflicts
-
-### Named Snapshots
-When you sync your changes, you will be prompted to enter a summary of your changes. These summaries can be seen by all members of your Project by opening the file and using `File` > `Collaboration` > `File Changelog`.
-
-You can also annotate specific points in your analysis history without necessarily syncing, by using the `File` > `Collaboration` > `Create Named Snapshot` action. On syncing, these named snapshot summaries will also be uploaded.
-
-
-## Live Chat
-
-Live chat is provided by the Chat sidebar widget (the icon is two speech bubbles).
-
-### Send Chat Messages
-1. Open the chat window
-2. Type your message into the text box at the bottom of the chat panel
-3. Press "Enter" or "Return" to send your message
-
-### Link to an Address in Chat
-1. Open the chat window
-2. Type the address in with `0x` at the front (e.g. `0x0000face`)
-3. Press "Enter" or "Return" to send your message
diff --git a/docs/guide/enterprise/index.md b/docs/guide/enterprise/index.md
index 4b5556fa..11a0f436 100644
--- a/docs/guide/enterprise/index.md
+++ b/docs/guide/enterprise/index.md
@@ -1,59 +1,176 @@
-# Binary Ninja Enterprise Client
+# Binary Ninja Enterprise
!!! note
- This section only applies to the `Enterprise` edition of Binary Ninja
+ This section only applies to the `Enterprise` edition of Binary Ninja.
-Welcome to the Binary Ninja Enterprise client documentation, part of our Binary Ninja Enterprise product.
+The Enterprise edition of Binary Ninja seamlessly integrates remote collaboration functionality within the client. This includes remote project management, push/pull of analysis database and type archive snapshots, real-time chat, and more.
-### Licensing
-If your Enterprise client came with a *named* license, please ensure the `license.dat` that contains the license has been placed in your user folder. User folder locations, per platform, are:
+## Licensing
-* Windows: `%APPDATA%\Binary Ninja`
-* macOS: `~/Library/Application Support/Binary Ninja`
-* Linux: `~/.binaryninja`
+Opening your Enterprise client for the first time, you will be greeted by the following dialog:
-Otherwise, the Enterprise client will need to check out a *floating* license from the server. This happens while you are logging in (unless you already have a license) and will automatically renew based on the "Checkout Duration" interval you chose in the login dialog.
+![License Dialog](../../img/enterprise/license-dialog.png){: style="max-width:500px; display: block; margin: auto;"}
-## API Examples
+If you have a *named* license, your experience should be identical to that of a Commercial client (with extra features). Click the "Used Named License..." button and select the `license.dat` that was provided when you purchased your license. This will be placed in your [user folder](../index.md#user-folder).
-Examples of using the `collaboration` and `enterprise` APIs (which are unique to the Enterprise edition of the client) can be found bundled with the client:
+Otherwise, the Enterprise client will need to check out a *floating* license from your Enterprise server. Enter your server location into the box and click "Connect". (All connections should happen over HTTPS and the default port is 3535.)
-* **macOS**: `Binary\ Ninja.app/Contents/Resources/python/binaryninja/collaboration/examples`
-* **Linux**: `binaryninja/python/binaryninja/collaboration/examples`
-* **Windows**: `Binary Ninja\python\binaryninja\collaboration\examples`
+## Authentication
+
+When connecting to an Enterprise server, you will see the following dialog:
+
+![Login Dialog](../../img/enterprise/login-dialog.png){: style="max-width:432px; display: block; margin: auto;"}
+
+This dialog will have up to 5 fields:
+
+* **Server**: The Enterprise server you are connecting to, which can be changed by clicking the edit icon to the right. (This will cause Binary Ninja to restart.)
+* **Authentication**: If the Enterprise server you are connecting to has a Single Sign-On (SSO) provider configured, this drop-down menu will appear to allow users to authenticate via SSO instead of username and password.
+* **Username**: This text box contains your username if you are logging in with an Enterprise server account (hidden if using SSO).
+* **Password**: This text box contains your password if you are logging in with an Enterprise server account (hidden if using SSO).
+* **Remember Me**: This checkbox will remember the settings you choose and try to log you in the same way in the future.
+* **Checkout Duration**: This drop-down provides a selection of license durations. The default is "Until I Quit", which will refresh your license every 15 minutes until you quit the Enterprise client.
## Configuration
-The Enterprise client has a number of user-configurable settings that let you change its behavior. These settings can be found in the main Settings window (`Edit -> Preferences`) within Binary Ninja in two separate areas:
+The Enterprise client has a number of settings that let you change its behavior. These settings can be found in the main Settings window (`Edit -> Preferences`) within Binary Ninja. See the [Settings](../settings.md) documentation for more details.
+
+## User Interface
+
+The Enterprise edition of Binary Ninja adds a few extra items in the user interface. These include:
+
+* An extra [status indicator](#status-indicator) in the status bar
+* The [Remote Dialog](#remote-dialog)
+* The [Chat](#chat) sidebar widget
+* The [User Positions](#user-positions) sidebar widget
+* The [Describe Changes](#describe-changes-dialog) and [Resolve Merge Conflict](#resolve-merge-conflict-dialog) dialogs
+
+### Status Indicator
+The first additional UI feature can be found in the bottom-left corner of the status bar:
+
+![Status Bar](../../img/enterprise/status-bar.png){: style="max-width:324px; display: block; margin: auto;"}
+
+This indicator consists of three separate sections: The active server button, the sync button, and the project button.
+
+#### Active Server Button
+This button shows your connection status with the Enterprise server and acts as a shortcut to the Remote Dialog.
+
+#### Sync Button
+This button shows how many snapshots can be pushed to or pulled from the Enterprise server. It is only shown with a shared database open. Clicking it will push and pull snapshots as needed to synchronize your local state with the Enterprise server's state. This is the best way to quickly share your changes with other collaborators and ensure you have their changes, too.
+
+The sync button has four indicators, some of which may be hidden:
+
+* `!!`: This indicates that there has been a problem with either getting status from the server or syncing with the server. Check the log for more details.
+* `# ↑`: This indicates the number of local snapshots that have not yet been pushed to the Enterprise server.
+ * If you see a `*` next to the number, that indicates that you have unsaved local changes that are not yet part of a snapshot.
+ * If this indicator is missing, it means your user does not have permission to push snapshots to the Enterprise server for this file.
+* `# ↓`: This indicates the number of remote snapshots that have not yet been pulled from the Enterprise server.
+* `↻`: This indicates that the client is in the process of checking with the Enterprise server to see if there are any new snapshots available.
+
+!!! note
+ Clicking this button will cause a save to occur. It's not possible to sync without having all changes in a snapshot, which requires a save.
+
+#### Project Button
+This button shows the currently active project and will show the Project Browser tab when clicked. See the main Binary Ninja documentation for more information regarding projects.
+
+### Remote Dialog
+The Remote Dialog is the primary point of interaction with a remote Enterprise server. It can be opened by:
+
+* Clicking on the active server button in the status bar (see above)
+* Clicking `View/Collaboration/Remote Dialog` in the menu bar
+* Opening the command palette (`[CTRL/CMD-P]`) and choosing `Collaboration - Remote Dialog` in the list
+
+![Remote Dialog](../../img/enterprise/remote-dialog.png){: style="max-width:707px; display: block; margin: auto;"}
-### Collaboration
+The main components of the Remote Dialog window deal with management and display of remote projects. On top of these is an area for managing the server and your connection to it.
-* *Active Server* (`collaboration.activeRemote`) is the URL of the Enterprise server to automatically connect to on launch.
-* *Advanced Conflict Resolution* (`collaboration.advancedMerge`) shows additional information in the merge conflict resolution UI.
-* *Auto Connect* (`collaboration.autoConnectOnLaunch`) makes Binary Ninja attempt to connect to your last used Enterprise server when you open the application.
-* *Poll Interval* (`collaboration.autoPollInterval`) controls the time between automatic fetching for updated snapshots from the Enterprise server. This updates the pending change counts shown on the sync button in the status bar, but does not pull the changes. Set this to 0 to disable polling entirely.
-* *Collaboration Project Directory* (`collaboration.directory`) defines the directory on your local disk where local copies of Collaboration files will be stored.
-* *Maximum Conflict Diff Size* (`collaboration.maxConflictDiff`) defines a maximum size for showing diffs, which prevents performance issues with large diffs
-* *Collaboration Servers* (`collaboration.servers`) is a list of Enterprise servers and their URLs that the Enterprise client may connect to.
-* *Sync on Save* (`collaboration.syncOnSave`) controls whether the Enterprise client will sync your local changes to the Enterprise server every time you save.
+#### Project List
+The Project List shows what projects are available to you on the Enterprise server. Right-click will give a context menu with the following options:
-### Enterprise
+* **Manage Permissions**: Opens a dialog where you can manage permissions for the project
+* **Edit Info**: Opens a dialog where you can edit project metadata
+* **Delete**: Deletes the project (this has a confirmation dialog and is *non-recoverable*)
+* **Add Project**: Opens a dialog where you can add project metadata for a new project
-* *Automatically Checkout License* (`enterprise.autoCheckout`), if enabled, will cause Binary Ninja Enterprise to automatically check out a license on launch.
-* *Default License Checkout Duration* (`enterprise.defaultCheckoutDuration`) will change the default duration of a checked out license.
-* *Secrets Provider* (`enterprise.secretsProvider`) will change the secrets provider used for storing your checked out license.
-* *Enterprise Server URL* (`enterprise.server.url`) is a read-only setting that shows the base URL for the currently connected Enterprise server.
+![Project Metadata Dialog](../../img/enterprise/project-metadata.png){: style="max-width:461px; display: block; margin: auto;"}
-### Core
+#### Manage Permissions Dialog
+![Manage Permissions Dialog](../../img/enterprise/manage-permissions.png){: style="max-width:657px; display: block; margin: auto;"}
-* *Collaboration Plugin* (`corePlugins.collaboration`) allows you to disable all collaboration features.
-* *Database Viewer (Debug)* (`corePlugins.databaseViewer`) enables an experimental, built-in database viewer plugin that can be used to debug database issues.
+Permissions can be set on *users* or *groups* of users. Available permissions are:
-### Network
+* **View**: Lets the user or group view the files in the project, but not push any changes
+* **Edit**: Lets the user or group push analysis changes, upload files, and change product details, in addition to view permissions
+* **Admin**: Lets the user or group modify the project permissions, in addition to edit permissions
-* *Enable Collaboration Server* (`network.enableCollaborationServer`) controls all collaboration network activity.
+#### Server Area
+Across the of the Remote Dialog are five buttons:
-### Updates
+* **Refresh**: Refreshes the projects and files shown from the currently active server.
+* **Connect**/**Disconnect**: Connects to (or disconnect from) an Enterprise server. If connecting, it will show the "Connect to Remote" window (see below).
+* **Manage Users...**: Opens a dialog that allows adding, editing, and removing users from the current server. (Only available to server administrators.)
+* **Manage Groups...**: Opens a dialog that allows adding, editing, and removing groups from the current server. (Only available to server administrators.)
+* **Actions**: Opens a context menu with the following options:
+ * **Create Project...**: Opens a dialog box for creating a new project.
+ * **Import Local Project...**: Opens a file picker to select a local project to upload in its entirety.
+ * **Edit Properties...**: Opens a dialog box for editing the current project's name and description.
+ * **Manage Permissions...**: Opens a dialog for editing the current project's permissions.
+ * **Delete...**: Deletes the currently selected project. This has a confirmation dialog and is *non-recoverable*!
-* *Use Enterprise Server For Updates* (`updates.useEnterpriseServer`) controls whether the client will look for updates on the internet from the official Binary Ninja update servers (unchecked) or from the currently connected Enterprise server (checked).
+Above these buttons is your current server connection status.
+
+#### Connect to Remote Window
+The "Connect to Remote" window is shown when the Connect button is clicked. Here, you can manage Enterprise servers with the buttons on the right of the window.
+
+![Connect to Remote](../../img/enterprise/connect-to-remote.png){: style="max-width:707px; display: block; margin: auto;"}
+
+When connecting to a new Enterprise server, a Login dialog will appear. In addition to the obvious username and password fields, the `Remember me` field will store a token in your platform's secret store or keychain. `Automatically connect` will attempt to reconnect to this Enterprise server in the future.
+
+### Chat
+Every file in a project has an associated chat log that can be accessed via the Chat sidebar icon. Users working on the same file can send messages in the chat window to communicate with other collaborators in real-time.
+
+![Chat Sidebar Widget](../../img/enterprise/chat-sidebar-widget.png){: style="max-width:344px; display: block; margin: auto;"}
+
+### User Positions
+Every file in a project has an associated list of user positions that can be accessed via the User Positions sidebar icon. This is a table that shows, in real-time:
+
+* **Username**: The username of users that have this file open from the server
+* **View Type**: The type of view each user is currently looking at
+* **Function**: The function each user is looking at, if they are looking at a function
+* **Offset**: The offset in the file each user is looking at
+* **IL Type**: What type of IL each user is looking at
+
+Double-clicking on any entry in this table will navigate you to that location within the file.
+
+![User Positions Widget](../../img/enterprise/user-positions-sidebar-widget.png){: style="max-width:342px; display: block; margin: auto;"}
+
+### Describe Changes Dialog
+In any open file from a shared project, the Describe Changes Dialog will appear during the sync process if you are pushing any changes to the Enterprise server. This will apply a name to the set of changes you are pushing and add an entry in the file's Changelog.
+
+![Describe Changes Dialog](../../img/enterprise/describe-changes.png){: style="max-width:335px; display: block; margin: auto;"}
+
+### File Changelog
+The File Changelog can be accessed via `File/Collaboration/File Changelog...`. It shows a list of changes that have been made to the current file, along with what user made those changes, when, and a description of those changes. Items in this list are *sets* of changes (typically all of the changes before a user clicked the sync button), rather than every snapshot in the database.
+
+![File Changelog](../../img/enterprise/file-changelog.png){: style="max-width:901px; display: block; margin: auto;"}
+
+### Resolve Merge Conflict Dialog
+If any conflicts arise while you are syncing your changes to the Enterprise server, the Resolve Merge Conflict Dialog will appear.
+
+![Resolve Merge Conflict Dialog](../../img/enterprise/merge-conflict.png){: style="max-width:816px; display: block; margin: auto;"}
+
+The left-hand side of the dialog will show the conflicts in a list. The right-hand side of the dialog will show the conflict. The buttons along the bottom can be used to:
+
+* **Choose Left**: Choose to keep the change on the left for this conflict
+* **Choose Right**: Choose to keep the change on the right for this conflict
+* **Choose All Left**: Choose to keep the changes on the left for all conflicts
+* **Choose All Right**: Choose to keep the changes on the right for all conflicts
+* **Cancel Merge**: Stop syncing and return to the latest snapshot without merging
+
+## API Examples
+
+Examples of using the `collaboration` and `enterprise` APIs (which are unique to the Enterprise edition of the client) can be found bundled with the client:
+
+* **macOS**: `Binary\ Ninja.app/Contents/Resources/python/binaryninja/collaboration/examples`
+* **Linux**: `binaryninja/python/binaryninja/collaboration/examples`
+* **Windows**: `Binary Ninja\python\binaryninja\collaboration\examples`
diff --git a/docs/guide/enterprise/troubleshooting.md b/docs/guide/enterprise/troubleshooting.md
deleted file mode 100644
index ab00d786..00000000
--- a/docs/guide/enterprise/troubleshooting.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Troubleshooting
-
-Occasionally, you may encounter issues with the Enterprise client. Here are some common issues and troubleshooting steps to fix them:
-
-
-## Cannot Connect to Enterprise Server
-
-If you have multiple copies of Binary Ninja installed, it is often difficult to get the correct client connected when clicking on the Connect button on the Enterprise server's front page. If you are having trouble getting your client connected (or if you have already connected your client, but the server has moved), you will want to edit the `enterprise.server.url` key in your `settings.json` file. This file should be found in your user folder:
-
-* **macOS:** `~/Library/Application Support/Binary Ninja/settings.json`
-* **Linux:** `~/.binaryninja/settings.json`
-* **Windows:** `%APPDATA%\Binary Ninja\settings.json`
-
-This is also the intended workaround for any other situations where you cannot get the client connected. This setting is currently not able to be changed while the Enterprise client is running and must be changed manually.
-
-!!! warning
- If you are always getting the dialog to connect to the initial server every time you launch the client, make sure your `settings.json` file is valid JSON. An extra trailing comma on the last entry, or a missed trailing slash on an earlier entry, are common culprits.
-
-
-## Cannot Check Out License
-
-`Enterprise Server failed loading metadata.`
-
-This means that the Enterprise server, after connection, did not provide your client with metadata required to check out a new license. The most common cause of this error is having invalid cached credentials that leave you in a partially logged-in state.
-
-The easiest way to fix this is to close Binary Ninja Enterprise and move or remove the `keychain` folder that is found in your user folder:
-
-* **macOS:** `~/Library/Application Support/Binary Ninja/keychain`
-* **Linux:** `~/.binaryninja/keychain`
-* **Windows:** `%APPDATA%\Binary Ninja\keychain`
-
-
-## Cannot Save or Sync Because Database is Locked
-
-Binary Ninja is only able to have a single instance of any given database open at a time. If you open another instance and try to save or sync (which requires saving), you may encounter an error that states the database is locked and cannot be modified. In order to save, you will need to locate the other open copy of the database on your computer and close it. In order to sync, you may need to additionally restart the Enterprise client.
-
-If you have followed these instructions and are still unable to save or sync, please contact support.
diff --git a/docs/guide/enterprise/user-interface.md b/docs/guide/enterprise/user-interface.md
deleted file mode 100644
index e39486ae..00000000
--- a/docs/guide/enterprise/user-interface.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# User Interface
-
-Enterprise collaboration functionality is intended to be seamlessly integrated with Binary Ninja. But, there are still a few differences.
-
-
-## Login Dialog
-
-When starting the Enterprise client, you will be greeted by a login dialog:
-
-![Login Dialog](../../img/enterprise/login-dialog.png)
-
-This dialog will have up to 4 fields:
-
-* **Authentication**: If the Enterprise server you are connecting to has a Single Sign-On (SSO) provider configured,this drop-down menu will appear to allow users to authenticate with an SSO provider instead of with an Enterprise server account.
-* **Username**: This text box contains your username if you are logging in with an Enterprise server account (hidden if using SSO)
-* **Password**: This text box contains your password if you are logging in with an Enterprise server account (hidden if using SSO)
-* **Remember Me**: This checkbox will remember the settings you choose and try to log you in the same way (and with the same settings) in the future.
-* **Checkout Duration**: This drop-down provides a selection of license durations. The default is "Until I Quit", which will refresh your license every 15 minutes until you quit the Enterprise client.
-
-
-## Status Bar
-
-The first additional UI feature can be found in the bottom-left corner of the status bar:
-
-![Status Bar](../../img/enterprise/status-bar.png)
-
-This indicator consists of three separate sections: The active server button, the sync button, and the project button.
-
-### Active Server Button
-This button shows your connection status with the Enterprise server and acts as a shortcut to the Remote Dialog tab.
-
-### Sync Button
-This button shows how many snapshots can be pushed to or pulled from the Enterprise server. It is only shown with a shared database open. Clicking it will push and pull snapshots as needed to synchronize your local state with the Enterprise server's state. This is the best way to quickly share your changes with other collaborators and ensure you have their changes, too.
-
-The sync button has four indicators, some of which may be hidden:
-
-* `!!` - This indicates that there has been a problem with either getting status from the server or syncing with the server. Check the log for more details.
-* `# ↑` - This indicates the number of local snapshots that have not yet been pushed to the Enterprise server.
- * If you see a `*` next to the number, that indicates that you have unsaved local changes that are not yet part of a snapshot.
- * If this indicator is missing, it means your user does not have permission to push snapshots to the Enterprise server for this file.
-* `# ↓` - This indicates the number of remote snapshots that have not yet been pulled from the Enterprise server.
-* `↻` - This indicates that the client is in the process of checking with the Enterprise server to see if there are any new snapshots available.
-
-### Project Button
-This button shows the currently active project and will show the Project Browser tab when clicked. See the main Binary Ninja documentation for more information regarding projects.
-
-### Describe Changes Dialog
-![Describe Changes Dialog](../../img/enterprise/describe-changes.png)
-
-This dialog will appear during the sync process if you are pushing any changes to the Enterprise server. This will apply a name to the set of changes you are pushing and add an entry in the file's changelog.
-
-
-## File Changelog
-
-![File Changelog](../../img/enterprise/file-changelog.png)
-
-This dialog can be accessed via `File -> Collaboration -> File Changelog...`. It shows a list of changes that have been made to the current file, along with what user made those changes, when, and a description of those changes. Items in this list are *sets* of changes (typically all of the changes before a user clicked the sync button), rather than every snapshot in the database.
-
-
-## Remote Dialog
-
-This is the main window for the Enterprise client is the Remote Dialog. It can be opened by either:
-
-* Clicking `View -> Collaboration -> Remote Dialog` in the menu bar
-* Clicking on the active server button in the status bar (see above)
-* Opening the command palette (`[CTRL/CMD-P]`) and choosing `Collaboration - Remote Dialog` in the list
-
-![Remote Dialog](../../img/enterprise/remote-dialog.png)
-
-The main components of the Remote Dialog window deal with management and display of remote projects. On top of these is an area for managing the server and your connection to it.
-
-### Project List
-The Project List shows what projects are available to you on the Enterprise server. Right-click will give a context menu with the following options:
-
-* **Manage Permissions** - Opens a dialog where you can manage permissions for the project
-* **Edit Info** - Opens a dialog where you can edit project metadata
-* **Delete** - Deletes the project (this has a confirmation dialog and is *non-recoverable*)
-* **Add Project** - Opens a dialog where you can add project metadata for a new project
-
-![Project Metadata Dialog](../../img/enterprise/project-metadata.png)
-
-#### Manage Permissions Dialog
-![Manage Permissions Dialog](../../img/enterprise/manage-permissions.png)
-
-Permissions can be set on *users* or *groups* of users. Available permissions are:
-
-* **View** - Lets the user or group view the files in the project, but not push any changes
-* **Edit** - Lets the user or group push analysis changes, upload files, and change product details, in addition to view permissions
-* **Admin** - Lets the user or group modify the project permissions, in addition to edit permissions
-
-### Server Area
-Across the of the Remote Dialog are five buttons:
-
-* **Refresh** - Refreshes the projects and files shown from the currently active server.
-* **Connect**/**Disconnect** - Connects to (or disconnect from) an Enterprise server. If connecting, it will show the "Connect to Remote" window (see below).
-* **Manage Users...** - Opens a dialog that allows adding, editing, and removing users from the current server. (Only available to server administrators.)
-* **Manage Groups...** - Opens a dialog that allows adding, editing, and removing groups from the current server. (Only available to server administrators.)
-* **Actions** - Opens a context menu with the following options:
- * **Create Project...** - Opens a dialog box for creating a new project
- * **Import Local Project...** - Opens a file picker to select a local project to upload in its entirety
- * **Edit Properties...** - Opens a dialog box for editing the current project's name and description
- * **Manage Permissions...** - Opens a dialog for editing the current project's permissions
- * **Delete...** - Deletes the currently selected project (this has a confirmation dialog and is *non-recoverable*)
-
-Above these buttons is your current server connection status.
-
-#### Connect to Remote Window
-![Connect to Remote](../../img/enterprise/connect-to-remote.png)
-
-The "Connect to Remote" window is shown when the Connect button is clicked. Here, you can manage Enterprise servers with the buttons on the right of the window.
-
-When connecting to a new Enterprise server, a Login dialog will appear. In addition to the obvious username and password fields, the `Remember me` field will store a token in your platform's secret store or keychain. `Automatically connect` will attempt to reconnect to this Enterprise server in the future.
-
-
-## Chat Window
-
-Every file in a project has an associated chat log that can be accessed via `View -> Chat` in the menu bar or via the Chat sidebar icon. Users working on the same file can send messages in the chat window to communicate with other collaborators in real-time.
-
-![Chat Sidebar Widget](../../img/enterprise/chat-sidebar-widget.png)
-
-
-## User Positions
-
-Every file in a project has an associated list of user positions that can be accessed via `View -> User Positions` or via the User Positions sidebar icon. This is a table that shows, in real-time:
-
-* **Username** - The username of users that have this file open from the server
-* **View Type** - The type of view each user is currently looking at
-* **Function** - The function each user is looking at, if they are looking at a function
-* **Offset** - The offset in the file each user is looking at
-* **IL Type** - What type of IL each user is looking at
-
-Double-clicking on any entry in this table will navigate you to that location within the file.
-
-![User Positions Widget](../../img/enterprise/user-positions-sidebar-widget.png)