box
Latest release
- conduit-connector-box_0.1.1_Darwin_arm64.tar.gz
- conduit-connector-box_0.1.1_Darwin_x86_64.tar.gz
- conduit-connector-box_0.1.1_Linux_arm64.tar.gz
- conduit-connector-box_0.1.1_Linux_i386.tar.gz
- conduit-connector-box_0.1.1_Linux_x86_64.tar.gz
- conduit-connector-box_0.1.1_Windows_arm64.tar.gz
- conduit-connector-box_0.1.1_Windows_i386.tar.gz
- conduit-connector-box_0.1.1_Windows_x86_64.tar.gz
Description
Destination
The Box Destination takes a Conduit record and uploads it to the remote Box directory.
Create, Update and Snapshot Operations
The Box destination connector uploads the records in 3 different ways.
- For a file which is ≤ 4MB, it uploads the single record file using a single
POST /files/content
. - For a file which is ≥ 4MB and ≤ 20MB, it assembles the file in memory. Once
the file is fully assembled, it uploads it using a single
POST /files/content
request. - For a file which is > 20MB, it uploads the file using chunk upload endpoint. It first creates a new session for chunk upload which gives session id and part size in response. Using this session id and part size the records are then uploaded. It prepares the parts by keeping them in memory and upload the parts one by one using chunk upload endpoint.
Delete Operation
An OpenCDC record with the delete
operation is processed so that the file
that's found in the opencdc.file.name
metadata field is deleted.
Generating an Access Token
The destination connector requires a token so it can authenticate with the Box.com HTTP API. To generate it, please follow the steps below.
Step 1: Access the Box Developer Console
- Navigate to https://app.box.com/developers/console.
- Sign in using your Box.com credentials.
Step 2: Create a New App
- In the Box Developer Console, click Create Platform App.
- Choose Custom App as the app type.
- Select User Authentication (OAuth 2.0) as the authentication method.
- Enter your app details:
- App Name: Use a descriptive name (e.g., Conduit Box Connector Prod).
- Description: Provide a brief explanation of your app's purpose.
- Purpose: Describe the app's purpose. This field is informational only and does not affect connector functionality.
- Click Create App.
Step 3: Configure App Settings
- On your app's configuration page, go to the Configuration tab.
- Under Application Scopes, enable:
- Read all files and folders stored in Box
Step 4: Obtain an Access Token
- In the Developer Token section, click Generate Developer Token.
- Copy the generated token for use.
Token Management
You can store the access token in one of the following ways:
- As a plain string in a configuration file
- As an environment variable
Source Parameters
Connector box does not implement a source.
Destination Parameters
version: 2.2
pipelines:
- id: example
status: running
connectors:
- id: example-destination
type: destination
plugin: "box"
name: example-destination
settings:
# Token used to authenticate API access.
# Type: string
token: ""
# ID of the Box directory to read/write files. Default is 0 for the
# root directory.
# Type: string
parentID: "0"
# Maximum delay before an incomplete batch is written to the
# destination.
# Type: duration
sdk.batch.delay: "0"
# Maximum size of batch before it gets written to the destination.
# Type: int
sdk.batch.size: "0"
# Allow bursts of at most X records (0 or less means that bursts are
# not limited). Only takes effect if a rate limit per second is set.
# Note that if `sdk.batch.size` is bigger than `sdk.rate.burst`, the
# effective batch size will be equal to `sdk.rate.burst`.
# Type: int
sdk.rate.burst: "0"
# Maximum number of records written per second (0 means no rate
# limit).
# Type: float
sdk.rate.perSecond: "0"
# The format of the output record. See the Conduit documentation for a
# full list of supported formats
# (https://conduit.io/docs/using/connectors/configuration-parameters/output-format).
# Type: string
sdk.record.format: "opencdc/json"
# Options to configure the chosen output record format. Options are
# normally key=value pairs separated with comma (e.g.
# opt1=val2,opt2=val2), except for the `template` record format, where
# options are a Go template.
# Type: string
sdk.record.format.options: ""
# Whether to extract and decode the record key with a schema.
# Type: bool
sdk.schema.extract.key.enabled: "true"
# Whether to extract and decode the record payload with a schema.
# Type: bool
sdk.schema.extract.payload.enabled: "true"