Mirage shipsDocumentation Index
Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt
Use this file to discover all available pages before exploring further.
DropboxResource in two runtimes:
@struktoai/mirage-node, usesclient_id+client_secret+ long-lived refresh token to fetch short-lived access tokens server-side.@struktoai/mirage-browser, supports the same refresh token via PKCE (no client secret in the bundle).
/2/files/list_folder for directories, /2/files/download for content, and /2/files/search_v2
for search. Credentials are obtained the same way in both runtimes, see
Dropbox Credentials.
Node (server-side)
DropboxTokenManager caches the access token in memory and refreshes it ~5 minutes before
expiry, so cold-start API calls don’t pay the refresh round-trip.
Browser (PKCE, no client secret)
http://localhost:5173/dropbox_pkce.html). The bundled
examples/typescript/browser/src/dropbox_pkce.ts
runs the full PKCE dance end-to-end and persists the refresh token to localStorage.
VFS mode (patchNodeFs)
Mirage exposes a patchNodeFs(workspace) shim that routes fs.promises.* calls under a mount
through the workspace, so any library that uses Node’s fs API can read directly from Dropbox
without code changes.
fs.promises.* (the async API) is patched. Sync forms like fs.statSync and
fs.readFileSync aren’t supported because remote reads can’t block the event loop.
FUSE mode
For tools that need a real filesystem path (CLI tools, editors, system utilities), mount the workspace under FUSE:Available commands
DropboxResource ships the same shell command set as the GDrive resource:
- Filesystem:
ls,cat,head,tail,nl,wc,stat,find,tree,du,file,realpath,basename,dirname - Search/text:
grep,rg,awk,sed,sort,uniq,cut,diff,cmp,jq - Encoding:
base64 - Format-aware:
cat_parquet,cat_feather,cat_hdf5,head_parquet,head_feather,head_hdf5,cut_*,grep_*,ls_*,stat_*,tail_*,wc_*,file_*for.parquet,.feather,.hdf5/.h5,.orcfiles
cat /dropbox/data/example.parquet returns a column preview instead of binary garbage.
Examples
End-to-end runnable scripts are inexamples/typescript/dropbox/:
dropbox.ts,Workspace.execute('ls/stat/cat/tree …')shell demodropbox_parquet.ts, parquet preview throughcatdropbox_vfs.ts,patchNodeFs+ nativefs.promises.*callsdropbox_fuse.ts, FUSE mount with shell access in another terminal