Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt

Use this file to discover all available pages before exploring further.

This guide covers setting up Hybrid VPC with Box as your storage backend. Reducto uses a Box enterprise application with Client Credentials Grant (CCG) to read and write documents in your Box environment. This integration is ideal for organizations that already manage documents in Box and want to process them with Reducto without moving data to a separate object store.

Prerequisites

  • Box Enterprise account with admin access
  • Box Developer Console access for creating custom apps
  • Values provided during onboarding from Reducto (Organization ID)

Architecture

Setup

1

Create a Box Custom Application

  1. Go to the Box Developer Console
  2. Click Create New AppCustom App
  3. Select Server Authentication (Client Credentials Grant) as the authentication method
  4. Name the app (e.g., “Reducto Integration”)
  5. Click Create App
2

Configure app permissions

In the app’s Configuration tab:
  1. Under Application Scopes, enable:
    • Read all files and folders stored in Box
    • Write all files and folders stored in Box
  2. Under App Access Level, select App + Enterprise Access
  3. Click Save Changes
3

Authorize the app in Admin Console

  1. Go to Box Admin ConsoleAppsCustom Apps
  2. Click Add App
  3. Enter the Client ID from your app’s Configuration tab
  4. Click Authorize
This step requires Box Enterprise Admin privileges. If you’re not an admin, ask your Box admin to authorize the app.
4

Create a dedicated folder

Create a folder in Box for Reducto to use:
  1. In Box, create a new folder (e.g., “Reducto Processing”)
  2. Note the Folder ID from the URL (e.g., https://app.box.com/folder/123456789 → folder ID is 123456789)
  3. Ensure the service account (created automatically with your app) has access to this folder
If you want Reducto to access the root of the enterprise, use folder ID 0. For better isolation, we recommend creating a dedicated folder.
5

Share credentials with Reducto

From the app’s Configuration tab, securely share:
ValueWhere to find
Client IDConfiguration → OAuth 2.0 Credentials
Client SecretConfiguration → OAuth 2.0 Credentials
Enterprise IDGeneral Settings → Enterprise ID (or Admin Console → Account & Billing)
Folder IDURL of the target folder in Box

Integration Values

ValueDescription
client_idBox app OAuth 2.0 Client ID
client_secretBox app OAuth 2.0 Client Secret
enterprise_idYour Box Enterprise ID
folder_idTarget folder ID for document storage (use 0 for root)

How It Works

  1. Authentication: Reducto authenticates using Client Credentials Grant (CCG) — no user interaction required. The app’s service account gets an access token automatically.
  2. Document storage: Files are stored in the configured Box folder using the processing key as the filename. Reducto creates, reads, and deletes files as needed during processing.
  3. Result access: Processing results are written back to Box. You can access them via shared links (similar to presigned URLs) or by browsing the folder in Box.

Data Lifecycle

Box does not have built-in lifecycle expiration like S3 or Azure. To manage data retention:
Box Enterprise supports retention policies that can auto-delete content after a specified period. Set up a retention policy on the Reducto folder.
Periodically review and delete files from the Reducto folder. Not recommended for production use.

Security

  • No user credentials required: CCG authentication uses app-level credentials, not user passwords
  • Scoped access: The app can be restricted to specific folders using Box’s collaboration model
  • Enterprise admin approval: The app must be explicitly authorized by a Box admin
  • Audit trail: Box provides detailed audit logs of all file access and modifications
  • Credential rotation: Client Secret can be rotated in the Box Developer Console without downtime

Limitations

LimitationImpactMitigation
No Terraform providerSetup is manual (not automated via IaC)Documented step-by-step process above
Rate limitsBox API has more aggressive rate limits than S3/AzureReducto handles rate limiting and retries automatically
File-based APIBox uses file/folder hierarchy, not flat key-valueReducto maps keys to filenames transparently
No native lifecycle expiryUnlike S3, no automatic per-object TTLUse Box retention policies or Reducto-managed cleanup

Troubleshooting

Verify that:
  1. The app is authorized in the Box Admin Console
  2. The service account has collaborator access to the target folder
  3. The app scopes include read and write permissions
Reducto handles rate limiting automatically with exponential backoff. If you see persistent rate limit errors, contact Reducto support — we may need to adjust concurrency settings for your account.
Files created by the service account are owned by that account. To view them in the Box web UI, add yourself as a collaborator on the Reducto folder, or use the service account’s credentials to browse.