--- myst: html_meta: "description lang=en": "Dropbox Storage Provider configuration guide for Kasm Workspaces" "keywords": "Dropbox, Storage Provider, Storage Mapping, Cloud Storage" "property=og:locale": "en_US" --- ```{title} Dropbox Storage Provider Setup ``` ## Dropbox Storage Provider Setup The [Dropbox](https://www.dropbox.com/) Storage Provider allows end-users to map in their OneDrive storage into container-based sessions. Access is provided via [Dropbox's OAuth interface](https://www.dropbox.com/apps) and leveraging the [Rclone](https://rclone.org) Docker volume plugin. Reference Docs: - ### Creating a Dropbox OAuth App 1. Login to the Dropbox App Console: . 2. Select **Scoped Access**, **Full Dropbox**, give the app a name (e.g `Kasm-Example`), then click **Create app**. ```{figure} /images/storage_providers/dropbox/create_new_app.png :align: center **Create new App** ``` 3. On the next screen take note of the **App key** and **App Secret** , these will be used as the **Client ID** and **Client Secret** in the Storage Provider Configuration. ```{figure} /images/storage_providers/dropbox/app_key_secret.png :align: center **Authentication Details** ``` 4. In the **Development users** section, click **Enable additional users** to allow additional accounts to use this app. ```{figure} /images/storage_providers/dropbox/enable_additional_users.png :align: center **Enable Additional Users** ``` 5. In the OAuth 2 section, enter the following URL for **Redirect URI** , substituting the hostname of the Kasm deployment `https://kasm.example.com/api/cloud_storage_callback` , then click *Add*. ```{figure} /images/storage_providers/dropbox/app_redirect.png :align: center **Redirect Settings** ``` 6. Select the **Permissions** tab and ensure the following permissions are selected, then click **Submit**. ```text account_info.read files.metadata.read files.metadata.write files.content.write files.content.read sharing.read sharing.write ``` ```{figure} /images/storage_providers/dropbox/app_permissions.png :align: center **DropBox Permissions** ``` ### Kasm Storage Provider Config 1. Log into the Kasm UI as an administrator. 2. Select **Settings** -> **Storage** -> **Add**. 3. Update the form with the following entries, using the **Client ID** and **Client Secret** gathered in the previous section. ```{eval-rst} +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Name | :code:`Dropbox` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Storage Provider Type | :code:`Dropbox` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Enabled | :code:`checked` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Client ID | :code:`` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Client Secret | :code:`` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Authorization URL | :code:`https://www.dropbox.com/1/oauth2/authorize` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Authorization URL Options | :code:`{"include_granted_scopes" : "user", "access_type" : "offline", "token_access_type" : "offline"}` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Token URL | :code:`https://api.dropboxapi.com/1/oauth2/token` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Redirect URL | :code:`https:///api/cloud_storage_callback` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Scope | .. code-block:: text | | | | | | files.metadata.read | | | files.metadata.write | | | files.content.read | | | files.content.write | | | sharing.read | | | sharing.write | | | account_info.read | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Default Target | :code:`/dropbox` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Volume Config | .. code-block:: json | | | | | | { | | | "driver" : "rclone", | | | "driver_opts" : { | | | "type" : "dropbox", | | | "uid" : "1000", | | | "gid" : "1000", | | | "allow_other" : "true" | | | } | | | } | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Mount Config | :code:`{}` | +-------------------------------+--------------------------------------------------------------------------------------------------------------------+ ``` 4. Click **Save** to save the changes. ```{include} /user_guide/storage_providers/dropbox.md ```