From 1d0c0234110bcc6e209e221142f9b495d0e09b94 Mon Sep 17 00:00:00 2001 From: cyg Date: Mon, 3 Nov 2025 22:43:41 +0800 Subject: [PATCH 1/6] feat: box connector feat: box connector --- config/setup/en-US/connector.tpl | 45 ++ config/setup/zh-CN/connector.tpl | 48 ++ .../docs/references/connectors/box.md | 358 +++++++++++++++ plugins/connectors/box/README.md | 270 +++++++++++ plugins/connectors/box/api.go | 348 ++++++++++++++ plugins/connectors/box/client.go | 423 ++++++++++++++++++ plugins/connectors/box/files.go | 353 +++++++++++++++ plugins/connectors/box/plugin.go | 140 ++++++ plugins/connectors/feishu/api.go | 33 +- .../assets/icons/connector/box/bookmark.png | Bin 0 -> 3332 bytes .../assets/icons/connector/box/boxcanvas.png | Bin 0 -> 4537 bytes .../assets/icons/connector/box/boxnote.png | Bin 0 -> 4104 bytes .../assets/icons/connector/box/docx.png | Bin 0 -> 4236 bytes .../icons/connector/box/excel-spreadsheet.png | Bin 0 -> 4524 bytes .../icons/connector/box/google-docs.png | Bin 0 -> 3259 bytes .../icons/connector/box/google-sheets.png | Bin 0 -> 3870 bytes .../icons/connector/box/google-slides.png | Bin 0 -> 2943 bytes .../assets/icons/connector/box/icon.png | Bin 0 -> 6107 bytes .../assets/icons/connector/box/keynote.png | Bin 0 -> 3467 bytes .../assets/icons/connector/box/numbers.png | Bin 0 -> 3538 bytes .../assets/icons/connector/box/pages.png | Bin 0 -> 3249 bytes web/public/assets/icons/connector/box/pdf.png | Bin 0 -> 3774 bytes .../connector/box/powerpoint-presentation.png | Bin 0 -> 4404 bytes web/src/components/datasource/type/index.jsx | 3 +- web/src/locales/langs/en-us/page.ts | 2 +- web/src/locales/langs/zh-cn/page.ts | 2 +- .../data-source/modules/OauthConnect.tsx | 53 +-- web/src/pages/data-source/new/index.tsx | 10 +- 28 files changed, 2040 insertions(+), 48 deletions(-) create mode 100644 docs/content.en/docs/references/connectors/box.md create mode 100644 plugins/connectors/box/README.md create mode 100644 plugins/connectors/box/api.go create mode 100644 plugins/connectors/box/client.go create mode 100644 plugins/connectors/box/files.go create mode 100644 plugins/connectors/box/plugin.go create mode 100644 web/public/assets/icons/connector/box/bookmark.png create mode 100644 web/public/assets/icons/connector/box/boxcanvas.png create mode 100644 web/public/assets/icons/connector/box/boxnote.png create mode 100644 web/public/assets/icons/connector/box/docx.png create mode 100644 web/public/assets/icons/connector/box/excel-spreadsheet.png create mode 100644 web/public/assets/icons/connector/box/google-docs.png create mode 100644 web/public/assets/icons/connector/box/google-sheets.png create mode 100644 web/public/assets/icons/connector/box/google-slides.png create mode 100644 web/public/assets/icons/connector/box/icon.png create mode 100644 web/public/assets/icons/connector/box/keynote.png create mode 100644 web/public/assets/icons/connector/box/numbers.png create mode 100644 web/public/assets/icons/connector/box/pages.png create mode 100644 web/public/assets/icons/connector/box/pdf.png create mode 100644 web/public/assets/icons/connector/box/powerpoint-presentation.png diff --git a/config/setup/en-US/connector.tpl b/config/setup/en-US/connector.tpl index 033505dcc..66168fc64 100644 --- a/config/setup/en-US/connector.tpl +++ b/config/setup/en-US/connector.tpl @@ -732,4 +732,49 @@ POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/g "processor": { "enabled": false } +} + +POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/box +{ + "_system": { + "owner_id": "$[[SETUP_OWNER_ID]]" + }, + "id" : "box", + "created" : "2025-11-02T00:00:00.000000+08:00", + "updated" : "2025-11-02T00:00:00.000000+08:00", + "name" : "Box Cloud Storage Connector", + "description" : "Index files and folders from Box, supporting both Free and Enterprise accounts with multi-user access.", + "category" : "cloud_storage", + "path_hierarchy" : false, + "icon" : "/assets/icons/connector/box/icon.png", + "tags" : [ + "box", + "cloud_storage", + "file_sharing" + ], + "url" : "http://coco.rs/connectors/box", + "assets" : { + "icons" : { + "default" : "/assets/icons/connector/box/icon.png", + "bookmark" : "/assets/icons/connector/box/bookmark.png", + "boxcanvas" : "/assets/icons/connector/box/boxcanvas.png", + "boxnote" : "/assets/icons/connector/box/boxnote.png", + "docx" : "/assets/icons/connector/box/docx.png", + "excel-spreadsheet" : "/assets/icons/connector/box/excel-spreadsheet.png", + "google-docs" : "/assets/icons/connector/box/google-docs.png", + "google-sheets" : "/assets/icons/connector/box/google-sheets.png", + "google-slides" : "/assets/icons/connector/box/google-slides.png", + "keynote" : "/assets/icons/connector/box/keynote.png", + "numbers" : "/assets/icons/connector/box/numbers.png", + "pages" : "/assets/icons/connector/box/pages.png", + "pdf" : "/assets/icons/connector/box/pdf.png", + "powerpoint-presentation" : "/assets/icons/connector/box/powerpoint-presentation.png" + } + }, + "builtin": true, + "oauth_connect_implemented": true, + "processor": { + "enabled": true, + "name": "box" + } } \ No newline at end of file diff --git a/config/setup/zh-CN/connector.tpl b/config/setup/zh-CN/connector.tpl index 84349efd1..d6fd7908b 100644 --- a/config/setup/zh-CN/connector.tpl +++ b/config/setup/zh-CN/connector.tpl @@ -734,4 +734,52 @@ POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/g "processor": { "enabled": false } +} + +POST $[[SETUP_INDEX_PREFIX]]connector$[[SETUP_SCHEMA_VER]]/$[[SETUP_DOC_TYPE]]/box +{ + "_system": { + "owner_id": "$[[SETUP_OWNER_ID]]" + }, + "id" : "box", + "created" : "2025-11-02T00:00:00.000000+08:00", + "updated" : "2025-11-02T00:00:00.000000+08:00", + "name" : "Box 云存储连接器", + "description" : "索引 Box 中的文件和文件夹,支持免费账号和企业账号的多用户访问。", + "category" : "cloud_storage", + "path_hierarchy" : false, + "icon" : "/assets/icons/connector/box/icon.png", + "tags" : [ + "box", + "cloud_storage", + "file_sharing" + ], + "url" : "http://coco.rs/connectors/box", + "assets" : { + "icons" : { + "default" : "/assets/icons/connector/box/icon.png", + "bookmark" : "/assets/icons/connector/box/bookmark.png", + "boxcanvas" : "/assets/icons/connector/box/boxcanvas.png", + "boxnote" : "/assets/icons/connector/box/boxnote.png", + "docx" : "/assets/icons/connector/box/docx.png", + "excel-spreadsheet" : "/assets/icons/connector/box/excel-spreadsheet.png", + "google-docs" : "/assets/icons/connector/box/google-docs.png", + "google-sheets" : "/assets/icons/connector/box/google-sheets.png", + "google-slides" : "/assets/icons/connector/box/google-slides.png", + "keynote" : "/assets/icons/connector/box/keynote.png", + "numbers" : "/assets/icons/connector/box/numbers.png", + "pages" : "/assets/icons/connector/box/pages.png", + "pdf" : "/assets/icons/connector/box/pdf.png", + "powerpoint-presentation" : "/assets/icons/connector/box/powerpoint-presentation.png" + } + }, + "config": { + "redirect_uri": "$[[SETUP_SERVER_ENDPOINT]]/connector/box/oauth_redirect" + }, + "builtin": true, + "oauth_connect_implemented": true, + "processor": { + "enabled": true, + "name": "box" + } } \ No newline at end of file diff --git a/docs/content.en/docs/references/connectors/box.md b/docs/content.en/docs/references/connectors/box.md new file mode 100644 index 000000000..11ec909a6 --- /dev/null +++ b/docs/content.en/docs/references/connectors/box.md @@ -0,0 +1,358 @@ +--- +title: "Box" +weight: 65 +--- + +# Box Cloud Storage Connector + +## Register Box Connector + +```shell +curl -XPUT "http://localhost:9000/connector/box?replace=true" -d '{ + "name": "Box Cloud Storage Connector", + "description": "Index files and folders from Box, supporting both Free and Enterprise accounts with multi-user access.", + "icon": "/assets/icons/connector/box/icon.png", + "category": "cloud_storage", + "path_hierarchy": true, + "tags": [ + "box", + "cloud_storage", + "file_sharing" + ], + "url": "http://coco.rs/connectors/box", + "assets": { + "icons": { + "default": "/assets/icons/connector/box/icon.png", + "file": "/assets/icons/connector/box/file.png", + "folder": "/assets/icons/connector/box/folder.png", + "document": "/assets/icons/connector/box/document.png", + "spreadsheet": "/assets/icons/connector/box/spreadsheet.png", + "presentation": "/assets/icons/connector/box/presentation.png", + "pdf": "/assets/icons/connector/box/pdf.png" + } + }, + "processor": { + "enabled": true, + "name": "box" + } +}' +``` + +> Use `box` as a unique identifier, as it is a builtin connector. + +## Use the Box Connector + +The Box Connector allows you to index files and folders from Box cloud storage with support for both Free and Enterprise accounts. + +### Features + +- **Dual Account Support**: Works with both Box Free Account and Box Enterprise Account +- **Multi-User Access**: Enterprise accounts can index files from all users +- **Hierarchical Structure**: Maintains original folder structure with path hierarchy +- **Automatic Token Management**: Built-in token caching and auto-refresh +- **Recursive Folder Processing**: Automatically processes all subfolders +- **Enterprise User Categorization**: Files from different users are properly categorized +- **Metadata Extraction**: Extracts comprehensive file and folder metadata +- **Pipeline Integration**: Full pipeline-based architecture for efficient syncing + +### Account Types + +#### Box Free Account + +**Authentication**: OAuth 2.0 Refresh Token Flow +- **Access Scope**: Current authenticated user's files only +- **Token Management**: Automatic refresh token rotation +- **Use Case**: Personal file indexing + +#### Box Enterprise Account + +**Authentication**: OAuth 2.0 Client Credentials Flow +- **Access Scope**: All users' files in the enterprise +- **Multi-User Support**: Automatically fetches files from all enterprise users +- **Use Case**: Organization-wide file indexing + +### Setup Box Application + +Before using this connector, you need to create a Box application and configure OAuth2. + +#### 1. Create a Box Application + +1. **Visit Box Developer Console** + - Go to [Box Developer Console](https://app.box.com/developers/console) + - Sign in with your Box account + +2. **Create New App** + - Click "Create New App" + - Choose "Custom App" + - Select authentication method: + - For **Free Account**: Choose "Standard OAuth 2.0 (User Authentication)" + - For **Enterprise Account**: Choose "OAuth 2.0 with JWT (Server Authentication)" or "Server Authentication (with Client Credentials Grant)" + +3. **Configure Application** + - Enter application name + - Enter application description + - Configure redirect URI (if using OAuth flow for token generation) + +4. **Get Credentials** + - Copy `Client ID` from Configuration page + - Copy `Client Secret` from Configuration page + - For Enterprise: Copy `Enterprise ID` from Admin Console + +#### 2. Required Scopes + +For proper functionality, the Box application needs: + +**For Free Account:** +- Read files and folders +- User information + +**For Enterprise Account:** +- Manage users +- Manage enterprise content +- Read all files and folders + +#### 3. Application Approval + +- For Enterprise accounts, the application must be approved by Box administrator +- Ensure the application is published and authorized + +### Access Connector Settings + +1. Navigate to the **Data Sources** section in your Coco dashboard +2. Create a new data source or edit an existing Box data source +3. Configure the required credentials based on your account type + +> **⚠️ Important**: Before you can use the Box connector, you must configure the following required parameters based on your account type: +> +> **For Box Free Account:** +> - `is_enterprise`: Set to "box_free" +> - `client_id`: OAuth2 client ID from your Box application +> - `client_secret`: OAuth2 client secret from your Box application +> - `refresh_token`: OAuth refresh token (obtained through OAuth flow) +> +> **For Box Enterprise Account:** +> - `is_enterprise`: Set to "box_enterprise" +> - `client_id`: OAuth2 client ID from your Box application +> - `client_secret`: OAuth2 client secret from your Box application +> - `enterprise_id`: Your Box Enterprise ID + +### Datasource Configuration + +#### Box Free Account Example + +```shell +curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '{ + "name": "My Box Files", + "type": "connector", + "enabled": true, + "connector": { + "id": "box", + "config": { + "is_enterprise": "box_free", + "client_id": "your_client_id", + "client_secret": "your_client_secret", + "refresh_token": "your_refresh_token", + "concurrent_downloads": 15 + } + }, + "sync": { + "enabled": true, + "interval": "30s" + } +}' +``` + +#### Box Enterprise Account Example + +```shell +curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '{ + "name": "Company Box Files", + "type": "connector", + "enabled": true, + "connector": { + "id": "box", + "config": { + "is_enterprise": "box_enterprise", + "client_id": "your_client_id", + "client_secret": "your_client_secret", + "enterprise_id": "12345", + "concurrent_downloads": 15 + } + }, + "sync": { + "enabled": true, + "interval": "5m" + } +}' +``` + +### Datasource Config Parameters + +| **Field** | **Type** | **Description** | **Required** | **Account Type** | +|-------------------------|-----------|-----------------------------------------------------------------------------------|--------------|------------------| +| `is_enterprise` | `string` | Account type: "box_free" or "box_enterprise" | Yes | Both | +| `client_id` | `string` | Box application Client ID | Yes | Both | +| `client_secret` | `string` | Box application Client Secret | Yes | Both | +| `refresh_token` | `string` | OAuth refresh token (for Free account) | Yes | Free only | +| `enterprise_id` | `string` | Box Enterprise ID (for Enterprise account) | Yes | Enterprise only | +| `concurrent_downloads` | `int` | Maximum concurrent downloads (default: 15) | No | Both | +| `sync.enabled` | `boolean` | Enable/disable syncing for this datasource | No | Both | +| `sync.interval` | `string` | Sync interval (e.g., "30s", "5m", "1h") | No | Both | + +## File Hierarchy + +### Box Free Account + +Files are organized directly from root: + +``` +/ +├── Documents/ +│ ├── report.pdf +│ └── 2024/ +│ └── annual-report.pdf +├── Photos/ +│ └── image.jpg +└── Shared/ + └── presentation.pptx +``` + +### Box Enterprise Account + +Files are organized by user name to separate content from different users: + +``` +/ +├── John Doe/ +│ ├── Documents/ +│ │ └── report.pdf +│ └── Photos/ +│ └── image.jpg +├── Jane Smith/ +│ ├── Documents/ +│ │ └── report.pdf +│ └── Reports/ +│ └── sales.xlsx +└── Bob Johnson/ + └── Presentations/ + └── deck.pptx +``` + +**Key Points:** +- Each user's files are under their name category +- Document IDs include user ID to avoid conflicts +- Metadata includes `user_id` field for filtering + +## Advanced Features + +### Automatic Token Management + +The connector implements intelligent token management: + +- **Token Caching**: In-memory cache with thread-safe operations +- **Expiry Buffer**: Refreshes tokens 5 minutes before expiry +- **Automatic Refresh**: Transparent token refresh on expiration +- **401 Retry**: Automatic re-authentication on unauthorized errors +- **Refresh Token Rotation**: Supports refresh token rotation (Free account) + +### Multi-User Support (Enterprise) + +For Enterprise accounts, the connector: + +1. **Fetches All Users**: Automatically retrieves all users in the enterprise +2. **Per-User Processing**: Processes files for each user independently +3. **As-User Header**: Uses `as-user` header to access files as specific users +4. **User Categorization**: Organizes files under user names in hierarchy +5. **Unique Document IDs**: Generates unique IDs including user ID to avoid conflicts + +### Metadata Extraction + +The connector extracts comprehensive metadata: + +**File Metadata:** +- File ID, Name, Type, Size +- Creation and modification timestamps +- Description and status +- Creator, modifier, and owner information +- Parent folder information +- ETag and sequence ID +- URLs (direct, download, thumbnail) +- Shared link information + +**Folder Metadata:** +- Folder ID, Name, Type +- Creation and modification timestamps +- Size and hierarchy information +- Platform identifier + +## Troubleshooting + +### Common Issues + +1. **Authentication Failed** + - **Free Account**: Verify `client_id`, `client_secret`, and `refresh_token` are correct + - **Enterprise Account**: Verify `client_id`, `client_secret`, and `enterprise_id` are correct + - Check if Box application is approved and published + - Ensure application has required scopes + +2. **Token Expired** + - System automatically refreshes tokens + - **Free Account**: Check if refresh_token is still valid + - **Enterprise Account**: Verify application credentials haven't changed + - Review token expiry settings + +3. **No Files Found** + - Check user permissions in Box + - Verify application has file access permissions + - **Enterprise**: Ensure users have files in their accounts + - Check folder access permissions + +4. **Multi-User Issues (Enterprise)** + - Verify application has "Manage Users" permission + - Check if users are active in the enterprise + - Ensure `as-user` header is supported by your application type + +5. **Sync Failures** + - Check network connectivity to `https://api.box.com` + - Verify API rate limits aren't exceeded + - Review system logs for detailed error messages + - Check datasource sync interval settings + +### Debug Logging + +The connector provides detailed logging: +- `[box connector]`: Main connector operations +- `[box client]`: API client operations +- Authentication process and token refresh +- User enumeration (Enterprise) +- File and folder processing +- API requests and errors + +Use logs to quickly identify and resolve issues. + +## Notes + +1. **Account Type Selection**: Must specify either "box_free" or "box_enterprise" +2. **Different Credentials**: Free and Enterprise accounts require different configuration +3. **Refresh Token Requirement**: Free accounts must have a valid refresh_token +4. **Enterprise ID Requirement**: Enterprise accounts must have a valid enterprise_id +5. **Multi-User Automatic**: Enterprise accounts automatically fetch files from all users +6. **Token Auto-Refresh**: All tokens are automatically managed and refreshed +7. **Content Extraction**: File content extraction is handled by coco-server framework +8. **API Rate Limits**: Be aware of Box API rate limits (typically 1000 requests/minute) +9. **File Size Limits**: Large files may be excluded based on framework configuration +10. **Hierarchical Path**: Connector preserves original folder structure with `/` as root + +## API Endpoints Used + +The connector uses the following Box API endpoints: + +| Endpoint | Purpose | Account Type | +|----------|---------|--------------| +| `/oauth2/token` | Authentication and token refresh | Both | +| `/2.0/users/me` | Ping test and user info | Both | +| `/2.0/users` | Fetch enterprise users | Enterprise only | +| `/2.0/folders/{id}/items` | List folder contents | Both | + +All API calls include automatic retry on 401 errors and support for the `as-user` header in Enterprise accounts. + diff --git a/plugins/connectors/box/README.md b/plugins/connectors/box/README.md new file mode 100644 index 000000000..c4e03de4a --- /dev/null +++ b/plugins/connectors/box/README.md @@ -0,0 +1,270 @@ +# Box Cloud Storage Connector + +Box cloud storage connector is used to index files and folders from Box, supporting both Free and Enterprise accounts. + +## Features + +- 🔍 **Smart Search**: Search files and folders by keywords +- 📁 **Hierarchical Structure**: Maintains original folder structure with path hierarchy +- 🔐 **Dual Account Support**: Supports both Box Free Account and Box Enterprise Account +- 👥 **Multi-User Support**: Enterprise accounts can index files from all users +- ⚡ **Efficient Sync**: Pipeline-based architecture with unified scheduler +- 🔄 **Recursive Folder Processing**: Automatically processes all subfolders +- 🔄 **Automatic Token Refresh**: Built-in token caching and auto-refresh mechanism +- 🏗️ **Unified Architecture**: Follows coco-server connector standards + +## Account Types + +### Box Free Account +- **Authentication**: OAuth 2.0 with refresh token +- **Access Scope**: Current authenticated user's files only +- **Required Credentials**: + - `client_id` + - `client_secret` + - `refresh_token` (obtained via OAuth flow) + +### Box Enterprise Account +- **Authentication**: OAuth 2.0 client credentials +- **Access Scope**: All users' files in the enterprise +- **Required Credentials**: + - `client_id` + - `client_secret` + - `enterprise_id` + +## Configuration + +### Required Parameters + +| Parameter | Type | Description | Account Type | +|-----------|------|-------------|--------------| +| `is_enterprise` | string | Account type: "box_free" or "box_enterprise" | Both | +| `client_id` | string | Box application Client ID | Both | +| `client_secret` | string | Box application Client Secret | Both | +| `refresh_token` | string | OAuth refresh token | Free Account only | +| `enterprise_id` | string | Box Enterprise ID | Enterprise Account only | + +### Optional Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `concurrent_downloads` | int | 15 | Maximum concurrent downloads | + +### Sync Configuration + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `sync.enabled` | bool | true | Enable synchronization | +| `sync.interval` | string | "30s" | Sync interval per datasource | + +**Note**: Sync interval is configured at datasource level, not connector level. Each datasource can have different sync intervals. + +## Box Application Setup + +### Creating a Box Application + +1. **Visit Box Developer Console** + - Go to [Box Developer Console](https://app.box.com/developers/console) + - Sign in with your Box account + +2. **Create New App** + - Click "Create New App" + - Choose "Custom App" + - Select "OAuth 2.0 with JWT (Server Authentication)" for Enterprise or "Standard OAuth 2.0 (User Authentication)" for Free account + - Enter app name and description + +3. **Configure OAuth** + - For Free Account: Enable "Authorization Code Grant" and "Refresh Token" + - For Enterprise Account: Enable "Client Credentials Grant" + - Add redirect URI (if using OAuth flow) + +4. **Get Credentials** + - Copy `Client ID` from app configuration + - Copy `Client Secret` from app configuration + - For Enterprise: Copy `Enterprise ID` from account settings + +### Required Scopes + +For proper functionality, the Box application needs: + +- **Read files and folders**: Access to read file metadata and folder structure +- **User information**: Read user profile information (for Free account) +- **Enterprise content**: Access enterprise content (for Enterprise account) + +## Usage + +### Method 1: Box Free Account + +#### Step 1: Obtain Refresh Token +You need to obtain a refresh token through OAuth flow first (this can be done outside the system or through a separate OAuth setup). + +#### Step 2: Configure Datasource +```json +{ + "id": "my-box-free", + "name": "My Box Files", + "type": "connector", + "enabled": true, + "sync": { + "enabled": true, + "interval": "30s" + }, + "connector": { + "id": "box", + "config": { + "is_enterprise": "box_free", + "client_id": "your_client_id", + "client_secret": "your_client_secret", + "refresh_token": "your_refresh_token" + } + } +} +``` + +### Method 2: Box Enterprise Account + +#### Step 1: Get Enterprise Credentials +1. Obtain Client ID and Client Secret from Box Developer Console +2. Get Enterprise ID from Box Admin Console + +#### Step 2: Configure Datasource +```json +{ + "id": "my-box-enterprise", + "name": "Company Box Files", + "type": "connector", + "enabled": true, + "sync": { + "enabled": true, + "interval": "30s" + }, + "connector": { + "id": "box", + "config": { + "is_enterprise": "box_enterprise", + "client_id": "your_client_id", + "client_secret": "your_client_secret", + "enterprise_id": "12345" + } + } +} +``` + +## Architecture + +### Pipeline Architecture + +Box connector adopts **pipeline-based architecture**, consistent with other connectors: + +- **Processor Registration**: Registered as pipeline processor in `init()` function +- **Scheduler Management**: Sync interval managed by connector_dispatcher +- **Per-Datasource Configuration**: Each datasource has independent sync interval and config +- **No Independent Scheduler**: Completely uses pipeline framework for data fetching + +### Core Implementation + +```go +func init() { + // Register pipeline processor + pipeline.RegisterProcessorPlugin(NAME, New) +} + +func (processor *Processor) Fetch(ctx *pipeline.Context, connector *common.Connector, datasource *common.DataSource) error { + // Validate configuration + // Create Box client + // Authenticate with Box + // Process files recursively + return nil +} +``` + +### File Hierarchy + +Box connector preserves the original folder structure: + +- **Root Path**: `/` +- **Enterprise Account**: Each user's files are organized under user name + - `/John Doe/Documents/file.pdf` + - `/Jane Smith/Reports/report.xlsx` +- **Free Account**: Files organized directly from root + - `/Documents/file.pdf` + - `/Photos/image.jpg` + +## Technical Details + +### Authentication Flow + +#### Free Account +``` +1. Use refresh_token to get access_token +2. Cache access_token with expiry time +3. Auto-refresh when token expires +4. Update refresh_token if rotated +``` + +#### Enterprise Account +``` +1. Use client_credentials grant +2. Request with enterprise_id and box_subject_type +3. Cache access_token with expiry time +4. Auto-refresh when token expires +``` + +### Multi-User Support (Enterprise) + +For Enterprise accounts: +1. Fetch all users from `/2.0/users` endpoint +2. For each user, fetch files with `as-user` header +3. Organize files under user's name in hierarchy +4. Generate unique document IDs including user ID + +### Token Management + +- **Token Caching**: In-memory cache with thread-safe operations +- **Automatic Refresh**: Tokens refresh 5 minutes before expiry +- **401 Retry**: Automatic re-authentication on 401 errors +- **Refresh Token Rotation**: Supports refresh token rotation (Free account) + +## Troubleshooting + +### Common Issues + +1. **Authentication Failed** + - Verify `client_id` and `client_secret` are correct + - Check if Box application is approved and published + - For Free account: Verify `refresh_token` is valid + - For Enterprise account: Verify `enterprise_id` is correct + +2. **Token Expired** + - System automatically refreshes tokens + - Check if refresh_token is still valid (Free account) + - Verify application credentials haven't changed + +3. **No Files Found** + - Check user permissions in Box + - Verify application has required scopes + - For Enterprise: Ensure users have files in their accounts + +4. **Sync Failures** + - Check network connectivity to `https://api.box.com` + - Verify rate limits aren't exceeded + - Review system logs for detailed error messages + +### Debug Logging + +The connector provides detailed logging: +- Authentication process +- Token refresh operations +- API requests and responses +- User enumeration (Enterprise) +- File processing progress + +Use logs to quickly identify and resolve issues. + +## Notes + +1. **Account Type Selection**: Must choose either "box_free" or "box_enterprise" +2. **Credentials Required**: Different account types require different credentials +3. **Enterprise Multi-User**: Enterprise accounts automatically fetch files from all users +4. **Token Management**: Tokens are automatically managed, no manual refresh needed +5. **API Rate Limits**: Be aware of Box API rate limits +6. **Content Extraction**: File content extraction is handled by coco-server framework diff --git a/plugins/connectors/box/api.go b/plugins/connectors/box/api.go new file mode 100644 index 000000000..f769de24d --- /dev/null +++ b/plugins/connectors/box/api.go @@ -0,0 +1,348 @@ +/* Copyright © INFINI LTD. All rights reserved. + * Web: https://infinilabs.com + * Email: hello#infini.ltd */ + +package box + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + "sync" + "time" + + "infini.sh/coco/core" + httprouter "infini.sh/framework/core/api/router" + "infini.sh/framework/core/orm" + "infini.sh/framework/core/util" + + log "github.com/cihub/seelog" +) + +// Global client cache to store authenticated Box clients +var ( + clientCache sync.Map // key: datasource ID, value: *BoxClient +) + +// GetCachedClient retrieves a cached Box client for a datasource +func GetCachedClient(datasourceID string) (*BoxClient, bool) { + if client, ok := clientCache.Load(datasourceID); ok { + if boxClient, ok := client.(*BoxClient); ok { + return boxClient, true + } + } + return nil, false +} + +// CacheClient stores a Box client for a datasource +func CacheClient(datasourceID string, client *BoxClient) { + clientCache.Store(datasourceID, client) + log.Debugf("[box connector] Cached client for datasource: %s", datasourceID) +} + +// RemoveCachedClient removes a cached Box client for a datasource +func RemoveCachedClient(datasourceID string) { + clientCache.Delete(datasourceID) + log.Debugf("[box connector] Removed cached client for datasource: %s", datasourceID) +} + +// OAuthConfig represents Box OAuth configuration +type OAuthConfig struct { + ClientID string + ClientSecret string + RedirectURL string +} + +// getOAuthConfigFromConnector retrieves OAuth configuration from connector +func getOAuthConfigFromConnector(connectorID string) (*OAuthConfig, error) { + if connectorID == "" { + return nil, fmt.Errorf("connector id is empty") + } + + oauthConfig := &OAuthConfig{ + RedirectURL: fmt.Sprintf("/connector/%s/box/oauth_redirect", connectorID), + } + + // Try to load connector to get OAuth credentials + connector := core.Connector{} + connector.ID = connectorID + exists, err := orm.Get(&connector) + if err == nil && exists && connector.Config != nil { + if clientID, ok := connector.Config["client_id"].(string); ok { + oauthConfig.ClientID = clientID + } + if clientSecret, ok := connector.Config["client_secret"].(string); ok { + oauthConfig.ClientSecret = clientSecret + } + } + + return oauthConfig, nil +} + +// resolveRedirectURL builds full redirect URL from current request +func resolveRedirectURL(oauthConfig *OAuthConfig, req *http.Request) string { + // Build full redirect_url from current request + redirectURL := oauthConfig.RedirectURL + if !strings.HasPrefix(redirectURL, "http://") && !strings.HasPrefix(redirectURL, "https://") { + // Extract scheme and host from current request + scheme := "http" + if req.TLS != nil || req.Header.Get("X-Forwarded-Proto") == "https" { + scheme = "https" + } + + host := req.Host + if host == "" { + host = "localhost:9000" // fallback + } + + redirectURL = fmt.Sprintf("%s://%s%s", scheme, host, redirectURL) + oauthConfig.RedirectURL = redirectURL + } + return redirectURL +} + +// connect initiates the OAuth flow by redirecting to Box authorization page +func connect(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { + connectorID := ps.MustGetParameter("id") + + oauthConfig, err := getOAuthConfigFromConnector(connectorID) + if err != nil { + http.Error(w, fmt.Sprintf("OAuth config error: %v", err), http.StatusBadRequest) + return + } + + // Check if OAuth is properly configured in connector + if oauthConfig.ClientID == "" || oauthConfig.ClientSecret == "" { + http.Error(w, "OAuth not configured in connector. "+ + "Please configure client_id and client_secret in the connector settings.", http.StatusServiceUnavailable) + return + } + + // Resolve full redirect URL from current request + redirectURL := resolveRedirectURL(oauthConfig, req) + + // Build Box OAuth authorization URL + authURL := "https://account.box.com/api/oauth2/authorize" + params := url.Values{} + params.Set("client_id", oauthConfig.ClientID) + params.Set("response_type", "code") + params.Set("redirect_uri", redirectURL) + + fullAuthURL := fmt.Sprintf("%s?%s", authURL, params.Encode()) + + log.Infof("[box connector] Redirecting to Box OAuth: %s", fullAuthURL) + http.Redirect(w, req, fullAuthURL, http.StatusFound) +} + +// oAuthRedirect handles the OAuth callback from Box +func oAuthRedirect(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { + connectorID := ps.MustGetParameter("id") + + oauthConfig, err := getOAuthConfigFromConnector(connectorID) + if err != nil { + http.Error(w, fmt.Sprintf("Failed to get OAuth config: %v", err), http.StatusInternalServerError) + return + } + + // Check if OAuth is properly configured in connector + if oauthConfig == nil || oauthConfig.ClientID == "" || oauthConfig.ClientSecret == "" { + http.Error(w, "OAuth not configured in connector. Please configure client_id and "+ + "client_secret in the connector settings.", http.StatusServiceUnavailable) + return + } + + // Resolve full redirect URL + oauthConfig.RedirectURL = resolveRedirectURL(oauthConfig, req) + + // Extract authorization code from query parameters + code := ps.ByName("code") + if code == "" { + // Try query parameter + code = req.URL.Query().Get("code") + } + if code == "" { + http.Error(w, "Missing authorization code.", http.StatusBadRequest) + return + } + + log.Debugf("[box connector] Received authorization code") + + // Exchange authorization code for tokens + // Box API requires application/x-www-form-urlencoded format + tokenURL := "https://api.box.com/oauth2/token" + data := url.Values{} + data.Set("grant_type", "authorization_code") + data.Set("code", code) + data.Set("client_id", oauthConfig.ClientID) + data.Set("client_secret", oauthConfig.ClientSecret) + data.Set("redirect_uri", oauthConfig.RedirectURL) + + resp, err := http.PostForm(tokenURL, data) + if err != nil { + _ = log.Errorf("[box connector] Failed to exchange code for token: %v", err) + http.Error(w, "Failed to exchange authorization code for token.", http.StatusInternalServerError) + return + } + defer resp.Body.Close() + + body, _ := io.ReadAll(resp.Body) + if resp.StatusCode != http.StatusOK { + _ = log.Errorf("[box connector] Box token API error: status %d, body: %s", resp.StatusCode, string(body)) + http.Error(w, "Failed to exchange authorization code for token.", http.StatusInternalServerError) + return + } + + var tokenResp TokenResponse + if err := json.Unmarshal(body, &tokenResp); err != nil { + _ = log.Errorf("[box connector] Failed to decode token response: %v", err) + http.Error(w, "Failed to exchange authorization code for token.", http.StatusInternalServerError) + return + } + if tokenResp.AccessToken == "" || tokenResp.RefreshToken == "" { + _ = log.Error("[box connector] Received empty tokens from Box") + http.Error(w, "Received invalid tokens from Box", http.StatusInternalServerError) + return + } + + // Get user profile information + userProfile, err := getUserProfile(tokenResp.AccessToken) + if err != nil { + _ = log.Errorf("[box connector] Failed to get user profile: %v", err) + http.Error(w, "Failed to get user profile information.", http.StatusInternalServerError) + return + } + + log.Infof("[box connector] Successfully authenticated user: %v", userProfile) + + // Create datasource with OAuth tokens + datasource := core.DataSource{ + SyncConfig: core.SyncConfig{Enabled: true, Interval: "30s"}, + Enabled: true, + } + + // Generate unique datasource ID based on connector type and user info + userID := "" + if userProfile != nil && userProfile.ID != "" { + userID = userProfile.ID + } else if userProfile != nil && userProfile.Login != "" { + userID = userProfile.Login + } else { + userID = "unknown" + } + + datasource.ID = util.MD5digest(fmt.Sprintf("%v,%v", "box", userID)) + datasource.Type = "connector" + + // Set datasource name + if userProfile != nil && userProfile.Name != "" { + datasource.Name = fmt.Sprintf("%s's box", userProfile.Name) + } else { + datasource.Name = "My box" + } + + // Convert BoxUserProfile to map for storage + profile := util.MapStr{} + if userProfile != nil { + profile["id"] = userProfile.ID + profile["type"] = userProfile.Type + profile["name"] = userProfile.Name + profile["login"] = userProfile.Login + } + + // Create datasource config with OAuth tokens + datasource.Connector = core.ConnectorConfig{ + ConnectorID: connectorID, + Config: util.MapStr{ + "is_enterprise": AccountTypeFree, + "client_id": oauthConfig.ClientID, + "client_secret": oauthConfig.ClientSecret, + "access_token": tokenResp.AccessToken, + "refresh_token": tokenResp.RefreshToken, + "token_expiry": time.Now().Add(time.Duration(tokenResp.ExpiresIn) * time.Second).Format(time.RFC3339), + "profile": profile, + }, + } + + // Check if refresh token is missing or empty + if tokenResp.RefreshToken == "" { + log.Warnf("refresh token was not granted for: %v", datasource.Name) + } + + // Verify the connection by creating and testing the client + log.Infof("[box connector] Verifying connection with obtained tokens...") + clientConfig := &Config{ + IsEnterprise: AccountTypeFree, + ClientID: oauthConfig.ClientID, + ClientSecret: oauthConfig.ClientSecret, + RefreshToken: tokenResp.RefreshToken, + } + + // Create client with the OAuth tokens we just obtained + client := NewBoxClientWithTokens(clientConfig, tokenResp.AccessToken, tokenResp.RefreshToken, tokenResp.ExpiresIn) + + // Test the connection + if err := client.Ping(); err != nil { + _ = log.Errorf("[box connector] Failed to verify connection: %v", err) + http.Error(w, fmt.Sprintf("Failed to verify connection: %v", err), http.StatusInternalServerError) + return + } + log.Infof("[box connector] Connection verified successfully") + + // Save datasource + ctx := orm.NewContextWithParent(req.Context()) + err = orm.Save(ctx, &datasource) + if err != nil { + _ = log.Errorf("[box connector] Failed to save datasource: %v", err) + http.Error(w, "Failed to save datasource.", http.StatusInternalServerError) + return + } + + log.Infof("[box connector] Successfully created datasource: %s", datasource.ID) + + // Cache the authenticated client for future use + CacheClient(datasource.ID, client) + + // Redirect to datasource detail page + newRedirectURL := fmt.Sprintf("/#/data-source/detail/%v", datasource.ID) + http.Redirect(w, req, newRedirectURL, http.StatusTemporaryRedirect) +} + +// BoxUserProfile represents Box user profile information +type BoxUserProfile struct { + ID string `json:"id"` + Type string `json:"type"` + Name string `json:"name"` + Login string `json:"login"` +} + +// getUserProfile retrieves the current user's profile from Box +func getUserProfile(accessToken string) (*BoxUserProfile, error) { + req, err := http.NewRequest("GET", "https://api.box.com/2.0/users/me", nil) + if err != nil { + return nil, fmt.Errorf("failed to create request: %w", err) + } + + req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", accessToken)) + + client := &http.Client{Timeout: 10 * time.Second} + resp, err := client.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to execute request: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, _ := io.ReadAll(resp.Body) + return nil, fmt.Errorf("get user profile failed with status %d: %s", resp.StatusCode, string(body)) + } + + var profile BoxUserProfile + if err := json.NewDecoder(resp.Body).Decode(&profile); err != nil { + return nil, fmt.Errorf("failed to decode profile response: %w", err) + } + + return &profile, nil +} diff --git a/plugins/connectors/box/client.go b/plugins/connectors/box/client.go new file mode 100644 index 000000000..69036d758 --- /dev/null +++ b/plugins/connectors/box/client.go @@ -0,0 +1,423 @@ +/* Copyright © INFINI LTD. All rights reserved. + * Web: https://infinilabs.com + * Email: hello#infini.ltd */ + +package box + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + "sync" + "time" + + log "github.com/cihub/seelog" +) + +const ( + BaseURL = "https://api.box.com" + TokenEndpoint = "/oauth2/token" + PingEndpoint = "/2.0/users/me" + FolderEndpoint = "/2.0/folders/%s/items" + UsersEndpoint = "/2.0/users" + DefaultTimeout = 30 * time.Second + TokenExpiryBuffer = 5 * time.Minute + DefaultPageSize = 100 +) + +const ( + AccountTypeFree = "box_free" + AccountTypeEnterprise = "box_enterprise" +) + +const ( + FileTypeFile = "file" + FileTypeFolder = "folder" +) + +// BoxFile represents a file or folder item from Box API +type BoxFile struct { + ID string `json:"id"` + Type string `json:"type"` + Name string `json:"name"` + ItemSize int64 `json:"item_size"` + Description string `json:"description"` + Date time.Time `json:"date"` + URL string `json:"url"` + LastUpdatedByName string `json:"last_updated_by_name"` + Extension string `json:"extension"` + ParentFolderID string `json:"parentFolderID"` + ParentFolderName string `json:"parentFolderName"` +} + +// FolderItemsResponse represents the response from Box folder items API +type FolderItemsResponse struct { + TotalCount int `json:"total_count"` + Offset int `json:"offset"` + Limit int `json:"limit"` + Entries []*BoxFile `json:"entries"` +} + +// TokenCache manages access token caching with expiration +type TokenCache struct { + mu sync.RWMutex + accessToken string + refreshToken string + expiry time.Time +} + +func (tc *TokenCache) Get() (string, bool) { + tc.mu.RLock() + defer tc.mu.RUnlock() + + if tc.accessToken == "" || time.Now().After(tc.expiry.Add(-TokenExpiryBuffer)) { + return "", false + } + return tc.accessToken, true +} + +func (tc *TokenCache) Set(accessToken, refreshToken string, expiresIn int64) { + tc.mu.Lock() + defer tc.mu.Unlock() + + tc.accessToken = accessToken + if refreshToken != "" { + tc.refreshToken = refreshToken + } + tc.expiry = time.Now().Add(time.Duration(expiresIn) * time.Second) +} + +func (tc *TokenCache) GetRefreshToken() string { + tc.mu.RLock() + defer tc.mu.RUnlock() + return tc.refreshToken +} + +func (tc *TokenCache) SetRefreshToken(refreshToken string) { + tc.mu.Lock() + defer tc.mu.Unlock() + tc.refreshToken = refreshToken +} + +// BoxClient handles communication with the Box API +type BoxClient struct { + config *Config + httpClient *http.Client + tokenCache *TokenCache + baseURL string +} + +// NewBoxClient creates a new Box client +func NewBoxClient(config *Config) *BoxClient { + // Initialize token cache with refresh token for Free accounts + tokenCache := &TokenCache{} + if config.IsEnterprise == AccountTypeFree && config.RefreshToken != "" { + tokenCache.SetRefreshToken(config.RefreshToken) + } + + return &BoxClient{ + config: config, + httpClient: &http.Client{ + Timeout: DefaultTimeout, + }, + tokenCache: tokenCache, + baseURL: BaseURL, + } +} + +// NewBoxClientWithTokens creates a new Box client with pre-obtained OAuth tokens +// This is useful when creating a client right after OAuth authentication +func NewBoxClientWithTokens(config *Config, accessToken, refreshToken string, expiresIn int64) *BoxClient { + tokenCache := &TokenCache{} + + // Set both access token and refresh token + tokenCache.Set(accessToken, refreshToken, expiresIn) + + return &BoxClient{ + config: config, + httpClient: &http.Client{ + Timeout: DefaultTimeout, + }, + tokenCache: tokenCache, + baseURL: BaseURL, + } +} + +// TokenResponse represents the Box OAuth token response +type TokenResponse struct { + AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token,omitempty"` + ExpiresIn int64 `json:"expires_in"` + TokenType string `json:"token_type"` +} + +// Authenticate authenticates with Box and retrieves an access token +func (c *BoxClient) Authenticate() error { + log.Debugf("[box client] Generating an access token for account type: %s", c.config.IsEnterprise) + + var data url.Values + + if c.config.IsEnterprise == AccountTypeFree { + // Box Free Account: use refresh_token grant + refreshToken := c.tokenCache.GetRefreshToken() + if refreshToken == "" { + return fmt.Errorf("refresh_token is required for Box Free Account") + } + + data = url.Values{} + data.Set("grant_type", "refresh_token") + data.Set("refresh_token", refreshToken) + data.Set("client_id", c.config.ClientID) + data.Set("client_secret", c.config.ClientSecret) + } else { + // Box Enterprise Account: use client_credentials grant + if c.config.EnterpriseID == "" { + return fmt.Errorf("enterprise_id is required for Box Enterprise Account") + } + + data = url.Values{} + data.Set("grant_type", "client_credentials") + data.Set("client_id", c.config.ClientID) + data.Set("client_secret", c.config.ClientSecret) + data.Set("box_subject_type", "enterprise") + data.Set("box_subject_id", c.config.EnterpriseID) + } + + tokenURL := c.baseURL + TokenEndpoint + req, err := http.NewRequest("POST", tokenURL, strings.NewReader(data.Encode())) + if err != nil { + return fmt.Errorf("failed to create token request: %w", err) + } + + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + + resp, err := c.httpClient.Do(req) + if err != nil { + return fmt.Errorf("failed to execute token request: %w", err) + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return fmt.Errorf("failed to read token response: %w", err) + } + + if resp.StatusCode != http.StatusOK { + return fmt.Errorf("token request failed with status %d: %s", resp.StatusCode, string(body)) + } + + var tokenResp TokenResponse + if err := json.Unmarshal(body, &tokenResp); err != nil { + return fmt.Errorf("failed to decode token response: %w", err) + } + + // Cache the token + c.tokenCache.Set(tokenResp.AccessToken, tokenResp.RefreshToken, tokenResp.ExpiresIn) + + // Log token info + if c.config.IsEnterprise == AccountTypeFree { + if tokenResp.RefreshToken != "" { + log.Debugf("[box client] Successfully authenticated (Free Account), token expires in %d seconds, refresh_token updated", tokenResp.ExpiresIn) + } else { + log.Debugf("[box client] Successfully authenticated (Free Account), token expires in %d seconds", tokenResp.ExpiresIn) + } + } else { + log.Debugf("[box client] Successfully authenticated (Enterprise Account), token expires in %d seconds", tokenResp.ExpiresIn) + } + + return nil +} + +// GetAccessToken returns a valid access token, refreshing if necessary +func (c *BoxClient) GetAccessToken() (string, error) { + // Try to get cached token + if token, valid := c.tokenCache.Get(); valid { + return token, nil + } + + // Token expired or not found, authenticate + log.Debug("[box client] No valid token cache found; fetching new token") + if err := c.Authenticate(); err != nil { + return "", err + } + + // Get the newly cached token + token, _ := c.tokenCache.Get() + return token, nil +} + +// Ping tests the connection to Box +func (c *BoxClient) Ping() error { + resp, err := c.Get(PingEndpoint, nil) + if err != nil { + return fmt.Errorf("failed to execute ping request: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, _ := io.ReadAll(resp.Body) + return fmt.Errorf("ping failed with status %d: %s", resp.StatusCode, string(body)) + } + + log.Debug("[box client] Successfully pinged Box API") + return nil +} + +// Get makes an authenticated GET request to the Box API +func (c *BoxClient) Get(endpoint string, params url.Values) (*http.Response, error) { + return c.GetWithHeaders(endpoint, params, nil) +} + +// GetWithHeaders makes an authenticated GET request to the Box API with custom headers +// Additional headers can be provided (e.g., "as-user" for enterprise accounts) +func (c *BoxClient) GetWithHeaders(endpoint string, params url.Values, headers map[string]string) (*http.Response, error) { + accessToken, err := c.GetAccessToken() + if err != nil { + return nil, err + } + + requestURL := c.baseURL + endpoint + if params != nil && len(params) > 0 { + requestURL = requestURL + "?" + params.Encode() + } + + req, err := http.NewRequest("GET", requestURL, nil) + if err != nil { + return nil, fmt.Errorf("failed to create request: %w", err) + } + + req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", accessToken)) + req.Header.Set("Accept", "application/json") + + // Set additional headers + for key, value := range headers { + req.Header.Set(key, value) + } + + resp, err := c.httpClient.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to execute request: %w", err) + } + + // Handle 401 Unauthorized - token might be expired + if resp.StatusCode == http.StatusUnauthorized { + resp.Body.Close() + + // Force re-authentication + c.tokenCache.accessToken = "" + log.Warn("[box client] Received 401, re-authenticating...") + + if err := c.Authenticate(); err != nil { + return nil, fmt.Errorf("re-authentication failed: %w", err) + } + + // Retry the request with new token + accessToken, _ = c.tokenCache.Get() + req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", accessToken)) + + resp, err = c.httpClient.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to retry request: %w", err) + } + } + + return resp, nil +} + +// GetFolderItems retrieves items in a folder with pagination +// For enterprise accounts, userID should be provided to fetch items as that user +func (c *BoxClient) GetFolderItems(folderID string, offset, limit int, userID string) (*FolderItemsResponse, error) { + endpoint := fmt.Sprintf(FolderEndpoint, folderID) + + params := url.Values{} + params.Set("offset", fmt.Sprintf("%d", offset)) + params.Set("limit", fmt.Sprintf("%d", limit)) + params.Set("fields", "id,type,name,item_size,description,date,url,last_updated_by_name,parent,extension,parent_folder_id,parent_folder_name") + + // Prepare headers for enterprise accounts + var headers map[string]string + if userID != "" { + headers = map[string]string{"as-user": userID} + } + + resp, err := c.GetWithHeaders(endpoint, params, headers) + if err != nil { + return nil, fmt.Errorf("failed to get folder items: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, _ := io.ReadAll(resp.Body) + return nil, fmt.Errorf("get folder items failed with status %d: %s", resp.StatusCode, string(body)) + } + + var itemsResp FolderItemsResponse + if err := json.NewDecoder(resp.Body).Decode(&itemsResp); err != nil { + return nil, fmt.Errorf("failed to decode folder items response: %w", err) + } + + return &itemsResp, nil +} + +// BoxUser represents a user from Box API +type BoxUser struct { + ID string `json:"id"` + Type string `json:"type"` + Name string `json:"name"` + Login string `json:"login"` +} + +// UsersResponse represents the response from Box users API +type UsersResponse struct { + TotalCount int `json:"total_count"` + Offset int `json:"offset"` + Limit int `json:"limit"` + Entries []BoxUser `json:"entries"` +} + +// GetUsers retrieves all users in the enterprise (Enterprise account only) +func (c *BoxClient) GetUsers() ([]BoxUser, error) { + if c.config.IsEnterprise != AccountTypeEnterprise { + return nil, fmt.Errorf("GetUsers is only available for Enterprise accounts") + } + + var allUsers []BoxUser + offset := 0 + limit := DefaultPageSize + + for { + params := url.Values{} + params.Set("offset", fmt.Sprintf("%d", offset)) + params.Set("limit", fmt.Sprintf("%d", limit)) + + resp, err := c.Get(UsersEndpoint, params) + if err != nil { + return nil, fmt.Errorf("failed to get users: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, _ := io.ReadAll(resp.Body) + return nil, fmt.Errorf("get users failed with status %d: %s", resp.StatusCode, string(body)) + } + + var usersResp UsersResponse + if err := json.NewDecoder(resp.Body).Decode(&usersResp); err != nil { + return nil, fmt.Errorf("failed to decode users response: %w", err) + } + + allUsers = append(allUsers, usersResp.Entries...) + + // Check if we have more users + if offset+limit >= usersResp.TotalCount { + break + } + offset += limit + } + + log.Debugf("[box client] Retrieved %d users from enterprise", len(allUsers)) + return allUsers, nil +} diff --git a/plugins/connectors/box/files.go b/plugins/connectors/box/files.go new file mode 100644 index 000000000..0f0cadccc --- /dev/null +++ b/plugins/connectors/box/files.go @@ -0,0 +1,353 @@ +/* Copyright © INFINI LTD. All rights reserved. + * Web: https://infinilabs.com + * Email: hello#infini.ltd */ + +package box + +import ( + "fmt" + "strings" + "time" + + "infini.sh/coco/core" + "infini.sh/coco/modules/common" + "infini.sh/framework/core/pipeline" + "infini.sh/framework/core/util" + + log "github.com/cihub/seelog" +) + +type FolderNode struct { + ID string + Name string + ParentID string + ParentPath string + ParentPathArray []string + Size int64 + Type string + URL string + UserID string // For enterprise accounts with multiple users +} + +func (processor *Processor) startIndexingFiles( + ctx *pipeline.Context, + connector *core.Connector, + datasource *core.DataSource, + client *BoxClient, +) { + processor.startIndexingFilesForUser(ctx, connector, datasource, client, "", "") +} + +func (processor *Processor) startIndexingFilesForUser( + ctx *pipeline.Context, + connector *core.Connector, + datasource *core.DataSource, + client *BoxClient, + userID, userName string, +) { + // Get root folder ID (0 for Box) + rootFolderID := "0" + + // For enterprise accounts with multiple users, create a user-specific root category + // For free accounts, use standard root "/" + var rootPath string + var pathArray []string + + if userID != "" { + // Enterprise account: create user-specific hierarchy with user name as top category + // This ensures different users' files are properly separated in the hierarchy + rootPath = "/" + if userName != "" { + pathArray = []string{userName} + } else { + pathArray = []string{userID} + } + } else { + // Free account: standard root without user prefix + rootPath = "/" + pathArray = []string{} + } + + rootFolder := &FolderNode{ + ID: rootFolderID, + Name: "", + ParentID: "", + ParentPath: rootPath, + ParentPathArray: pathArray, + Size: 0, + Type: FileTypeFolder, + URL: getUrl(FileTypeFolder, "0"), + UserID: userID, + } + + // Process files recursively starting from root + processor.processFolderRecursively(ctx, connector, datasource, client, rootFolder) +} + +func (processor *Processor) processFolderRecursively( + ctx *pipeline.Context, + connector *core.Connector, + datasource *core.DataSource, + client *BoxClient, + folder *FolderNode, +) { + log.Debugf("Processing folder: %s (ID: %s)", folder.Name, folder.ID) + + // Skip creating document for root folder (/) + if folder.Name != "" { + // Create folder directory document + folderDoc := common.CreateHierarchyPathFolderDoc( + datasource, + folder.ID, + folder.Name, + folder.ParentPathArray, + ) + folderDoc.URL = getUrl(folder.Type, folder.ID) + folderDoc.Metadata = util.MapStr{ + "folder_type": FileTypeFolder, + "folder_id": folder.ID, + "platform": NAME, + "size": folder.Size, + } + + // Collect folder document + processor.Collect(ctx, connector, datasource, folderDoc) + } + + // Get folder items + offset := 0 + limit := DefaultPageSize + + for { + // Pass userID for enterprise accounts (as-user header) + items, err := client.GetFolderItems(folder.ID, offset, limit, folder.UserID) + if err != nil { + log.Errorf("Failed to get folder items for %s: %v", folder.ID, err) + break + } + + // Process each item + for _, item := range items.Entries { + processor.processItem(ctx, connector, datasource, item, client, folder) + } + + // Check if we have more items + if offset+limit >= items.TotalCount { + break + } + offset += limit + } +} + +func (processor *Processor) processItem( + ctx *pipeline.Context, + connector *core.Connector, + datasource *core.DataSource, + item *BoxFile, + client *BoxClient, + parentFolder *FolderNode, +) { + if item.Type == FileTypeFolder { + // Compute child folder path + var childPath string + if parentFolder.ParentPath == "" || parentFolder.ParentPath == "/" { + childPath = "/" + item.Name + } else { + childPath = parentFolder.ParentPath + "/" + item.Name + } + + // Process folder + childFolder := &FolderNode{ + ID: item.ID, + Name: item.Name, + ParentID: parentFolder.ID, + ParentPath: childPath, + ParentPathArray: append(parentFolder.ParentPathArray, item.Name), + Size: item.ItemSize, + Type: item.Type, + URL: getUrl(item.Type, item.ID), + UserID: parentFolder.UserID, // Propagate UserID + } + + // Recursively process the folder + processor.processFolderRecursively(ctx, connector, datasource, client, childFolder) + } else if item.Type == FileTypeFile { + // Process file + processor.processFile(ctx, connector, datasource, item, parentFolder) + } +} + +func (processor *Processor) processFile( + ctx *pipeline.Context, + connector *core.Connector, + datasource *core.DataSource, + file *BoxFile, + parentFolder *FolderNode, +) { + // Create document + doc := core.Document{ + Source: core.DataSourceReference{ + ID: datasource.ID, + Type: "connector", + Name: datasource.Name, + }, + } + + doc.System = datasource.System + doc.Title = file.Name + doc.Type = file.Type + doc.Icon = getIconTypeFromExtension(file.Extension) + doc.URL = getUrl(file.Type, file.ID) + + // Set hierarchy path + doc.Category = common.GetFullPathForCategories(parentFolder.ParentPathArray) + doc.Categories = parentFolder.ParentPathArray + + if doc.System == nil { + doc.System = util.MapStr{} + } + doc.System[common.SystemHierarchyPathKey] = doc.Category + + // Set timestamps + if !file.Date.IsZero() { + doc.Created = &file.Date + doc.Updated = &file.Date + } else { + now := time.Now() + doc.Created = &now + doc.Updated = &now + } + + // Set content - use description if available + doc.Content = file.Description + + // Set summary - use description, truncate if too long + if file.Description != "" { + if len(file.Description) > 200 { + doc.Summary = file.Description[:200] + "..." + } else { + doc.Summary = file.Description + } + } else { + doc.Summary = file.Name + } + + // Set subcategory - use file extension or type + if file.Extension != "" { + doc.Subcategory = strings.ToUpper(file.Extension) + } else { + doc.Subcategory = file.Type + } + + // Set tags - include file extension, status, and type + var tags []string + if file.Extension != "" { + tags = append(tags, "ext:"+strings.ToLower(file.Extension)) + } + if file.Type != "" { + tags = append(tags, file.Type) + } + doc.Tags = tags + doc.Owner = &core.UserInfo{UserName: file.LastUpdatedByName} + + // Set metadata + doc.Metadata = util.MapStr{ + "id": file.ID, + "type": file.Type, + "item_size": file.ItemSize, + "description": file.Description, + "platform": NAME, + } + + // Add user_id for enterprise accounts + if parentFolder.UserID != "" { + doc.Metadata["user_id"] = parentFolder.UserID + } + doc.Payload = map[string]interface{}{ + "id": file.ID, + "name": file.Name, + "type": file.Type, + "item_size": file.ItemSize, + } + + // Generate document ID + // For enterprise accounts, include userID to avoid conflicts between users + if parentFolder.UserID != "" { + doc.ID = util.MD5digest(fmt.Sprintf("%v-%v-%v", datasource.ID, parentFolder.UserID, file.ID)) + } else { + doc.ID = util.MD5digest(fmt.Sprintf("%v-%v", datasource.ID, file.ID)) + } + + // Collect document + // Note: File content extraction is handled by the coco-server framework's + // document processing pipeline, not in the connector itself + processor.Collect(ctx, connector, datasource, doc) +} + +// getIconTypeFromExtension returns the icon type based on file extension (without dot) +func getIconTypeFromExtension(ext string) string { + ext = strings.ToLower(ext) + + // Map extensions to Box icon types + switch ext { + // PDF + case "pdf": + return "pdf" + + // Microsoft Office - Word + case "doc", "docx", "docm", "dot", "dotx", "dotm": + return "docx" + + // Microsoft Office - Excel + case "xls", "xlsx", "xlsm", "xlsb", "xlt", "xltx", "xltm": + return "excel-spreadsheet" + + // Microsoft Office - PowerPoint + case "ppt", "pptx", "pptm", "pot", "potx", "potm", "pps", "ppsx", "ppsm": + return "powerpoint-presentation" + + // Apple iWork - Pages + case "pages": + return "pages" + + // Apple iWork - Numbers + case "numbers": + return "numbers" + + // Apple iWork - Keynote + case "keynote", "key": + return "keynote" + + // Google Docs (if saved with these extensions) + case "gdoc": + return "google-docs" + + // Google Sheets + case "gsheet": + return "google-sheets" + + // Google Slides + case "gslides": + return "google-slides" + + // Box specific formats + case "boxnote": + return "boxnote" + + // Box Canvas + case "boxcanvas": + return "boxcanvas" + + // Bookmark + case "url", "webloc", "website": + return "bookmark" + + // Default + default: + return "default" + } +} + +func getUrl(docType, docId string) string { + return fmt.Sprintf("https://app.box.com/%s/%s", docType, docId) +} diff --git a/plugins/connectors/box/plugin.go b/plugins/connectors/box/plugin.go new file mode 100644 index 000000000..b2b5797cd --- /dev/null +++ b/plugins/connectors/box/plugin.go @@ -0,0 +1,140 @@ +/* Copyright © INFINI LTD. All rights reserved. + * Web: https://infinilabs.com + * Email: hello#infini.ltd */ + +package box + +import ( + "fmt" + + "infini.sh/coco/core" + cmn "infini.sh/coco/plugins/connectors/common" + "infini.sh/framework/core/api" + "infini.sh/framework/core/config" + "infini.sh/framework/core/pipeline" + + log "github.com/cihub/seelog" +) + +const NAME = "box" + +type Config struct { + // Account type: "box_free" or "box_enterprise" + IsEnterprise string `config:"is_enterprise" json:"is_enterprise"` + + // OAuth credentials (required for both account types) + ClientID string `config:"client_id" json:"client_id"` + ClientSecret string `config:"client_secret" json:"client_secret"` + + // For Box Free Account only + RefreshToken string `config:"refresh_token" json:"refresh_token"` + + // For Box Enterprise Account only + EnterpriseID string `config:"enterprise_id" json:"enterprise_id"` + + // Optional settings + ConcurrentDownloads int `config:"concurrent_downloads" json:"concurrent_downloads"` +} + +type Processor struct { + cmn.ConnectorProcessorBase +} + +func init() { + pipeline.RegisterProcessorPlugin(NAME, New) + + // Register OAuth routes for Box Free Account + api.HandleUIMethod(api.GET, "/connector/:id/box/connect", connect, api.RequireLogin()) + api.HandleUIMethod(api.GET, "/connector/:id/box/oauth_redirect", oAuthRedirect, api.RequireLogin()) +} + +func New(c *config.Config) (pipeline.Processor, error) { + runner := Processor{} + runner.Init(c, &runner) + return &runner, nil +} + +func (processor *Processor) Name() string { + return NAME +} + +func (processor *Processor) Fetch(pipeCtx *pipeline.Context, connector *core.Connector, datasource *core.DataSource) error { + cfg := Config{} + processor.MustParseConfig(datasource, &cfg) + + log.Debugf("[%s connector] handling datasource: %s", NAME, datasource.Name) + + // Validate required configuration + if cfg.ClientID == "" { + return fmt.Errorf("client_id is required for Box connector") + } + if cfg.ClientSecret == "" { + return fmt.Errorf("client_secret is required for Box connector") + } + + // Validate account type specific configuration + if cfg.IsEnterprise == AccountTypeFree { + if cfg.RefreshToken == "" { + return fmt.Errorf("refresh_token is required for Box Free Account") + } + } else if cfg.IsEnterprise == AccountTypeEnterprise { + if cfg.EnterpriseID == "" { + return fmt.Errorf("enterprise_id is required for Box Enterprise Account") + } + } else { + // Default to free account if not specified + cfg.IsEnterprise = AccountTypeFree + if cfg.RefreshToken == "" { + return fmt.Errorf("refresh_token is required for Box Free Account") + } + } + + // Try to get client from cache first + client, cached := GetCachedClient(datasource.ID) + + if cached { + log.Debugf("[%s connector] Using cached client for datasource: %s", NAME, datasource.ID) + } else { + // No cached client, create a new one + log.Debugf("[%s connector] No cached client found, creating new client for datasource: %s", NAME, datasource.ID) + client = NewBoxClient(&cfg) + + // Test connection for new client + log.Debugf("[%s connector] testing connection...", NAME) + if err := client.Ping(); err != nil { + return fmt.Errorf("failed to connect to Box: %v", err) + } + log.Debugf("[%s connector] connection test successful", NAME) + + // Cache the new client for future use + CacheClient(datasource.ID, client) + } + + // Start processing files + log.Debugf("[%s connector] start processing box files for datasource: %s", NAME, datasource.Name) + + if cfg.IsEnterprise == AccountTypeEnterprise { + // Enterprise account: fetch files for all users + log.Infof("[%s connector] Fetching data from Box's Enterprise Account", NAME) + + users, err := client.GetUsers() + if err != nil { + return fmt.Errorf("failed to get enterprise users: %v", err) + } + + log.Infof("[%s connector] Found %d users in enterprise", NAME, len(users)) + + for _, user := range users { + log.Debugf("[%s connector] Processing files for user: %s (%s)", NAME, user.Name, user.ID) + processor.startIndexingFilesForUser(pipeCtx, connector, datasource, client, user.ID, user.Name) + } + } else { + // Free account: fetch files for current authenticated user + log.Infof("[%s connector] Fetching data from Box's Free Account", NAME) + processor.startIndexingFiles(pipeCtx, connector, datasource, client) + } + + log.Infof("[%s connector] finished fetching datasource [%s]", NAME, datasource.Name) + + return nil +} diff --git a/plugins/connectors/feishu/api.go b/plugins/connectors/feishu/api.go index 5ba42aa99..ea41ac7e3 100644 --- a/plugins/connectors/feishu/api.go +++ b/plugins/connectors/feishu/api.go @@ -3,6 +3,8 @@ package feishu import ( "fmt" "infini.sh/coco/core" + "infini.sh/coco/modules/connector" + "infini.sh/coco/plugins/connectors" "net/http" "net/url" "strings" @@ -210,24 +212,21 @@ func getOAuthConfigFromConnector(connectorID string, pluginType PluginType) (*OA RedirectURL: fmt.Sprintf("/connector/%s/%s/oauth_redirect", connectorID, pluginType), } - // Try to load connector to get OAuth credentials - connector := core.Connector{} - connector.ID = connectorID - exists, err := orm.Get(&connector) - if err == nil && exists && connector.Config != nil { - if clientID, ok := connector.Config["client_id"].(string); ok { - oauthConfig.ClientID = clientID - } - if clientSecret, ok := connector.Config["client_secret"].(string); ok { - oauthConfig.ClientSecret = clientSecret - } - if authURL, ok := connector.Config["auth_url"].(string); ok { - oauthConfig.AuthURL = authURL - } - if tokenURL, ok := connector.Config["token_url"].(string); ok { - oauthConfig.TokenURL = tokenURL - } + if connectorID == "" { + return nil, fmt.Errorf("connector id is empty") + } + cfg, err := connector.GetConnectorByID(connectorID) + if err != nil || cfg == nil { + return nil, fmt.Errorf("invalid connector config") + } + err = connectors.ParseConnectorBaseConfigure(cfg, &oauthConfig) + if err != nil { + return nil, fmt.Errorf("invalid oauth config parse from connector") + } + if oauthConfig.ClientID == "" || oauthConfig.ClientSecret == "" || len(oauthConfig.RedirectURL) == 0 { + return nil, fmt.Errorf("missing %s OAuth credentials", pluginType) } + log.Infof("oauthConfig: %v", oauthConfig) return oauthConfig, nil } diff --git a/web/public/assets/icons/connector/box/bookmark.png b/web/public/assets/icons/connector/box/bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..bff814d4c63fda4e154fd06d4dd17b47b006b1c3 GIT binary patch literal 3332 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 literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/boxcanvas.png b/web/public/assets/icons/connector/box/boxcanvas.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3196cf5e13c5846719d8cb44a96dca67f94721 GIT binary patch literal 4537 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 literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/docx.png b/web/public/assets/icons/connector/box/docx.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb530458f060239b559ca21f2a2a6e2e55b8e35 GIT binary patch literal 4236 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 G!~X}qC1j2O literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/excel-spreadsheet.png b/web/public/assets/icons/connector/box/excel-spreadsheet.png new file mode 100644 index 0000000000000000000000000000000000000000..338f6aa7a79ae547f9ed4839724c3dffe20d59e8 GIT binary patch literal 4524 zcmY*d1yod9)V{;eDcvC;f&xQ|ARQ9Y(%m7=kWxd9bV`GOL-PnJDQRgXq`L$u2N#quwDEO%oeLju8ULp^9nIF?N_e6M|Ht zn6^Q6atU2_t4u1IJqi|mm0a>Q72P#fiY66x<)4~b<1<8&LPLv_AvFUJD2Z_c0O1YS z&EHF>zQ|Krw9{TO^q==#(^&GH9tJF`{FLt2J?lbuJ#qAgI&B_}-lrrbEoB_NbQJ)P=5UQ{H)fVPIGeI#etYe5O?SYy^{V9DNH?_T7hTNP z!Y6LyFE~a%#|R-+rkhs#tRtzuHJ0Sg$nK$FdV&6N5Gpme1{yXK0LQ}krX00 zlX(&n_{^b`YCNA-?P|Vft-TGpbHj7E{Mm#L^4J@*qbDqGCz`0S`P$8$&I4CF{+vM6 z<5wck=nO8jz%dw=V@p+5FYJY)FxJmHTz^=vgioHgjMv2qjN8mJ&RXis9SY};p>48A zgR)H`0s^l1GKjX>`0~+{R?#)b(ET$NgAlgK*9qd6J&9f6@|ctd$&9GDrat;1bt<9uIw|hdaC5tfFy*c|Q3k#Wi0GKm*%$%JlPkCZ z#Gazmh8e>Y0CNF@<}WlFzp+~yPn-X~lzFy(wayY5JQ8>`A9Vfn-Box0+}aw|$ES0c z9re4Js|mg;zE@n_)16LMijD4cSd*{FgJBg95s~>N62}{oOy_+;b?XO-^|Q?pxK7|a z3d6}sBm}M%3KPjO2mXI7?1Xy@i%U^v(6s86V_&VMUPj)PjFDO&~VDe zYh4U~g(#BVvoS8wDZ|Zfq~B(YD^#O`UmqiWeo%8}epQR+bm4ooYg`CQE#j|fPKSI? z;Hb=_spu@6+!kG?t0UCG$fUqV&m*rNQ+`T~uOGYUrC>6h#0l`-8=fwRjm zquK%wl~k4vI=UcPHS!%(Xnl+hX_r)mz?VjWwiRQ2z2qfv7ZTu)RT zXfGF#OxNnRU(pF9)-A5GC`?*cBW)V$mH&zT+6iN_|`yeKv%sTA6+M z9>XcN1sBHl*=@1Q@j*OgWiBY0krmDS%y*&`m*jpre4voQ;L`34Uxoj;^L0}VWDW1Q z>JsPC8F%Ka1#~X8uZ09yRrU|eDLr(rh#}XR2`p=A8iXd321}WMa&hJbR&`!A6lG{w z^-|NAUVH)PZA=t2gd!H?Gnj48v{_vXHqET;1ao29Zo4IXc6pn2MMdY9%{C1V;Q99; z6`WN2A#x=Rg8ZeI21vhW$X0n6w&n$A#E)xV3l!ZelXqk{`9ny2+VU3-wLJ}hI%1Gd zOGEHVfkyl@u>0D&MY?^I(_S?Pf6`Z=KP4CcNst4>_hu4Q@U}ssz8O8QPSls>sq|!0 z(Ovph<&?>?g}JF89DvH&5vu{e-qhUvf)EYXVL-V7FMNAb&@)5}0aw7;V?o_tESAnu zUuu0W4oTHm~XZ9w*G`t{j>^z5vza%dW_VHJ~V z#m?kyO&CgAt-Q&kd(<&uFB8wRQz%ugtUGwGTGvE3TPTogu3qOj+oEShk+CHO78CViwm!eMok6 zJST)gjnWV<`6Hc_D~35Dr*Jf3ykhifmaKvW(u?DRd|!6%rFP!LL~;;>>NA z@0o%luvoN$;)-56Ne$_!dRBnmpKx?bN01z0)hZa=-&2iaR@si6K%LW7E@t+e7b+H9 z5ud0#RCCb|d3yPkaOF$hYg!;#%FXF%X|lKSQ3-`zlwRxb4*G`T0?CPHi_aXxC#Oz5 zFkn81{)muIW1PJ;Ep9yZq%4Pl1qel14&E$fvPW_;y;vHR+HW^LcNBJ8>JJ~VuU^~H zXkWkrwv9^;*khC$lSOlL%m=(R9JPEUXsZXG)!A5;+qR(P$!;SWBCb9x_eOp|%t-J= z1=~d_{}_ynEPLT8lra2WdLa7ZMFnKiI3|fm9m+bOUsN0qXQs{0!ve}h$vKn?Gmq#E zt&c)~?&1P9U@eFl=ZOHrk{fo*xJ*>3;W-B9*atcA{ho}z7ik|AQrflkq}wzt6ebc0 z+1Tx|ii^3|em!?!VdT(9zyMPao1?UO_~$6j5N^S;GU z6R$qtHWbg!`>G2Q8<`OoEtCjeoyZ$6tKd7AI`zbYS)?6n)|c14O!;x|Z5AH?*_5F~ z*LKtH+0jy;S&gq-z@|vs^|}j73UwEw=)tqb_8>B;vc`dg^t^RC!u?*)ULW)e>YenN zZ>5=?tOzt(#^Fa8yZcneXs*u`N!C>`%M*`z#M`&fmGDN^O}VeN!fOW#?Jo;lsYk3O z;w)vb3YtoR7vXD9)9I}r=vq&Cx7W3&5D+%Gj8cCK+AI1P2ZMk*icDacRvdb*@-XGQ<#^TJaU;VC| zdnLMMdGbSl?qo(%O+b>0tIIV$PgRbq(t^TRB_g&I~`$irzQx@JZXKD@%xbZEfNKJS?l4AL}smh?54{ z8nu3frCuDV;K}YKR$Bu@2|?Clhg>Y+a>-;0?n`Q>_udmV#^X!{3`1I#51!2V9TnOF z3KG)KW62i_X>|`mQIOTovv@x4D^EXN_qkf1h+JRCB3Hbt=%mUZ;Q<-Mukd%Vi-yuD ziVkv6 zv`_2P;s$1%zu^%_8OE=^{H>-y7z4?58#{Mz2C)_Tm8)nCFaPq(1p z53~!N@cfL&CvGkNaqRy{M&K;#i-#~>+$bHVwyYCd8|AVe8cd<>D{fpC=^mEeQ}<tUdn_R{*f~T9z_BGVnWRhfOlcD|g zwENgN5LI%kt?MFlbqQnVr;iuz+xRx%nv?6eK^HdeB@}!_66h)#0PIsr=_c8qfAc3V z;5;h#D}eE3s6}9+J8ps&F4Z;i`-X=+j6wJEADZUZiqyMeL~j`vbh#aWV4x~O4Z?rl zv*b;NP##cxx3g}xkBcz8bx#lf+9pX8nNUQ-O0pgx5FSDPT;$&8udXzTTrdcoKW_AA zYtPuX-E2eVSv0IEdHCB8eR$0Um&$4vZ(mL@PROhYZ2PZx<&AC9E~}roVpo=XC*q?1 z*a3-88K~xp_Y9jwRj_P-gC7k=&l1<;wPstwv#RLdx;iiP9p?H{N{~g8QSxCXks`BTScINgwtki%35#LF9D5e9=TVtr z51?-DmRD!EvoCi3VZ~LSidB=z+ijs)(uxdtyrom8Orv` zDb+HOXjA9Lkt#p=deoRhy267h~n5IFiN12RsP6MlTXa{*9bIeO13`z6XH$bp~Tis zXL8HN2(kS|NQ}*I|Bzrl95>+0$b0~qyfW56dzvIFIXv?vYae6`Jy7p_2hY~vz_;(^ zzC*_jnb9d3VmgRtZDT=mpGuMV-h+WO1l8IJp&Ftw>aj*`nIc#kYP!`78NF#A+g@Ap z$XSp}|7I$jQ888L_Nwz~_b>K(vxMyVOKvr`y8Ym1`VGDn{qJI;no%R9Kgr0EHM@$;!&`Rh%!vBLAf5pVzicuY-<>{uDM z7aUO5yTUJYoRvUCJG=o<{Yq?}wMq1LG$mMC0x~Sj0YE_f0C%d-sfSlXHEH@{=Q;y+|mKK_x!GZGUyn;Qvn*L`{+o z>L){!h4;!B6!Iq}JU|EKXla8q3=Z=~s>v(JE1-1YNF-7_%!{CDXJq_K&f4jqe8a;- zG%=XS$VmA}W%=MRAB>`gh6YAK38SPW$70A4qk_WEk>rAi=zmQ9>tp0i^bGS03HJ*Q zLhkvV^9a5Wu7g7DHTu2&IcK;Z;onX{#9w2v2E^=r!6?crV19eEq}qE`P3tf}Z&v3$ ze_ciGpUnTO{pzEQ*=znkhxupHpH#}D7d|p;G~C}ad|%1YO~jZget@`MDO^J98FjriNY0Ae^dZm( z=5+;9$IG?LjWol=rRU=`o>8diLME>US95a9e12Pn?%6LC_Zl!V38Zd|J<`;o&M&gd zb(A~bwl_PRX5s63g~l%=vmhF8Li;40nkS*UYMuUQw|aBtTi(6C-Kf7IoG0FNA;Q!O-P8(S;hc`ie2_7;1yWDmIl0!M)^I%MVI~KV@wqm|Av3mBXpv301pDL9 zz?Wm+#%p$Q4S~)2hk(z|)rDLG^k66TIGqBx@f zc4NvlI_lbsM3k%$c{sd)nS4C3-__!9Lc!_6>k-2-|&`}RBec|cB&E}DbO~Ra@a~LDnr&u)QuL;2lLhqMzmKpxaU=zYEM!tW zJo(ZzcrRApmO)G1-aToPJyc?T%vuIFlz-$P8_r-_`-ax};+9$6(r?Cp%3%q&)+FS} z(+)cO&THQ<>K^nMy=JaIyVUeDn*FY%xfB%lqGM~xqpD~-$hY`_)JDW>ex>}yh(nD> zHN!Y6HcE|0Zif{oEKsru3~Q`7kcQ#vuBOPL&(Y>23HezDVli}Es-3{Z={pe{M-KPa z85rp9T1A%6TzvbgrT7e^1m9^10q#)Fqq&EfVL+-V=P+I=`B-igjf*k}NPP16$a zgk|SDHW$u}wV$YO^XRk8g~ty;=60Dk(=5iWs7`iIJrK}dxxkf%kSPq-+# zosUQ#^v`8n)>D&oy>xc$HKo0j4e9-e{g9BR@sFrM6A`hX`%+?=5O-AhP9joT+YmS< z?O7R8Irv3ak5Q!@`hB|;J!^}dF0kYTHcMrZtEQryyd`Qd15^JP6De=AyxOa@TJMSx zqYu~gWXJPYJ{wv(Fdq1U3Z6O4^&{Un>x*stu>fNlC%u4^(MJJeD@Nhk_tCJwf;J}c z*maq7o@-nFh{KA?5bPA)D6Wndu)K9Dg))8PG;?iJeY9pvg^}H;Kb1Ht;%*mom^oX; zhMTe-=<1lAnN&Gu2}uDOkDelt#M*p9OP^{F_@X(I-?_fOKYjo8L!}3XJrR1LFeQAvZ|l5bU&y-a`t3k7 zlh{?hovq5uOO}3&n6rHzLZ8@VU5>dp&chohe2I4qQQKWK3y%-BogCuK74wKwG8q29 zz6BY)kIp8leKP8P427eM8Lwv)4v?eEk}9tY02S`^gr!~{^iq(N)}bA~QRIxOalyX4 zLvo#_V8rg%giPx%h4MHzwFc|zN?=l-l(W%1XdJi6`SdxRTpM$*7kVfmxn1+><|J5{ zHyBnXCf0xYe5L@<%^lSdlWk!Tc(Ubl`bQ|?;3V}f<_&B?-yU%1F0iM%k1Vr;kur3% zn%UL{2w7z5Lv3j@N8%s_HJAe9ZVcyf_JRP^LCy~Hm|33QV(&)E^>gvVHV97y&for_m3r-ffa)_ULOfH8!Ut|Uu@N{iVojoe zeCg?;rZ~MxKC}n1%~SkX*s0#&CEw>DKC*HjA0OR$H|2(1P!>^uI`yz z=?K82)|lVBf$hlh@q_jq{x6gxX-9PkCEeo`QRc`;9A7p>T`VsT8@AAzN-l_gj|u>4 z?L8^0$>B*+TDAzyv>u8T}>EK2Ea|DntFKx-YK5O2gTGp}Qv=u=077o~; z06*1>f;cOfyLux~te5jcdq9@lsDq-j0RbQ{T}H%*?qp@##pd$9eT7x@eg1bkh~~%4 zVDs4RY5`zCMIC(UaYB593%7UM+9pw@NVz^SFaC_;>(fcxcjdjJPbE2_UX zgmpO}qK^=JvJ%SG9W%sCKU$gOtz5YC2TB$gLMC2Y3YH9DgmxYNOTn(Qj-e!}WK)bc zF&A=buiYF;%M{AbSm(T`2rT0t4&Urn;2B8P%M#igqf_6mRWjUf62O#AL=|ML?v*61 zw$4I&Sy+Db^^#>0pn$k+C(*VF;6W@3$q6wU3<`Y{A(@)6fzo=66b7#L5_Pp-C#?&5OKC7cUl#b z%m9)6{92L(D8vo3$@Za7!<1*0IvDF`BbhJ&msd+F`yimY{pQ;9PY_y^W-kx!arIiY zR;11K?(la{^JNP897EJs*_RGcO{fEobrLEMXa)=OsRa?R_-S6lB!=F~nT2Q$lHOAa z=Avp_g>4P-JpvykYRdhbZs0G`F{p~^T)A{%<=F7V!Koq}!4$2C9p>T19l;5=_GGtq z9U-oReExf+gz*P0ELwH4)J#jAeU(wjR3<74hw-F8Me9GO+O znT_Ckv6!S;A@x>WjO4{WbGh<$?2n6bGw&t78!laaUzYlH?CIZlVE4Mx7DmX+*Lbob z;O{?Tsm$#nhqw{px0ys?*`{^>rA0QM4Ix-<<16z1@pQ>pUfCzKoXg8tSMmQpu1GVotyNw#SbCF+OZQlh{EXL_Z TrCHba{@_hdSQ%9txF`GvAE1SP literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/google-sheets.png b/web/public/assets/icons/connector/box/google-sheets.png new file mode 100644 index 0000000000000000000000000000000000000000..e634578c5e5426fd27d3efbee4f223b62407ea7c GIT binary patch literal 3870 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 Fe*oewwle?# literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/google-slides.png b/web/public/assets/icons/connector/box/google-slides.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3d99bfb4b4f559d11ead221cc9e81a82a4c48c GIT binary patch literal 2943 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 z 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 P!>yvIsZc3r7W97rlRQ8bUE%vb%i8hIp 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 Q9sZFR>s!DpbX}wW13s`9p8x;= literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/numbers.png b/web/public/assets/icons/connector/box/numbers.png new file mode 100644 index 0000000000000000000000000000000000000000..8c72a7cf1c862e1fe6ebf32c8845eedceb3d40ae GIT binary patch literal 3538 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 literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/pages.png b/web/public/assets/icons/connector/box/pages.png new file mode 100644 index 0000000000000000000000000000000000000000..0052cc2fa93cf7538ba9ddb8702407d9c61aaa70 GIT binary patch literal 3249 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 literal 0 HcmV?d00001 diff --git a/web/public/assets/icons/connector/box/powerpoint-presentation.png b/web/public/assets/icons/connector/box/powerpoint-presentation.png new file mode 100644 index 0000000000000000000000000000000000000000..88f961fa5346bee8033ad19a9eb4623a0cb9b44a GIT binary patch literal 4404 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 literal 0 HcmV?d00001 diff --git a/web/src/components/datasource/type/index.jsx b/web/src/components/datasource/type/index.jsx index f8471bed1..98f2959f3 100644 --- a/web/src/components/datasource/type/index.jsx +++ b/web/src/components/datasource/type/index.jsx @@ -28,7 +28,8 @@ export const Types = { Postgresql: 'postgresql', RSS: 'rss', S3: 's3', - Yuque: 'yuque' + Yuque: 'yuque', + Box: 'box' }; export const TypeList = ({ diff --git a/web/src/locales/langs/en-us/page.ts b/web/src/locales/langs/en-us/page.ts index a289bf0ac..172e2e6d7 100644 --- a/web/src/locales/langs/en-us/page.ts +++ b/web/src/locales/langs/en-us/page.ts @@ -193,7 +193,7 @@ const page: App.I18n.Schema['translation']['page'] = { }, connect: 'Connect', missing_config_tip: - 'Google authorization parameters are not configured. Please set them before connecting. Click Confirm to go to the settings page.', + '{{name}} authorization parameters are not configured. Please set them before connecting. Click Confirm to go to the settings page.', delete: { confirm: 'Are you sure you want to delete this datasource?' }, diff --git a/web/src/locales/langs/zh-cn/page.ts b/web/src/locales/langs/zh-cn/page.ts index 91d26164b..4e0d8ff3a 100644 --- a/web/src/locales/langs/zh-cn/page.ts +++ b/web/src/locales/langs/zh-cn/page.ts @@ -249,7 +249,7 @@ const page: App.I18n.Schema['translation']['page'] = { }, hours: '小时', minutes: '分钟', - missing_config_tip: 'Google 授权相关参数没有设置,需设置后才能连接,点击确认跳转到设置页面。', + missing_config_tip: '{{name}} 授权相关参数没有设置,需设置后才能连接,点击确认跳转到设置页面。', mongodb: { error: { collection_required: '请输入集合名称!', diff --git a/web/src/pages/data-source/modules/OauthConnect.tsx b/web/src/pages/data-source/modules/OauthConnect.tsx index 2e45e9be5..e8a2aaa23 100644 --- a/web/src/pages/data-source/modules/OauthConnect.tsx +++ b/web/src/pages/data-source/modules/OauthConnect.tsx @@ -21,30 +21,30 @@ export const OAuthValidationPresets = { { field: 'redirect_url', required: true, label: 'Redirect URL' }, { field: 'token_url', required: true, label: 'Token URL' }, ], - + // Minimal OAuth (3 fields) - Some providers might not need redirect_url/token_url minimal: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, { field: 'client_id', required: true, label: 'Client ID' }, { field: 'client_secret', required: true, label: 'Client Secret' }, ], - + // Backend-only validation (1 field) - Just check auth_url to enable OAuth UI backendOnly: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, ], - + // Credentials only (2 fields) - When endpoints are hardcoded in backend credentialsOnly: [ { field: 'client_id', required: true, label: 'Client ID' }, { field: 'client_secret', required: true, label: 'Client Secret' }, ], - + // Authorization only (1 field) - Just need auth endpoint authOnly: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, ], - + // Custom validation examples for specific providers googleDrive: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, @@ -53,40 +53,40 @@ export const OAuthValidationPresets = { { field: 'redirect_url', required: true, label: 'Redirect URL' }, { field: 'token_url', required: true, label: 'Token URL' }, ], - + feishuLark: [ { field: 'client_id', required: true, label: 'Client ID' }, { field: 'client_secret', required: true, label: 'Client Secret' }, ], - + // Example of conditional validation - require redirect_url only if not using default conditionalExample: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, { field: 'client_id', required: true, label: 'Client ID' }, { field: 'client_secret', required: true, label: 'Client Secret' }, - { - field: 'redirect_url', + { + field: 'redirect_url', required: (config: OAuthConfig) => { // Only require redirect_url if auth_url is provided (conditional logic) return !!config.auth_url; - }, - label: 'Redirect URL' + }, + label: 'Redirect URL' }, { field: 'token_url', required: true, label: 'Token URL' }, ], - + // Example with custom validator - validate URL format withCustomValidation: [ { field: 'auth_url', required: true, label: 'Authorization URL' }, { field: 'client_id', required: true, label: 'Client ID' }, { field: 'client_secret', required: true, label: 'Client Secret' }, - { - field: 'redirect_url', - required: true, + { + field: 'redirect_url', + required: true, label: 'Redirect URL', customValidator: (config: OAuthConfig) => { if (!config.redirect_url) return { valid: false, message: 'Redirect URL is required' }; - + // Basic URL validation try { new URL(config.redirect_url); @@ -110,6 +110,7 @@ interface OAuthConnectProps { connector: { id?: string; config?: OAuthConfig; + name?: string; }; connectUrl?: string; missingConfigMessage?: string; @@ -118,8 +119,8 @@ interface OAuthConnectProps { validationRules?: ValidationRule[]; // Configurable validation rules } -export default function OAuthConnect({ - connector, +export default function OAuthConnect({ + connector, connectUrl, missingConfigMessage, connectButtonText, @@ -148,11 +149,11 @@ export default function OAuthConnect({ const missingFields: string[] = []; const missingFieldLabels: string[] = []; const customErrors: string[] = []; - + rules.forEach(rule => { // Check if field is required (handle conditional requirements) const isRequired = typeof rule.required === 'function' ? rule.required(config) : rule.required; - + if (isRequired) { // Run custom validator if provided if (rule.customValidator) { @@ -161,7 +162,7 @@ export default function OAuthConnect({ customErrors.push(result.message || `${rule.label || rule.field} is invalid`); } } - + // Check if required field is missing if (!config[rule.field]) { missingFields.push(rule.field); @@ -172,12 +173,12 @@ export default function OAuthConnect({ // Combine all errors const allErrors = [...missingFieldLabels, ...customErrors]; - + if (allErrors.length > 0) { // Build specific error message - const errorMessage = missingConfigMessage || - t('page.datasource.missing_config_tip') || - `OAuth configuration issues: ${allErrors.join(', ')}`; + const processorName = connector?.name; + const errorMessage = missingConfigMessage || + ( processorName ? t('page.datasource.missing_config_tip', { name: processorName }) : `OAuth configuration issues: ${allErrors.join(', ')}`) window?.$modal?.confirm({ title: t("common.tip"), @@ -205,4 +206,4 @@ export default function OAuthConnect({ ); -} \ No newline at end of file +} diff --git a/web/src/pages/data-source/new/index.tsx b/web/src/pages/data-source/new/index.tsx index da9c0b9ee..7db258a5f 100644 --- a/web/src/pages/data-source/new/index.tsx +++ b/web/src/pages/data-source/new/index.tsx @@ -82,6 +82,7 @@ export function Component() { case Types.Feishu: case Types.Lark: + case Types.Box: // Feishu/Lark have hardcoded endpoints in backend, only need credentials return OAuthValidationPresets.feishuLark; @@ -137,6 +138,8 @@ export function Component() { return 'Feishu'; case Types.Lark: return 'Lark'; + case Types.Box: + return 'Box'; default: return connector?.id || type || 'Unknown'; } @@ -215,7 +218,8 @@ export function Component() { Types.Neo4j, Types.MongoDB, Types.Feishu, - Types.Lark + Types.Lark, + Types.Box ].includes(type); const connectorTypeName = getConnectorTypeName(); @@ -423,7 +427,9 @@ export function Component() { ? `/connector/${connector?.id}/feishu/connect` : type === Types.Lark ? `/connector/${connector?.id}/lark/connect` - : undefined + : type === Types.Box + ? `/connector/${connector?.id}/box/connect` + : undefined } /> ) : ( From 670673e55903eeaca563f70ed81236efbdd2a49c Mon Sep 17 00:00:00 2001 From: yaojp123 <15989103230@163.com> Date: Wed, 26 Nov 2025 09:09:09 +0800 Subject: [PATCH 2/6] chore: use provider's endpoint preferentially (#590) Co-authored-by: yaojiping --- web/package.json | 1 + web/pnpm-lock.yaml | 9 +++++++++ web/src/pages/connector/edit/[id].tsx | 1 + web/src/pages/data-source/edit/[id].tsx | 9 ++++++--- web/src/pages/data-source/modules/OauthConnect.tsx | 5 ++++- web/src/pages/integration/modules/InsertCode.tsx | 8 ++++++-- web/src/pages/integration/modules/Preview.tsx | 8 ++++++-- web/src/pages/integration/modules/SearchBoxForm.tsx | 8 ++++++-- web/src/store/slice/server/index.ts | 2 ++ 9 files changed, 41 insertions(+), 10 deletions(-) diff --git a/web/package.json b/web/package.json index f86e6e725..914f924e5 100644 --- a/web/package.json +++ b/web/package.json @@ -76,6 +76,7 @@ "lodash": "^4.17.21", "lucide-react": "^0.546.0", "mermaid": "11.6.0", + "normalize-url": "^8.1.0", "nprogress": "0.2.0", "prop-types": "^15.8.1", "query-string": "^9.2.1", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index f369e39f7..c622b8af0 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -89,6 +89,9 @@ importers: mermaid: specifier: 11.6.0 version: 11.6.0 + normalize-url: + specifier: ^8.1.0 + version: 8.1.0 nprogress: specifier: 0.2.0 version: 0.2.0 @@ -4400,6 +4403,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-url@8.1.0: + resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} + engines: {node: '>=14.16'} + npm-check-updates@17.1.9: resolution: {integrity: sha512-Gfv5S8NNJKTilM1gesFNYka6bUaBs5LnVyPjApXPQphHijrlLFDMw1uSmwYMZbvJSkLZSOx03e8CHcG0Td5SMA==} engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} @@ -10874,6 +10881,8 @@ snapshots: normalize-path@3.0.0: {} + normalize-url@8.1.0: {} + npm-check-updates@17.1.9: {} npm-run-path@5.3.0: diff --git a/web/src/pages/connector/edit/[id].tsx b/web/src/pages/connector/edit/[id].tsx index cebe047a4..865738c1d 100644 --- a/web/src/pages/connector/edit/[id].tsx +++ b/web/src/pages/connector/edit/[id].tsx @@ -10,6 +10,7 @@ import { AssetsIcons } from '../new/assets_icons'; import { IconSelector } from '../new/icon_selector'; import { useRoute } from '@sa/simple-router'; import Processor from '../new/processor'; +import { getServer } from '@/store/slice/server'; export function Component() { const { t } = useTranslation(); diff --git a/web/src/pages/data-source/edit/[id].tsx b/web/src/pages/data-source/edit/[id].tsx index ffffe03ce..e85d43c1e 100644 --- a/web/src/pages/data-source/edit/[id].tsx +++ b/web/src/pages/data-source/edit/[id].tsx @@ -38,6 +38,8 @@ import Yuque from '../new/yuque'; import { ReactSVG } from 'react-svg'; import LinkSVG from '@/assets/svg-icon/link.svg'; import Neo4j from "@/pages/data-source/new/neo4j.tsx"; +import { getServer } from '@/store/slice/server'; +import normalizeUrl from 'normalize-url'; // eslint-disable-next-line complexity export function Component() { @@ -50,11 +52,12 @@ export function Component() { id: datasourceID }); const [form] = useForm(); + const server = useAppSelector(getServer); const [webhookEnabled, setWebhookEnabled] = useState(false) const webhookUrl = useMemo(() => { - return datasourceID ? `${window.location.origin}${window.location.pathname}webhooks/${datasourceID}` : '' - }, [datasourceID]) + return datasourceID ? normalizeUrl(`${server}/webhooks/${datasourceID}`) : '' + }, [server, datasourceID]) useEffect(() => { setWebhookEnabled(datasource?.webhook?.enabled) @@ -122,7 +125,7 @@ export function Component() { }); }, []); const copyRef = useRef(null); - const insertDocCmd = `curl -H'X-API-TOKEN: REPLACE_YOUR_API_TOKEN_HERE' -H 'Content-Type: application/json' -XPOST ${window.location.origin}${window.location.pathname}datasource/${datasourceID}/_doc -d' + const insertDocCmd = `curl -H'X-API-TOKEN: REPLACE_YOUR_API_TOKEN_HERE' -H 'Content-Type: application/json' -XPOST ${normalizeUrl(`${server}/datasource/${datasourceID}/_doc`)} -d' { "title": "I am just a Coco doc that you can search", "summary": "Nothing but great start", diff --git a/web/src/pages/data-source/modules/OauthConnect.tsx b/web/src/pages/data-source/modules/OauthConnect.tsx index e8a2aaa23..2d9f8f1ae 100644 --- a/web/src/pages/data-source/modules/OauthConnect.tsx +++ b/web/src/pages/data-source/modules/OauthConnect.tsx @@ -2,6 +2,8 @@ import { Button } from "antd"; import { ExclamationCircleOutlined } from "@ant-design/icons"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; +import { getServer } from "@/store/slice/server"; +import normalizeUrl from "normalize-url"; interface OAuthConfig { client_id?: string; @@ -129,6 +131,7 @@ export default function OAuthConnect({ }: OAuthConnectProps) { const { t } = useTranslation(); const nav = useNavigate(); + const server = useAppSelector(getServer); // Default validation rules - require all standard OAuth fields const defaultValidationRules: ValidationRule[] = [ @@ -194,7 +197,7 @@ export default function OAuthConnect({ }); } else { // Use custom connect URL or default to connector-specific endpoint - const endpoint = connectUrl || `${window.location.origin}${window.location.pathname}connector/${connector?.id}/oauth_connect`; + const endpoint = connectUrl || normalizeUrl(`${server}/connector/${connector?.id}/oauth_connect`); window.location.href = endpoint; } }; diff --git a/web/src/pages/integration/modules/InsertCode.tsx b/web/src/pages/integration/modules/InsertCode.tsx index c9ef51812..c9b7fdb57 100644 --- a/web/src/pages/integration/modules/InsertCode.tsx +++ b/web/src/pages/integration/modules/InsertCode.tsx @@ -4,9 +4,13 @@ import Clipboard from 'clipboard'; import { Preview } from './Preview'; import { isFullscreen } from './EditForm'; import { FULLSCREEN_TYPES, SEARCHBOX_TYPES } from '../list'; +import { getServer } from '@/store/slice/server'; +import normalizeUrl from 'normalize-url'; export const InsertCode = memo(props => { const { id, type, enabled } = props; + + const server = useAppSelector(getServer); const widgetType = useMemo(() => { return isFullscreen(type) ? 'fullscreen': 'searchbox' @@ -38,10 +42,10 @@ export const InsertCode = memo(props => { if (!id || !widgetType) return undefined return `
`; - }, [id, widgetType, mode]); + }, [id, widgetType, mode, server]); useEffect(() => { if (copyRef.current) { diff --git a/web/src/pages/integration/modules/Preview.tsx b/web/src/pages/integration/modules/Preview.tsx index 9524d883b..b4c80d907 100644 --- a/web/src/pages/integration/modules/Preview.tsx +++ b/web/src/pages/integration/modules/Preview.tsx @@ -1,5 +1,7 @@ import { Button, Modal } from 'antd'; import './Preview.css'; +import { getServer } from '@/store/slice/server'; +import normalizeUrl from 'normalize-url'; export const Preview = memo(props => { const { children, params = {}, widgetType, mode } = props; @@ -8,6 +10,8 @@ export const Preview = memo(props => { const [isModalOpen, setIsModalOpen] = useState(false); + const server = useAppSelector(getServer); + const showModal = () => { setIsModalOpen(true); }; @@ -38,13 +42,13 @@ export const Preview = memo(props => {
` - }, [params.id, widgetType, mode]); + }, [params.id, widgetType, mode, server]); return ( <> diff --git a/web/src/pages/integration/modules/SearchBoxForm.tsx b/web/src/pages/integration/modules/SearchBoxForm.tsx index 88fc554c6..515cdadad 100644 --- a/web/src/pages/integration/modules/SearchBoxForm.tsx +++ b/web/src/pages/integration/modules/SearchBoxForm.tsx @@ -10,6 +10,8 @@ import { HotKeys } from './HotKeys'; import ChatStartPage from '@/pages/settings/modules/ChatStartPage'; import { SEARCHBOX_TYPES } from '../list'; import AIAssistantSelect from '@/pages/ai-assistant/modules/AIAssistantSelect'; +import { getServer } from '@/store/slice/server'; +import normalizeUrl from 'normalize-url'; export const SearchBoxForm = memo(props => { const { form, record, startPagelogos, setStartPagelogos, assistants, setAssistants, dataSourceLoading, dataSource, enabledList, setEnabledList } = props; @@ -20,6 +22,8 @@ export const SearchBoxForm = memo(props => { const [mode, setMode] = useState(); + const server = useAppSelector(getServer); + useEffect(() => { const mode = record ? SEARCHBOX_TYPES.includes(record?.type) ? record?.type : SEARCHBOX_TYPES[0] @@ -103,7 +107,7 @@ export const SearchBoxForm = memo(props => { className="mb-0px" name={['options', 'embedded_icon']} > - + @@ -129,7 +133,7 @@ export const SearchBoxForm = memo(props => { className="mb-0px" name={['options', 'floating_icon']} > - + diff --git a/web/src/store/slice/server/index.ts b/web/src/store/slice/server/index.ts index 6c92d0f5a..e3f5e0ce5 100644 --- a/web/src/store/slice/server/index.ts +++ b/web/src/store/slice/server/index.ts @@ -25,6 +25,7 @@ export const serverSlice = createSlice({ }, selectors: { getProviderInfo: app => app.providerInfo, + getServer: app => app.providerInfo?.endpoint || `${window.location.origin}${window.location.pathname}` } }); // Action creators are generated for each case reducer function. @@ -35,6 +36,7 @@ export const { // Selectors returned by `slice.selectors` take the root state as their first argument. export const { getProviderInfo, + getServer } = serverSlice.selectors; export const updateRootRouteIfSearch = (providerInfo: any): AppThunk => async dispatch => { From 16aa0a0d5f1f4468441153a941f6e98ff857235b Mon Sep 17 00:00:00 2001 From: cyg Date: Thu, 27 Nov 2025 10:22:21 +0800 Subject: [PATCH 3/6] fix: modify readme for box connector --- plugins/connectors/box/README.md | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/plugins/connectors/box/README.md b/plugins/connectors/box/README.md index c4e03de4a..a70c45a69 100644 --- a/plugins/connectors/box/README.md +++ b/plugins/connectors/box/README.md @@ -16,12 +16,10 @@ Box cloud storage connector is used to index files and folders from Box, support ## Account Types ### Box Free Account -- **Authentication**: OAuth 2.0 with refresh token - **Access Scope**: Current authenticated user's files only - **Required Credentials**: - `client_id` - `client_secret` - - `refresh_token` (obtained via OAuth flow) ### Box Enterprise Account - **Authentication**: OAuth 2.0 client credentials @@ -40,15 +38,8 @@ Box cloud storage connector is used to index files and folders from Box, support | `is_enterprise` | string | Account type: "box_free" or "box_enterprise" | Both | | `client_id` | string | Box application Client ID | Both | | `client_secret` | string | Box application Client Secret | Both | -| `refresh_token` | string | OAuth refresh token | Free Account only | | `enterprise_id` | string | Box Enterprise ID | Enterprise Account only | -### Optional Parameters - -| Parameter | Type | Default | Description | -|-----------|------|---------|-------------| -| `concurrent_downloads` | int | 15 | Maximum concurrent downloads | - ### Sync Configuration | Parameter | Type | Default | Description | @@ -94,8 +85,8 @@ For proper functionality, the Box application needs: ### Method 1: Box Free Account -#### Step 1: Obtain Refresh Token -You need to obtain a refresh token through OAuth flow first (this can be done outside the system or through a separate OAuth setup). +#### Step 1: Obtain client_id and client_secret +You need to obtain a client_id and client_secret through OAuth flow first (this can be done outside the system or through a separate OAuth setup). #### Step 2: Configure Datasource ```json @@ -111,10 +102,8 @@ You need to obtain a refresh token through OAuth flow first (this can be done ou "connector": { "id": "box", "config": { - "is_enterprise": "box_free", "client_id": "your_client_id", "client_secret": "your_client_secret", - "refresh_token": "your_refresh_token" } } } @@ -195,10 +184,8 @@ Box connector preserves the original folder structure: #### Free Account ``` -1. Use refresh_token to get access_token -2. Cache access_token with expiry time -3. Auto-refresh when token expires -4. Update refresh_token if rotated +1. Cache access_token with expiry time +2. Auto-refresh when token expires ``` #### Enterprise Account @@ -231,12 +218,10 @@ For Enterprise accounts: 1. **Authentication Failed** - Verify `client_id` and `client_secret` are correct - Check if Box application is approved and published - - For Free account: Verify `refresh_token` is valid - For Enterprise account: Verify `enterprise_id` is correct 2. **Token Expired** - System automatically refreshes tokens - - Check if refresh_token is still valid (Free account) - Verify application credentials haven't changed 3. **No Files Found** From 2073b1c554d66d76924226f33fd2c413fc2274b3 Mon Sep 17 00:00:00 2001 From: cyg Date: Fri, 28 Nov 2025 10:57:55 +0800 Subject: [PATCH 4/6] fix: change box icon --- .../assets/icons/connector/box/icon.png | Bin 6107 -> 3714 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/web/public/assets/icons/connector/box/icon.png b/web/public/assets/icons/connector/box/icon.png index 923459a2c5df523aa135b7c2816c83b163c00de7..13878681849fbbd19488053d4fa8385052b5c6d8 100644 GIT binary patch literal 3714 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 literal 6107 zcmY*-Wmp{B67Ap)0|a+>_rWzd1j3*RkU$u8@WEX}aF;-U;O;I#LU5PC-8~5s?2&WN zyZ61_Uv;frz1FH-{iA<$q_*Zu987Xd004laqO73voMrw7I_mSi)Y@tFIU%^{yp#h} zj!_;wZ$c~$R6b~E0N9@~IsgTM0D$zD@_Ydh$N?z-U;scBf#Sbd2Z8lp4k7>$ZVf>G zmt*vt|1Ra{cvkYfvZqq3n30DwjKHxK|BS)|Wy zhSskQTn#kTLGPjV+~yY0cb429_Kts500|G!GqksKHK+Bkw{vg-c}UX#!vHD7l!|s{9hjhOPBY~){d^$PzTz-zUJ?s zZmyE_^nV-ucm3y_uGSy^*U7=<-?5$tXs3e-87XN&l%nk1B;J!SmnOCWT4%b^{FnAc|5^kbUieaFS^qN2HfB zFg|*Hs3$916Z!F&_QxUO=@fci{>hY*7Iys#)e6ECh;W6E@TXKnWLlqguC@TF{`_=HqZouP?A@=ngH{A%1l4&FhY_3$in{9a&>39ZpCF> zQe-&Y>?CHmoL~*g4VrI%3f0K$8Z>$%Hsjk1jptg*5`pTcyKtQ^_PK@nR(sEgWSy~l z$7^H>QX<@cPR~?6U`2L{Rdf$bhs}c5*28}|_fMwSw)f@TI~K}(%NUnlqeL`_BppMH z;LM?U@1zCa#8izPRsHir}xkfi09V0vSNCK{uQspe|%uc0qz8rB&7guYV2GjP)Q3$8F818~$Y{ z*W-Q;5j80$c05A{vW^oQ)lOAPs9|es5e|jc4)Jnx7$ik;o`NiocqG3G|2YaBx$cx) zw)04U?X&A~l8{trAJn_0;sMiVC-d(6Z@#12wiVvlMt6AmC;A#)HClsXt81wo-Z2OQ z1gBYp=ln0gc2e`3kX*$Jov1CMT}%>RE=2yU9{tFwrjMo$p@$1|LB;Qpg$=nvto6~DwN>Rj@YUC`@XqZRSri{HmdtFWI6IP~47q z{hNet_Uu;L89d9jI~2b@)f!frS}7i7y%ugd0@ZgCbL1$bBMV~h{-(I_Lyf3jJ!;adi%N%ErPLs5Z|q871zM zBWLi6!)>8u%1eJD4>s6}DjLQYyohfLHB#m6Oh4H)}lR6qK0Chg2t)gS3kRcGuW^W%bxb+_6RWoLIs!<*#Ws(%ejw5#dDt*bMRiWQzk|`*6Uzi)Mfc{1kRe_N;5}oTS&bDD ztN89)oFoF5Y}q%s0%~cMvsa#o@r6n)YC8h7UJY*WWR?7+{lZHK=^cutntWTv4&&&b zRiE@~Y7g0@Rmd_#v^+VoKJ10-X$b(4>EuM(NX7ZI8AGw2Ro zI5lOC-6gcfbx3bdT#42*M9oE7qO7c()PkN_+Kv=Ot;Ipm`b~^>*X_NI<4VxgfZmb~ z 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 P!>yvIsZc3r7W97rl Date: Mon, 1 Dec 2025 14:30:34 +0800 Subject: [PATCH 5/6] feat: box connector --- .../connector/box/assets/screenshot.png | Bin 0 -> 438350 bytes .../infinilabs/connector/box/plugin.json | 75 ++++++++++++ .../docs/references/connectors/box.md | 107 +++++++++++------- 3 files changed, 139 insertions(+), 43 deletions(-) create mode 100644 config/store/infinilabs/connector/box/assets/screenshot.png create mode 100644 config/store/infinilabs/connector/box/plugin.json diff --git a/config/store/infinilabs/connector/box/assets/screenshot.png b/config/store/infinilabs/connector/box/assets/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0b5e021fc66e20df1d977c2c6b8032a0614eb8 GIT binary patch literal 438350 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 z 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 z z=3RB}jB~Z=E!3Z06cPR@c3rk6meF5F$Cz}lt^HO5%Z1Dre|`J^3Dw-kU1xKGn7qNKy5=WrYaJT&jDX=j@1a?(%MKEW}z(!Y1Ge335&QhE6;fA;vP zDopS%HoFgHWJa)>Jmr`8DbfL!O7r#6-)<+y8K)l(iWNAahn@$ga%hr`KS=GB>BLnW zh<&q(S4m(T>Ds)b&c;pTTE6OfI}<%UvvL{e=ADzqc{)^|4q+UEB^;_jL9O!XNz z0(mD92Hdi}zIK*v@vfq0>5_bZ2f4Cr>?hq{=&W|`|5^2=BqF^)A(cf#>Qk7Sd4oZi z)Rl*~1ZH`!MZAoqVmz_Mkm@4%P+e2xLP9|i+`Y$-qZ7+b4nOi{hWrgL5ak{h-H9UK zZ`4^jzo5Z2w?p|RS(7yiAQzON2ZL6JDW^IU^tWow*RUZBgVwjrgX9wKQHp?x$J*A~QP0L<&DWU~eB(A~t&3u0zT$NGcv3)tdr&UxfEgFFc0A=fmOH5N6oU zuMb{#;TGvuYA%+!DF$Qo{Wkc{VO6uV>W(SZH0VEUUD98R!>N2YmAD%sf$sghXcn`s!Oa_o`U@-XaJGN>6e$}v#`uZOxP@5P z0{r>^eqy>JPIDaRE{Y-+sQzo?%J}|NV;okOU*MI`<7TJxUO746lgd;jQVpH*w}=Er zr_KDWaB)8!2@N#{Lw*5)S0f#1#Ri6wC~fPZeWlQ9aXi4&7Qo(93lOO>cSRUe&}{vj#Q|G7NpD3=Bnp1Myz0|M8x`b70-42=n6t zgy34m`?QL0I&G`)3({S2G109{kKg<64~rqUDG3D=z6D(7`kEdl+M1_KOwLrsq=+H2 z)ZFkUC8=^;=4_d=n=V|Ve1e8WHtH<5chw;IQ
*?cYHBkZ@NYG1)0XWsuJL=h`S- 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

|q6fpqG@DMAlZJ(hUh>7vDWf$O_1VvN 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 f%>UmB3)L **⚠️ Important**: Before you can use the Box connector, you must configure the following required parameters based on your account type: > > **For Box Free Account:** -> - `is_enterprise`: Set to "box_free" +> - `is_enterprise`: Set to "box_free" (or omit, defaults to "box_free") > - `client_id`: OAuth2 client ID from your Box application > - `client_secret`: OAuth2 client secret from your Box application -> - `refresh_token`: OAuth refresh token (obtained through OAuth flow) +> - `refresh_token`: **Automatically obtained and saved by backend through OAuth flow - you do NOT need to configure this manually** > > **For Box Enterprise Account:** > - `is_enterprise`: Set to "box_enterprise" @@ -140,27 +148,16 @@ For proper functionality, the Box application needs: #### Box Free Account Example -```shell -curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasource/" -d '{ - "name": "My Box Files", - "type": "connector", - "enabled": true, - "connector": { - "id": "box", - "config": { - "is_enterprise": "box_free", - "client_id": "your_client_id", - "client_secret": "your_client_secret", - "refresh_token": "your_refresh_token", - "concurrent_downloads": 15 - } - }, - "sync": { - "enabled": true, - "interval": "30s" - } -}' -``` +**Using OAuth Flow (Required)** + +1. Configure the connector with `client_id` and `client_secret` in connector settings +2. Use the OAuth flow via UI: Navigate to connector detail page and click "Connect" +3. The backend will automatically: + - Exchange authorization code for access and refresh tokens + - Save `refresh_token` to the datasource configuration + - Create the datasource with proper configuration + +> **Note**: For Free Account, `refresh_token` is **automatically obtained and saved by the backend** through the OAuth flow. You do NOT need to manually configure or provide `refresh_token`. Simply use the OAuth flow via the UI. #### Box Enterprise Account Example @@ -193,7 +190,7 @@ curl -H 'Content-Type: application/json' -XPOST "http://localhost:9000/datasourc | `is_enterprise` | `string` | Account type: "box_free" or "box_enterprise" | Yes | Both | | `client_id` | `string` | Box application Client ID | Yes | Both | | `client_secret` | `string` | Box application Client Secret | Yes | Both | -| `refresh_token` | `string` | OAuth refresh token (for Free account) | Yes | Free only | +| `refresh_token` | `string` | OAuth refresh token (automatically obtained and saved by backend via OAuth flow - **do NOT configure manually**) | Auto-managed | Free only | | `enterprise_id` | `string` | Box Enterprise ID (for Enterprise account) | Yes | Enterprise only | | `concurrent_downloads` | `int` | Maximum concurrent downloads (default: 15) | No | Both | | `sync.enabled` | `boolean` | Enable/disable syncing for this datasource | No | Both | @@ -290,14 +287,14 @@ The connector extracts comprehensive metadata: ### Common Issues 1. **Authentication Failed** - - **Free Account**: Verify `client_id`, `client_secret`, and `refresh_token` are correct + - **Free Account**: Verify `client_id` and `client_secret` are correct. Ensure OAuth flow completed successfully (backend automatically saves `refresh_token`). - **Enterprise Account**: Verify `client_id`, `client_secret`, and `enterprise_id` are correct - Check if Box application is approved and published - Ensure application has required scopes 2. **Token Expired** - System automatically refreshes tokens - - **Free Account**: Check if refresh_token is still valid + - **Free Account**: If refresh_token is invalid, re-run OAuth flow to obtain a new one - **Enterprise Account**: Verify application credentials haven't changed - Review token expiry settings @@ -332,16 +329,18 @@ Use logs to quickly identify and resolve issues. ## Notes -1. **Account Type Selection**: Must specify either "box_free" or "box_enterprise" +1. **Account Type Selection**: Must specify either "box_free" or "box_enterprise" (defaults to "box_free" if not specified) 2. **Different Credentials**: Free and Enterprise accounts require different configuration -3. **Refresh Token Requirement**: Free accounts must have a valid refresh_token -4. **Enterprise ID Requirement**: Enterprise accounts must have a valid enterprise_id -5. **Multi-User Automatic**: Enterprise accounts automatically fetch files from all users -6. **Token Auto-Refresh**: All tokens are automatically managed and refreshed -7. **Content Extraction**: File content extraction is handled by coco-server framework -8. **API Rate Limits**: Be aware of Box API rate limits (typically 1000 requests/minute) -9. **File Size Limits**: Large files may be excluded based on framework configuration -10. **Hierarchical Path**: Connector preserves original folder structure with `/` as root +3. **OAuth Flow Required**: Free accounts **must** use the built-in OAuth flow via UI endpoints - backend automatically obtains and saves `refresh_token`. You do NOT need to manually configure `refresh_token`. +4. **No Manual Token Configuration**: For Free accounts, `refresh_token` is completely managed by the backend - you never need to provide or configure it manually +5. **Enterprise ID Requirement**: Enterprise accounts must have a valid enterprise_id +6. **Multi-User Automatic**: Enterprise accounts automatically fetch files from all users +7. **Token Auto-Refresh**: All tokens are automatically managed and refreshed +8. **Content Extraction**: File content extraction is handled by coco-server framework +9. **API Rate Limits**: Be aware of Box API rate limits (typically 100 requests/minute) +10. **File Size Limits**: Large files may be excluded based on framework configuration +11. **Hierarchical Path**: Connector preserves original folder structure with `/` as root +12. **Path Hierarchy**: Set to `false` - connector uses category hierarchy instead of path hierarchy ## API Endpoints Used @@ -356,3 +355,25 @@ The connector uses the following Box API endpoints: All API calls include automatic retry on 401 errors and support for the `as-user` header in Enterprise accounts. +## OAuth Flow (Free Account) + +The Box connector provides built-in OAuth flow for Free accounts. **This is the only way to set up a Free Account datasource.** + +### Setup Steps: + +1. **Configure Connector**: Set `client_id` and `client_secret` in connector settings +2. **Initiate OAuth**: Navigate to connector detail page and click "Connect" or visit `/connector/{connector_id}/box/connect` +3. **Authorize**: You will be redirected to Box authorization page to authorize the application +4. **Automatic Setup**: Backend automatically: + - Exchanges authorization code for access and refresh tokens + - Saves `refresh_token` to datasource configuration (you don't need to do anything) + - Creates datasource with proper configuration + - Caches authenticated client for future use + +> **Important**: You do NOT need to manually configure `refresh_token`. The backend handles everything automatically through the OAuth flow. + +### OAuth Endpoints: + +- `GET /connector/:id/box/connect` - Initiates OAuth flow +- `GET /connector/:id/box/oauth_redirect` - Handles OAuth callback + From c21b016ed3806efc84fade4d890912caed9e1815 Mon Sep 17 00:00:00 2001 From: Medcl Date: Tue, 2 Dec 2025 15:43:58 +0800 Subject: [PATCH 6/6] Change Box Connector registration command to POST Updated the registration command for the Box Connector to use POST instead of PUT and removed the note about the unique identifier. --- docs/content.en/docs/references/connectors/box.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/content.en/docs/references/connectors/box.md b/docs/content.en/docs/references/connectors/box.md index b868ad80c..8ca1a849b 100644 --- a/docs/content.en/docs/references/connectors/box.md +++ b/docs/content.en/docs/references/connectors/box.md @@ -8,7 +8,7 @@ weight: 65 ## Register Box Connector ```shell -curl -XPUT "http://localhost:9000/connector/box?replace=true" -d '{ +curl -XPOST "http://localhost:9000/connector/" -d '{ "name": "Box Cloud Storage Connector", "description": "Index files and folders from Box, supporting both Free and Enterprise accounts with multi-user access.", "icon": "/assets/icons/connector/box/icon.png", @@ -45,8 +45,6 @@ curl -XPUT "http://localhost:9000/connector/box?replace=true" -d '{ }' ``` -> Use `box` as a unique identifier, as it is a builtin connector. - ## Use the Box Connector The Box Connector allows you to index files and folders from Box cloud storage with support for both Free and Enterprise accounts.