Latest version: v2.2.0 Compatible with Fusion version: 5.9.4 and later
The Box V2 connector retrieves data from a Box.com cloud-based data repository. To fetch content from multiple Box users, you must configure a Box.com datasource. For limited testing using a single user account, you can configure Box.com tokens. Connector flow

Prerequisites

Perform these prerequisites to ensure the connector can reliably access, crawl, and index your data. Proper setup helps avoid configuration or permission errors, so use the following guidelines to keep your content available for discovery and search in Fusion. Configure the Box app and authentication:
  • To crawl multiple users’ content, create a Box app configured for OAuth 2.0 with JWT.
  • For single users, you may use a Box app with standard OAuth 2.0 credentials.
Confirm network connectivity:
  • Fusion must be able to reach the Box APIs over HTTPS. If running the connector remotely, you also need to allow HTTP/2 (gRPC) egress from your network into your Fusion cluster.
Remote-connector setup if running as an on-prem process:
  • A Fusion user with the remote-connectors or admin role for gRPC authentication.
  • The connector-plugin-standalone.jar alongside the plugin ZIP on the remote host.
  • A configured connector backend gRPC endpoint (hostname:port) in your YAML.
  • If the remote host doesn’t trust Fusion’s TLS cert, point to a truststore file path in your config.
Configure Remote V2 Connectors provides complete instructions for remote connector setup.

Authentication

Setting up the correct authentication according to your organization’s data governance policies helps keep sensitive data secure while allowing authorized indexing. The Box.com V2 connector supports two OAuth-based schemes:
  • OAuth 2.0 for single-user access
  • JWT service account for enterprise-wide crawling
After deciding which authentication type you require, read below to learn more about implementing it.

Standard OAuth 2.0 user authentication for single-user testing

For limited or single account crawls, you can create a Box app with the standard OAuth 2.0 “User Authentication” flow. See the Box documentation for additional guidance. In Fusion, you then add the:
  • API key using the Box client ID.
  • API secret using the Box client secret.
  • Refresh token as obtained through the OAuth consent flow.
Fusion will use these credentials to fetch and refresh an access token for the Box user.

JWT server authentication for enterprise-wide crawls

To fetch content from multiple Box users, you must register a Box app and enable JWT authentication. See the Box documentation for additional guidance. In Fusion, you then add the following:
  • App Entity ID using the Box app entity ID
  • Public Key ID using the Box public key ID
  • Private Key (Base64) using the Box private key in Base64
  • Private Key Password
  • Encryption Algorithm, such as RSA_SHA_256
  • Account Type as either USER or ENTERPRISE
Fusion will use the JWT to obtain “As-User” tokens, allowing it to crawl data while respecting each user’s permissions and access rights.
ImportantThe v2.2.0 version of this connector is only compatible with Fusion 5.9.4 and later when using security trimming. The v2.2.0 connector version uses Graph Security Trimming and not regular security trimming. It is imperative to treat this as a new connector, as configurations do not transfer over due to disparities between newer versions and previous ones. A full crawl is mandatory.

Remote connectors

V2 connectors support running remotely in Fusion versions 5.7.1 and later.
Below is an example configuration showing how to specify the file system to index under the connector-plugins entry in your values.yaml file:
additionalVolumes:
- name: fusion-data1-pvc
    persistentVolumeClaim:
    claimName: fusion-data1-pvc
- name: fusion-data2-pvc
    persistentVolumeClaim:
    claimName: fusion-data2-pvc
additionalVolumeMounts:
- name: fusion-data1-pvc
    mountPath: "/connector/data1"
- name: fusion-data2-pvc
    mountPath: "/connector/data2"
You may also need to specify the user that is authorized to access the file system, as in this example:
securityContext:
    fsGroup: 1002100000
    runAsUser: 1002100000

Configuration

When entering configuration values in the UI, use unescaped characters, such as \t for the tab character. When entering configuration values in the API, use escaped characters, such as \\t for the tab character.