validateConfig, testConnection, incremental sync with a cursor-based checkpoint, frontend fields, and registry wiring. The Dropbox API v2 maps cleanly onto that same structure. I'll open a proposal issue on GitHub first if the team is open to it.Read-only live mirror of Archestra.AI Slack
👋Join the discussion withAI enthusiasts!validateConfig, testConnection, incremental sync with a cursor-based checkpoint, frontend fields, and registry wiring. The Dropbox API v2 maps cleanly onto that same structure. I'll open a proposal issue on GitHub first if the team is open to it.Hey Joey, just left a summary on the PR on github but wanted to flag here too. I appreciate the feedback, all your review comments are addressed: subfolder traversal with a shared BFS utility, batchSize chunking fix, fileTypes field in the frontend, and migrated to the official Dropbox SDK. CLA is signed. PR is ready for another look when you get a chance: https://github.com/archestra-ai/archestra/pull/3780
folder-traversal.ts utility (traverseFolders function with a FolderTraversalAdapter interface), and wired the Dropbox connector to use it. The traversal is folder-by-folder using filesListFolder with recursive: false per folder, which matches the Google Drive pattern exactly.listDirectSubfolders and pass it to traverseFolders. Both recursive and maxDepth are configurable via the connector config.platform/backend/src/knowledge-base/connectors/folder-traversal.ts - do you mind also refactoring backend/src/knowledge-base/connectors/gdrive/gdrive-connector.ts to use this shared traversal logic? this way that logic is in one spot 🙂docs/pages/platform-adding-knowledge-connectors.md to mention that when adding a new knowledge connector, if it needs to do recursive subfolder traversal, to prefer using platform/backend/src/knowledge-base/connectors/folder-traversal.tstraverseFolders and add the note to the docs. Will push shortly.🫡traverseFolders too, added 9 unit tests for the utility itself, and documented it in the adding connectors guide. All tests are passing.recursive and maxDepth are now in the Dropbox schema, and the spy assertion in the traversal test is properly wired. Also regenerated the shared types with CODEGEN=true so the frontend picks up the dropbox connector type correctly. One heads up -- there's a pre-existing build error in sign-out-with-idp-logout.tsx on getIdentityProviderIdpLogoutUrl that's unrelated to this PR. 74 tests passing across the Dropbox connector, Google Drive, and folder traversal utility. Demo video: https://youtu.be/b05cE0FftAE -- had to switch from Loom as it was rejecting the file. Ready for another look.Hey Joey, pushed the cursor fix -- full sync now gets a root-scoped cursor after BFS traversal so incremental sync tracks the whole tree correctly. Here's the updated demo video: https://youtu.be/VK8H1iodAP8 -- shows the connector syncing files from nested Dropbox subfolders and the chat querying the knowledge base.Though I wasn’t able to get inline citations cause it needs an OpenAI embedding key which I didn't have available -- the sync and retrieval pipeline is working as shown in the logs and in the video. 34 tests passing.
filesListFolder with recursive: true on the root path to get a single root-scoped cursor. That cursor is what gets saved in the checkpoint. All subsequent incremental syncs use filesListFolderContinue with that cursor, which means Dropbox tracks changes across the entire tree from that point forward and not just the last folder walked. The CI failures are pre-existing in main and unrelated to the Dropbox changes. Happy to walk through the cursor logic in more detail if that would help.