Skip to content

docs: guide for multiple bindings on file source connectors#2750

Merged
jwhartley merged 3 commits intomasterfrom
docs/file-source-multiple-bindings
Mar 10, 2026
Merged

docs: guide for multiple bindings on file source connectors#2750
jwhartley merged 3 commits intomasterfrom
docs/file-source-multiple-bindings

Conversation

@jwhartley
Copy link
Contributor

Summary

  • New guide: guides/flowctl/multiple-file-source-bindings.md — documents how to capture from multiple paths/folders within a single file source connector using flowctl
  • Google Drive connector docs fix: Replaced incorrect file_id/path binding properties with stream, added missing folderUrl endpoint property, documented the /u/N/ URL format caveat
  • Cross-references: Added tip boxes linking to the new guide on S3, GCS, SFTP, and Google Drive connector pages

Context

File source connectors all support multiple bindings at runtime, but the UI/discovery only creates a single binding. This leads to confusion — users think multiple paths require multiple captures. This guide covers the flowctl workflow for adding extra bindings, with two options (same collection vs. separate collections).

Tested

Verified end-to-end with real captures:

  • SFTP: Created capture with one binding → published → added second binding for a different directory → re-published → confirmed both directories captured into separate collections
  • Google Drive: Created capture via UI with one folder → pulled specs → added second folder binding → re-published → confirmed both folders captured into separate collections

New guide covering how to capture from multiple paths/folders within
a single file source capture using flowctl. Tested end-to-end with
SFTP and Google Drive connectors.

Also fixes Google Drive connector docs: replaces incorrect file_id/path
binding properties with stream, adds folderUrl endpoint property, and
documents the /u/N/ URL format caveat.

Cross-reference tip boxes added to S3, GCS, SFTP, and Google Drive
connector pages.
@jwhartley jwhartley assigned aeluce and unassigned aeluce Mar 8, 2026
@github-actions
Copy link

github-actions bot commented Mar 8, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-03-10 07:43 UTC

@jwhartley jwhartley requested a review from aeluce March 8, 2026 02:22
Copy link
Collaborator

@aeluce aeluce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Useful addition, thanks!

I added some comments on minor considerations, but it'd be fine to merge without additional changes.


# Capture Multiple Paths with File Source Connectors

File source connectors like Amazon S3, Google Cloud Storage, SFTP, Google Drive, Azure Blob Storage, Dropbox, and HTTP File all support capturing from multiple paths within a single capture task. However, the Estuary web app only creates a single binding during initial setup. To add additional paths, you can use flowctl to manually configure extra bindings.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you mention Dropbox here, it looks like the Dropbox docs currently say: This connector is designed for files located in a specific Dropbox folder.

Would it be helpful to update this language to make it clear that multiple folders can be configured?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — updated the Dropbox docs. Changed "This connector is designed for files located in a specific Dropbox folder" and "captures the data within the specified Dropbox folder into a single Estuary collection" to reflect that multiple folders are supported. Also added a tip box cross-referencing the new guide, matching the other connector pages.

While I was at it, added the same cross-reference tip boxes to Azure Blob Storage and HTTP File connector docs too — those were the remaining file source connectors that didn't have them.


### 3. Add a new binding

In the `bindings` array, add a new entry with a different `stream` value but the same `target` collection:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would the Advanced Specification Editor work for this use case as well? We could briefly mention it at the beginning of Option A.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call — yes it does! I tested it with Google Drive: edited a capture via the Advanced Spec Editor, added a second binding with a different folder ID and the same target collection, and it saved and published successfully.

Added a paragraph at the top of Option A mentioning the Advanced Spec Editor as a lighter-weight alternative to flowctl. It also notes that this only works for Option A (same collection) — Option B requires creating new collections, which must be done via flowctl.

| **`/folderUrl`** | Folder URL | URL of the Google Drive folder to capture from. Must be `https://drive.google.com/drive/folders/FOLDER_ID`. If your URL contains `/u/0/` or `/u/1/` (from Google's account switcher), remove that segment. | string | Required |
| **`/credentials`** | Credentials | Google OAuth2 credentials or service account JSON for authentication. | object | Required |
| `/matchKeys` | Match Keys | Filter applied to file paths under the folder. If provided, only files whose paths match this regex will be read. | string | |
| `/parser` | Parser Configuration | Configures how files are parsed (optional). | object | |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, we could include properties for the credentials and parser objects here as well (/credentials/auth_type, /parser/compression, etc).

But the parser config especially is complex enough and shared by enough different connectors that we may want to give it its own page instead sometime (no action needed for this PR).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed — a dedicated parser config page would be good as a follow-up. The parser config is basically identical across all file source connectors so it makes sense to document it once rather than repeating it on every connector page. No action for this PR.

@jwhartley jwhartley merged commit 643c910 into master Mar 10, 2026
8 checks passed
@jwhartley jwhartley deleted the docs/file-source-multiple-bindings branch March 10, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants