From 3102c02f83d7a801d0990e675cd366c8bd5c9e04 Mon Sep 17 00:00:00 2001 From: Jashon Osala <64925863+osala-eng@users.noreply.github.com> Date: Mon, 4 Dec 2023 09:05:12 +0300 Subject: [PATCH] doc: Google Drive and OneDrive documentation (#169) * doc: Add user guide for file storage services G Drive and One Drive. * doc: Add dev guide for setting up Google Drive API. * doc: Add dev guide for setting up Microsoft OneDrive. --- docs/assets/azure_register_an_application.png | Bin 0 -> 93983 bytes docs/developer-guide/file-storage-services.md | 71 ++++++++++++++++++ docs/index.md | 1 + docs/user-guide/config-spaces.md | 38 ++++++++-- docs/user-guide/data-sources.md | 2 + 5 files changed, 104 insertions(+), 8 deletions(-) create mode 100644 docs/assets/azure_register_an_application.png create mode 100644 docs/developer-guide/file-storage-services.md diff --git a/docs/assets/azure_register_an_application.png b/docs/assets/azure_register_an_application.png new file mode 100644 index 0000000000000000000000000000000000000000..208074bd9008132c293b9e0b37e4fed431d038d4 GIT binary patch literal 93983 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 z­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

~9KLY9wo)Yz<#w9pP%P4% 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 APIs & Services > [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent) then click create and complete the App registration form with the following scopes: + - `https://www.googleapis.com/auth/drive.readonly` + - `https://www.googleapis.com/auth/userinfo.email` + - `openid` +- Go to Menu > APIs & Services > [Credentials](https://console.cloud.google.com/apis/credentials) then click create credentials. +- Click `+ CREATE CREDENTIALS` > OAuth client ID then Fill the form with the following details: + - Application type: Web application + - Authorized redirect URIs: `/Admin_Spaces/`, e.g. `http://localhost:8501/Admin_Spaces/` +- Click create and download the credentials.json file. + +The more detailed guide can be found [here](https://developers.google.com/drive/api/quickstart/python). + +### Configure Docq web application for Google Drive + +After setting up the Google Cloud project and configuring the Google Drive API, you need to configure the Docq web application. This involves configuring the following environment variables: + +- `DOCQ_GOOGLE_APPLICATION_CREDENTIALS`: The path to the credentials.json file. +- `DOCQ_GOOGLE_AUTH_REDIRECT_URL`: The redirect URL, e.g. `http://localhost:8501/Admin_Spaces/`. This must be an exact match to the Authorized redirect URIs in the Google Cloud Console. + +Note: The Google Drive data source will be automatically disabled if any of the above environment variables are not set. + + +## File storage: OneDrive + +This guide aims to assist developers in integrating OneDrive with Docq. The focus will be on setting up the Microsoft Graph API and obtaining the necessary credentials. + +### Setup and Configure Microsoft Azure Application + +- [Register an Application](https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/CreateApplicationBlade/isMSAApp~/false) in the Microsoft Entra ID center + +![Register an Application](../assets/azure_register_an_application.png) +- Configure the following under `Redirect URI` + - Select `Web` as the platform + - Enter the redirect URL to the following path `/Admin_Spaces/` e.g. `http://localhost:8501/Admin_Spaces/` +- Select `API Permissions` on the side nav and add the following permissions + - `Files.Read` + - `User.Read` + - `offline_access` +- Select `Certificates & secrets` on the side nav and create a new client secret and save this for later. + +A more detailed guide can be found [here](https://learn.microsoft.com/en-us/graph/auth-register-app-v2#register-an-application). + +### Configure Docq web application for OneDrive + +After setting up the Microsoft Azure Application and configuring the Microsoft Graph API, you need to configure the Docq web application. This involves configuring the following environment variables: + +- `DOCQ_MS_ONEDRIVE_CLIENT_ID`: The client ID of the application you registered in the Microsoft Azure Application. +- `DOCQ_MS_ONEDRIVE_CLIENT_SECRET`: The client secret of the application you registered in the Microsoft Azure Application. +- `DOCQ_MS_ONEDRIVE_REDIRECT_URI`: The redirect URL, e.g. `http://localhost:8501/Admin_Spaces/`. This must be an exact match to the Redirect URI in the Microsoft Azure Application. + +Note: The OneDrive data source will be automatically disabled if any of the above environment variables are not set. diff --git a/docs/index.md b/docs/index.md index 4ebe1fa4..6aadefaf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,3 +15,4 @@ For the developers and other tech-savvy audience, Docq is like **WordPress for g [User Guide](./user-guide/getting-started.md) - This is section is for _end-users_ (employees) and admins of the Docq app. It covers how to deploy and config Docq and how to use the AI chat funcitonality to help with your daily work. [Developer Guide](./developer-guide/getting-started.md) - This section id for those wanting to understand the Docq code base, make code changes to customise Docq, extend Docq, and use Docq as a platform to build AI powered applications on top. +- [File Storage Services](./developer-guide/file-storage-services.md) - Docq supports multiple file storage services. This section covers how to setup the supported file storage services. diff --git a/docs/user-guide/config-spaces.md b/docs/user-guide/config-spaces.md index 6fa0913f..d0bd114a 100644 --- a/docs/user-guide/config-spaces.md +++ b/docs/user-guide/config-spaces.md @@ -5,12 +5,12 @@ A [Spaces](../overview/key-features.md#spaces-as-data-compartmentation) in Docq To create a space you need to have Admin privileges in Docq. - Navigate to 'Admin Overview' > click the 'Shared Spaces' tab > click '+ New Space' -- Add a name that help you easily identify the space. +- Add a name that helps you easily identify the space. - Add a summary with any additional details. This is helpful when managing several spaces. -- Finally select a data source. Most data sources will require additional config which is data source dependent. Each supported data source has a section below with configuration details. +- Finally, select a data source. Most data sources will require additional config which is data source dependent. Each supported data source has a section below with configuration details. - Click 'Create Space' to complete. -At the moment, data sources other than MANUAL_UPLOAD require manually re-indexing by navigating to 'Manage Documents' and clicking the 'Reindex' botton. +At the moment, data sources other than MANUAL_UPLOAD require manually re-indexing by navigating to 'Manage Documents' and clicking the 'Reindex' button. ![Admin overview create space screenshot](./../assets/admin-overview-create-space.png) @@ -20,7 +20,7 @@ Azure blob config screen in Docq ![Azure blob config screenshot](../assets/azure-blob-config-screen.png) -To get the values you will need access to the Azure portal where the Blob container is configured. If you don't have access you will need help from your friendly IT admin or cloud infrastructure engineer that does. +To get the values you will need access to the Azure portal where the Blob container is configured. If you don't have access, you will need help from your friendly IT admin or cloud infrastructure engineer that does. - Login to the Azure portal with a login that has sufficient access to view (or create) resources in the Azure Storage Accounts service. Blob containers live under a Storage Account. - Navigate to 'Storage Accounts' then click on the storage account with the blob container you want to link to Docq. @@ -29,7 +29,7 @@ To get the values you will need access to the Azure portal where the Blob contai - **Storage Account URL**: `https://.blob.core.windows.net` replace `` with the value from the 'Storage account name' field in the Azure portal. - **Blob Container Name**: paste the container name here. It's shown in Storage account > Containers in the Azure portal. - **Credential** - there are two types supported values: - - Access Key - This option gives broad access and might not be suitable in some situations. For example if the storage account has other services and/or other containers with sensitive information. + - Access Key - This option gives broad access and might not be suitable in some situations. For example, if the storage account has other services and/or other containers with sensitive information. - from the 'Access keys' section, key1 > Key > click the 'show' button then copy button > paste into Docq Storage account 'Access Keys' screen in the Azure portal: @@ -38,7 +38,7 @@ Storage account 'Access Keys' screen in the Azure portal: ## Data source: Web Scraper - **Data Source**: `WEB_SCRAPER` -- **Website URL**: The root URL with links to pages you want to in the space. Multiple URLs can be provided as a comma separated list. +- **Website URL**: The root URL with links to pages you want to in the space. Multiple URLs can be provided as a comma-separated list. - **Extract Template Name**: type `readthedocs.io` or `default`. - **Include Filter Regex**: only URLs that match this regex will be scrapped. Leave blank to scrape all links. Uses Python RegEx. @@ -47,11 +47,33 @@ Storage account 'Access Keys' screen in the Azure portal: This one is similar to the `WEB_SCRAPER` but tuned to specifically handle knowledge bases type sites. - **Data Source**: `KNOWLEDGE_BASE_SCRAPER` -- **Website URL**: The root URL with links to pages you want to in the space. Multiple URLs can be provided as a comma separated list. +- **Website URL**: The root URL with links to pages you want to in the space. Multiple URLs can be provided as a comma-separated list. - **Extract Template Name**: type `GenericKnowledgeBaseExtractor`. - **Include Filter Regex**: only URLs that match this regex will be scrapped. Leave blank to scrape all links. Uses Python RegEx. - **Title CSS Selector**: a CSS class string that matches the element you want to pull title text from. Defaults to

. The value is added as metadata in the index hence tuning results. -- **Subtitle CSS Selector** a CSS class string that matches the element you want to pull subtitle text from. Defaults to

. The value is added as metadata in the index tuning results. +- **Subtitle CSS Selector**: a CSS class string that matches the element you want to pull subtitle text from. Defaults to

. The value is added as metadata in the index tuning results. + +## Data source: Google Drive + +- **Data Source**: `GOOGLE_DRIVE` +- **Credential**: Use the `Sign in with Google` button to access your Google Drive account. + - Follow the on-screen prompts to sign in with your Google account, granting Docq read access to your Google Drive. + - The obtained credential is exclusive to the current space creation. Subsequent spaces will require a separate sign-in. +- **Select a folder**: Choose a folder from your Google Drive for indexing. + - Click the 'Select a folder' dropdown and pick the desired folder. + - Only root folders are supported for indexing; subfolders are not currently supported. + - Once the space is created, the selected folder cannot be altered. However, you can add more content to this folder and re-index it. + +## Data source: OneDrive + +- **Data Source**: `ONEDRIVE` +- **Credential**: Use the `Sign in with Microsoft` button to sign in with your Microsoft account. + - Follow the provided instructions to grant Docq read access to your OneDrive. + - The obtained credential is specifically for the current space. Future spaces will require a fresh sign-in process. +- **Select a folder**: Choose a folder from your OneDrive for indexing. + - Click the 'Select a folder' dropdown and choose the intended folder. + - Only root folders are supported for indexing; subfolders are not currently supported. + - Once the space is created, the selected folder cannot be altered. However, you can add more content to this folder and re-index it. ## Data source: AWS S3 diff --git a/docs/user-guide/data-sources.md b/docs/user-guide/data-sources.md index b68187f3..fad3c293 100644 --- a/docs/user-guide/data-sources.md +++ b/docs/user-guide/data-sources.md @@ -6,3 +6,5 @@ Docq supports associating data to a Space is a varierty of ways. These are calle - [Azure Blob](./config-spaces.md#data-source-azure-blob-container) - [Web Scraper](./config-spaces.md#data-source-web-scraper) - [Knowledgebase Scraper](./config-spaces.md#data-source-knowledgebase-scraper) +- [Google Drive](./config-spaces.md#data-source-google-drive) +- [OneDrive](./config-spaces.md#data-source-onedrive)