apache / apache/texera

Import files from Dropbox into Texera datasets

Open
#5,635 2 comments 0 reactions 1 assignee Claimed by @eugenegujing View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### Task Summary

## Background

Sub-task of #5242. Builds on the provider abstraction introduced in the Google Drive import task (sibling sub-issue), adding **Dropbox** as the second import source. A second provider validates that the connection layer is genuinely extensible, as proposed by @xuang7 in #4240.

Same design principles as the Google Drive task (per @aicam's decisions in #4240): **no token persistence** (one-time OAuth token per import, discarded after the transfer) and **backend streaming** directly into dataset storage (LakeFS/S3).

## Proposed changes

- **Backend (file-service):**
- A Dropbox implementation of the import provider interface, using `POST https://content.dropboxapi.com/2/files/download` for streaming download and `files/list_folder` for listing.
- Dropbox app key configuration via env vars.
- **Frontend:**
- Add Dropbox as a provider option in the "Import from cloud" flow, using the official **Dropbox Chooser** for file selection (OAuth2 with PKCE, short-lived token — nothing stored).
- Unlike Google Drive, Dropbox has no restricted-scope review process, so an in-app browsing experience via the provider interface's `listFiles` can be considered here without any verification burden.

## Out of scope

- Folder / bulk import; background jobs for very large files (consistent with the Google Drive sub-issue).

### Task Type

- [ ] Refactor / Cleanup
- [ ] DevOps / Deployment / CI
- [ ] Testing / QA
- [ ] Documentation
- [ ] Performance
- [x] Other

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.