watermint toolbox - The multi-purpose utility command-line tool for web services

dropbox team runas file sync batch up

Upload multiple local files to team members’ Dropbox accounts in batch, running as those members (Irreversible operation)

Admin bulk upload tool for distributing files to multiple member accounts simultaneously. Ideal for deploying templates, policies, or required documents. Maintains consistent file distribution across teams. All uploads are tracked for compliance.

Security

watermint toolbox stores credentials into the file system. That is located at below path:

OS Path
Windows %HOMEPATH%\.toolbox\secrets (e.g. C:\Users\bob.toolbox\secrets)
macOS $HOME/.toolbox/secrets (e.g. /Users/bob/.toolbox/secrets)
Linux $HOME/.toolbox/secrets (e.g. /home/bob/.toolbox/secrets)

Please do not share those files to anyone including Dropbox support. You can delete those files after use if you want to remove it. If you want to make sure removal of credentials, revoke application access from setting or the admin console.

Please see below help article for more detail:

  • Dropbox for teams: https://help.dropbox.com/installs-integrations/third-party/business-api#manage

Auth scopes

Description
Dropbox for teams: View content of your Dropbox files and folders
Dropbox for teams: Edit content of your Dropbox files and folders
Dropbox for teams: View your team membership
Dropbox for teams: View structure of your team’s and members’ folders
Dropbox for teams: View basic information about your team including names, user count, and team settings

Authorization

For the first run, tbx will ask you an authentication with your Dropbox account. Please copy the link and paste it into your browser. Then proceed to authorization. After authorization, Dropbox will show you an authorization code. Please copy that code and paste it to the application.


watermint toolbox xx.x.xxx
==========================

© 2016-2025 Takayuki Okazaki
Licensed under open source licenses. Use the `license` command for more detail.

1. Visit the URL for the auth dialogue:

https://www.dropbox.com/oauth2/authorize?client_id=xxxxxxxxxxxxxxx&response_type=code&state=xxxxxxxx

2. Click 'Allow' (you might have to login first):
3. Copy the authorization code:
Enter the authorization code

Installation

Please download the pre-compiled binary from Latest Release. If you are using Windows, please download the zip file like tbx-xx.x.xxx-win.zip. Then, extract the archive and place tbx.exe on the Desktop folder. The watermint toolbox can run from any path in the system if allowed by the system. But the instruction samples are using the Desktop folder. Please replace the path if you placed the binary other than the Desktop folder.

Usage

This document uses the Desktop folder for command example.

Run

Windows:

cd $HOME\Desktop
.\tbx.exe dropbox team runas file sync batch up -file /PATH/TO/DATA_FILE.csv

macOS, Linux:

$HOME/Desktop/tbx dropbox team runas file sync batch up -file /PATH/TO/DATA_FILE.csv

Note for macOS Catalina 10.15 or above: macOS verifies Developer identity. Currently, tbx is not ready for it. Please select “Cancel” on the first dialogue. Then please proceed “System Preference”, then open “Security & Privacy”, select “General” tab. You may find the message like:

“tbx” was blocked from use because it is not from an identified developer.

And you may find the button “Allow Anyway”. Please hit the button with your risk. At second run, please hit button “Open” on the dialogue.

Options:

-base-path
Choose the file path standard. This is an option for Dropbox for Teams in particular. If you are using the personal version of Dropbox, it basically doesn’t matter what you choose. In Dropbox for Teams, if you select home in the updated team space, a personal folder with your username will be selected. This is convenient for referencing or uploading files in your personal folder, as you don’t need to include the folder name with your username in the path. On the other hand, if you specify root, you can access all folders with permissions. On the other hand, when accessing your personal folder, you need to specify a path that includes the name of your personal folder.. Options: root (Full access to all folders with permissions), home (Access limited to personal home folder). Default: root
-batch-size
Batch commit size. Default: 250
-delete
Delete Dropbox file if a file is removed locally. Default: false
-exit-on-failure
Exit the program on failure. Default: false
-file
Path to data file
-name-disable-ignore
Name for the sync batch operation. Filter system file or ignore files.
-name-name
Name for the sync batch operation. Filter by exact match to the name.
-name-name-prefix
Name for the sync batch operation. Filter by name match to the prefix.
-name-name-suffix
Name for the sync batch operation. Filter by name match to the suffix.
-overwrite
Overwrite existing files if they exist.. Default: false
-peer
Account alias. Default: default

Common options:

-auth-database
Custom path to auth database (default: $HOME/.toolbox/secrets/secrets.db)
-auto-open
Auto open URL or artifact folder. Default: false
-bandwidth-kb
Bandwidth limit in K bytes per sec for upload/download content. 0 for unlimited. Default: 0
-budget-memory
Memory budget (limits some feature to reduce memory footprint). Options: low, normal. Default: normal
-budget-storage
Storage budget (limits logs or some feature to reduce storage usage). Options: low, normal, unlimited. Default: normal
-concurrency
Maximum concurrency for running operation. Default: Number of processors
-debug
Enable debug mode. Default: false
-experiment
Enable experimental feature(s).
-extra
Extra parameter file path
-lang
Display language. Options: auto, en, ja. Default: auto
-output
Output format (none/text/markdown/json). Options: text, markdown, json, none. Default: text
-output-filter
Output filter query (jq syntax). The output of the report is filtered using jq syntax. This option is only applied when the report is output as JSON.
-proxy
HTTP/HTTPS proxy (hostname:port). Please specify DIRECT if you want to skip setting proxy.
-quiet
Suppress non-error messages, and make output readable by a machine (JSON format). Default: false
-retain-job-data
Job data retain policy. Options: default, on_error, none. Default: default
-secure
Do not store tokens into a file. Default: false
-skip-logging
Skip logging in the local storage. Default: false
-verbose
Show current operations for more detail.. Default: false
-workspace
Workspace path

File formats

Format: File

Mapping of local files to Dropbox paths for batch upload.

Column Description Example
member_email Email address of the Dropbox team member. user@example.com
local_path Local file path to upload. /Users/alice/Documents/file.txt
dropbox_path Destination path in Dropbox. /Team Folder/Project/file.txt

The first line is a header line. The program will accept a file without the header.

member_email,local_path,dropbox_path
user@example.com,/Users/alice/Documents/file.txt,/Team Folder/Project/file.txt

Results

Report file path will be displayed last line of the command line output. If you missed the command line output, please see path below. [job-id] will be the date/time of the run. Please see the latest job-id.

OS Path pattern Example
Windows %HOMEPATH%\.toolbox\jobs\[job-id]\reports C:\Users\bob.toolbox\jobs\20190909-115959.597\reports
macOS $HOME/.toolbox/jobs/[job-id]/reports /Users/bob/.toolbox/jobs/20190909-115959.597/reports
Linux $HOME/.toolbox/jobs/[job-id]/reports /home/bob/.toolbox/jobs/20190909-115959.597/reports

Report: deleted

Path The command will generate a report in three different formats. deleted.csv, deleted.json, and deleted.xlsx.

Column Description
entry_path Path
entry_shard.file_system_type File system type
entry_shard.shard_id Shard ID
entry_shard.attributes Shard attributes

If you run with -budget-memory low option, the command will generate only JSON format report.

In case of a report becomes large, a report in .xlsx format will be split into several chunks like follows; deleted_0000.xlsx, deleted_0001.xlsx, deleted_0002.xlsx, …

Report: operation_log

This report shows the transaction result. The command will generate a report in three different formats. operation_log.csv, operation_log.json, and operation_log.xlsx.

Column Description
status Status of the operation
reason Reason of failure or skipped operation
input.member_email Email address of the Dropbox team member.
input.local_path Local file path to upload.
input.dropbox_path Destination path in Dropbox.

If you run with -budget-memory low option, the command will generate only JSON format report.

In case of a report becomes large, a report in .xlsx format will be split into several chunks like follows; operation_log_0000.xlsx, operation_log_0001.xlsx, operation_log_0002.xlsx, …

Report: skipped

This report shows the transaction result. The command will generate a report in three different formats. skipped.csv, skipped.json, and skipped.xlsx.

Column Description
status Status of the operation
reason Reason of failure or skipped operation
input.entry_path Path
input.entry_shard.file_system_type File system type
input.entry_shard.shard_id Shard ID
input.entry_shard.attributes Shard attributes

If you run with -budget-memory low option, the command will generate only JSON format report.

In case of a report becomes large, a report in .xlsx format will be split into several chunks like follows; skipped_0000.xlsx, skipped_0001.xlsx, skipped_0002.xlsx, …

Report: summary

This report shows a summary of the upload results. The command will generate a report in three different formats. summary.csv, summary.json, and summary.xlsx.

Column Description
start Time of start
end Time of finish
num_bytes Total upload size (Bytes)
num_files_error The number of files failed or got an error.
num_files_transferred The number of files uploaded/downloaded.
num_files_skip The number of files skipped or to skip.
num_folder_created Number of created folders.
num_delete Number of deleted entries.
num_api_call The number of estimated API calls for upload.

If you run with -budget-memory low option, the command will generate only JSON format report.

In case of a report becomes large, a report in .xlsx format will be split into several chunks like follows; summary_0000.xlsx, summary_0001.xlsx, summary_0002.xlsx, …

Report: uploaded

This report shows the transaction result. The command will generate a report in three different formats. uploaded.csv, uploaded.json, and uploaded.xlsx.

Column Description
status Status of the operation
reason Reason of failure or skipped operation
input.path Path
result.name The last component of the path (including extension).
result.path_display The cased path to be used for display purposes only.
result.client_modified For files, this is the modification time set by the desktop client when the file was added to Dropbox.
result.server_modified The last time the file was modified on Dropbox.
result.size The file size in bytes.
result.content_hash A hash of the file content.
result.has_explicit_shared_members If true, the results will include a flag for each file indicating whether or not that file has any explicit members.

If you run with -budget-memory low option, the command will generate only JSON format report.

In case of a report becomes large, a report in .xlsx format will be split into several chunks like follows; uploaded_0000.xlsx, uploaded_0001.xlsx, uploaded_0002.xlsx, …

}