Box connection
To access your data in Box, create a connection asset for it.
The Box platform is a cloud content management and file sharing service.
Prerequisite: Create a custom app in Box
Before you create a connection to Box, you create a custom app in the Box Developer Console. You can create an app for application-level access that users can use to share files, or you can create an app for enterprise-wide access to all user accounts. With enterprise-wide access, users do not need to share files and folders with the application.
-
Go to the Box Developer Console, and follow the wizard to create a Custom App. For the Authentication Method, select
OAuth 2.0 with JWT (Server Authentication)
. -
Make the following selections in the Configuration page. Otherwise, keep the default settings.
- Select one of two choices for App Access Level:
- Keep the default App Access Only selection to allow access where users share files.
- Select App + Enterprise Access to create an app with enterprise-wide access to all user accounts.
- Under Add and Manage Public Keys, click Generate a Public/Private Keypair. This selection requires that two-factor authentication is enabled on the Box account, but you can disable it afterward. The generated
key pair produces a config (
*_config.json
) file for you to download. You will need the information in this file to create the connection in Watson Studio.
-
If you selected an App + Enterprise Access, under Advanced Features, select both of these check boxes:
- Make API calls using the as-user header
- Generate user access tokens
-
Submit the app client ID to the Box enterprise administrator for authorization: Go to your application in the Box Developer Console and select the General link from the left sidebar in your application. Scroll down to the App Authorization section.
Create the Box connection
In a project
- From the project page, go to New asset > Connection, then select the Box connection.
- Enter the values from the downloaded config file for these settings:
- Client ID
- Client Secret
- Enterprise ID
- Private Key (Replace each
\n
with a newline) - Private Key Password (The
passphrase
value in the config file) - Public Key (The
publicKeyID
value in the config file)
For Credentials, you can use secrets if a vault is configured for the platform and the service supports vaults. For information, see Using secrets from vaults in connections.
Enterprise-wide app
If you configured an enterprise-wide access app, enter the username of the Box user account in the Username field.
Application-level app
Users must explicitly share their files with the app's email address in order for the app to access the files.
-
Make a REST call to the connection to find out the app email address. For example:
PUT https://api.dataplatform.cloud.ibm.com/v2/connections/{connection_id}/actions/get_user_info?project_id={project_id}
Request body:
{}
Returns:
{ "login_name": "AutomationUser_123467_aBcDEFg12h@boxdevedition.com" }
-
Share the files and folders in Box that you want accessible from Watson Studio with the login name that was returned by the REST call.
Next step: Add data assets from the connection
Where you can use this connection
You can use the Box connection in the following workspaces and tools:
Projects
- Data Refinery (Watson Studio or Watson Knowledge Catalog)
- DataStage (DataStage service). See Connecting to a data source in DataStage.
- Metadata enrichment (Watson Knowledge Catalog)
- Metadata import (Watson Knowledge Catalog)
- SPSS Modeler (SPSS Modeler service)
Catalogs
- Platform assets catalog
- Other catalogs (Watson Knowledge Catalog)
Limitation
If you have thousands of files in a Box folder, the connection might not be able to retrieve the files before a time-out. Jobs or profiling that use the Box files might not work.
Workaround: Reorganize the file hierarchy in Box so that there are fewer files in the same folder.
Supported file types
The Box connection supports these file types: Avro, CSV, Delimited text, Excel, JSON, ORC, Parquet, SAS, SAV, SHP, and XML.
Learn more
Parent topic: Supported connections