[Integration] Map & test Dropbox document storage integration #37

Open
opened 2026-03-23 09:35:48 -07:00 by pyr0ball · 0 comments
Owner

Dropbox — Resume & Cover Letter Storage

Save generated cover letters and resume PDFs to Dropbox as an alternative to Google Drive.

Current state

scripts/integrations/dropbox.py exists (37 lines, 4 methods).

Tasks

Mapping

  • Document credential: Dropbox API access token (long-lived via Dropbox App Console)
  • Define folder path: /Peregrine/{company}/{role}/cover_letter.pdf
  • Config: config/integrations/dropbox.yaml

Implementation

  • Implement DropboxIntegration.connect() — store access token
  • Implement DropboxIntegration.test() — call /users/get_current_account to validate token
  • Implement DropboxIntegration.upload(path, content_bytes) — use Dropbox upload API
  • Handle Dropbox token expiry (short-lived vs long-lived tokens)
  • Hook into Apply Workspace alongside Google Drive

Testing

  • Integration test: upload test file → verify in Dropbox
  • Test token validation in test()
  • Test graceful failure on network error

Acceptance criteria

  • Settings → Integrations shows Dropbox card with access token field
  • Cover letter PDFs upload to /Peregrine/ folder in Dropbox
## Dropbox — Resume & Cover Letter Storage Save generated cover letters and resume PDFs to Dropbox as an alternative to Google Drive. ### Current state `scripts/integrations/dropbox.py` exists (37 lines, 4 methods). ### Tasks **Mapping** - [ ] Document credential: Dropbox API access token (long-lived via Dropbox App Console) - [ ] Define folder path: `/Peregrine/{company}/{role}/cover_letter.pdf` - [ ] Config: `config/integrations/dropbox.yaml` **Implementation** - [ ] Implement `DropboxIntegration.connect()` — store access token - [ ] Implement `DropboxIntegration.test()` — call `/users/get_current_account` to validate token - [ ] Implement `DropboxIntegration.upload(path, content_bytes)` — use Dropbox upload API - [ ] Handle Dropbox token expiry (short-lived vs long-lived tokens) - [ ] Hook into Apply Workspace alongside Google Drive **Testing** - [ ] Integration test: upload test file → verify in Dropbox - [ ] Test token validation in `test()` - [ ] Test graceful failure on network error ### Acceptance criteria - Settings → Integrations shows Dropbox card with access token field - Cover letter PDFs upload to `/Peregrine/` folder in Dropbox
pyr0ball added this to the Paid Tier GA milestone 2026-03-23 09:35:48 -07:00
pyr0ball added the
feature-request
label 2026-03-23 09:35:48 -07:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/peregrine#37
No description provided.