Files

33 lines
1.6 KiB
Markdown

Dropbox Trigger (Manual Webhook)
Overview
- Manual webhook trigger: users create their own Dropbox App and set the App's Webhook URL directly to this subscription endpoint.
- The trigger validates signatures and emits `file_changes` that includes the notified account IDs and resolved change entries from the entire Dropbox account.
Webhook Validation
- GET challenge echo: returns the `challenge` query parameter verbatim.
- Signature: verify `X-Dropbox-Signature` via HMAC-SHA256 of the raw body using your Dropbox App Secret.
Subscription
- Parameters:
- `app_secret` (required): used to validate webhook signatures.
- `access_token` (required): user access token to fetch file change details.
- Steps:
1) In Dropbox App Console → your app → Settings → Webhooks, set the Webhook URL to: `https://<your-dify-host>/api/plugin/triggers/<subscription-id>`
2) In Dify subscription UI, paste the App Secret and Access Token.
Dispatch Flow
1) Webhook arrives (POST). Validate signature.
2) Extract `list_folder.accounts` from payload (if present).
3) Fetch file changes recursively from entire Dropbox account (including deleted files).
4) Emit `file_changes` with `{ accounts, cursor_before, cursor_after, changes, raw, headers, received_at }`.
Files
- `provider/dropbox.py`: trigger dispatch (manual webhook)
- `provider/dropbox.yaml`: provider identity, schemas, and event registration
- `events/file_changes/file_changes.yaml`: event identity and output schema (name: `file_changes`)
Notes
- The trigger monitors the entire Dropbox account recursively, including deleted files.
- Change cursor is stored to track incremental updates between webhook notifications.