File hub setup guide
This guide collects the provider-side setup steps for every File Hub connector. Each section walks through the OAuth app creation, scopes / permissions, and the values you need to capture before you create the corresponding connection inside DataLug.
For the in-app connection wizard (the DataLug side), see the Connections guide. For per-connector behaviour notes, see the connector's own page in the sidebar.
Google Drive and Google Sheets
Availability in DataLug
Shipped in DataLug
What this provider is used for
Google Drivefor file listing, download, upload, move, delete, and folder-style file-hub operations.Google Sheetsfor structured spreadsheet access through the Google Sheets API.
One Google OAuth web application can support both connectors.
What you need before you start
- A Google account with access to Google Cloud Console
- Permission to create or manage a Google Cloud project
- Permission to configure the OAuth consent screen
- The exact
Redirect URIshown in the DataLug connector modal
Provider setup steps
- Sign in to Google Cloud Console.
- Create a new Google Cloud project for DataLug or select an existing one.
- Open
APIs & Services -> Library. - Enable:
Google Drive APIGoogle Sheets API
- Open
APIs & Services -> OAuth consent screen. - Configure the consent screen.
- Use
Internalif you want to limit sign-in to your Google Workspace organization. - Use
Externalif needed. If the app is not verified yet, add the users who will test sign-in.
- Use
- Open
APIs & Services -> Credentials. - Create
OAuth client ID. - Choose application type
Web application. - Add the exact DataLug
Redirect URIfrom the modal toAuthorized redirect URIs. - Save the app and copy the generated
Client IDandClient Secret.
Permissions / scopes / roles
- DataLug uses server-side OAuth code exchange for Google.
- Keep API enablement limited to the Google services you actually use:
Google Drive APIGoogle Sheets API
- Restrict who can manage the app registration and connector because the connected Google account can access provider data.
Values to capture for DataLug
Client IDClient SecretRedirect URI
DataLug-specific notes
- DataLug uses a backend-owned OAuth callback.
- Google must redirect back to the exact callback URL shown in the DataLug modal.
- DataLug stores the client secret and OAuth tokens securely on the server.
- After save, the client secret is write-only and is not returned to the browser.
Common mistakes
Redirect URI mismatch- The redirect URI in Google Cloud must exactly match the one shown in DataLug.
Google Drive API or Google Sheets API not enabled- OAuth may succeed, but connector actions can still fail later.
External app without test users- Unverified external apps only allow listed test users.
Wrong app reused across environments- DEV and PROD often need different registered redirect URIs.
Official provider documentation
- Google OAuth for web server applications: https://developers.google.com/identity/protocols/oauth2/web-server
- Google OAuth consent screen: https://developers.google.com/workspace/guides/configure-oauth-consent
- Google Drive API: https://developers.google.com/drive/api
- Google Sheets API: https://developers.google.com/workspace/sheets/api
OneDrive
Availability in DataLug
Shipped in DataLug
What this provider is used for
- OneDrive file listing, download, upload, move, delete, and folder-style operations using Microsoft Graph
What you need before you start
- Access to Microsoft Entra ID
- Permission to create or manage app registrations
- Permission to grant delegated Microsoft Graph permissions or request admin consent
- The exact
Redirect URIshown in the DataLug modal
Provider setup steps
- Sign in to Microsoft Entra admin center.
- Open
App registrations. - Select
New registration. - Enter a name for the DataLug app registration.
- Choose the supported account type that matches your tenant and sign-in requirements.
- Under redirect URIs, add a
Webredirect URI using the exact callback shown in the DataLug modal. - Do not register the DataLug callback under
Single-page application (SPA). - Create the app registration.
- Open
Certificates & secrets. - Create a new client secret and copy the secret value immediately.
- Open
API permissions. - Add delegated Microsoft Graph permissions:
offline_accessopenidprofileUser.ReadFiles.ReadWrite
- Grant consent if your tenant requires admin approval.
- Copy the application
Client ID. - Decide the
Tenant IDvalue:- use the specific tenant directory ID for single-tenant apps
- use
commononly when the app registration supports that sign-in model
Permissions / scopes / roles
- Delegated Microsoft Graph permissions:
offline_accessopenidprofileUser.ReadFiles.ReadWrite
- Use least privilege and avoid broader Graph permissions unless you truly need them.
Values to capture for DataLug
Client IDClient SecretRedirect URITenant ID
DataLug-specific notes
- DataLug uses a backend-owned OAuth callback and redeems the authorization code on the server.
- The DataLug callback must be registered as
Web, notSPA. - After save, the client secret is write-only and not returned to the browser.
Common mistakes
SPAselected instead ofWeb- This can trigger
AADSTS9002325because Microsoft expects PKCE for browser-style code redemption.
- This can trigger
- Wrong
Tenant ID- Single-tenant apps should use the actual directory ID, not
common.
- Single-tenant apps should use the actual directory ID, not
- Redirect URI mismatch
- The Entra app registration must use the exact callback shown in DataLug.
- Copied the secret ID instead of the secret value
- Microsoft only shows the secret value once.
Official provider documentation
- Register an application in Microsoft Entra ID: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
- Microsoft Graph permissions reference: https://learn.microsoft.com/en-us/graph/permissions-reference
Azure Blob Storage
Availability in DataLug
Shipped in DataLug
Current DataLug direction already covers:
SAS tokenservice principal- source actions:
List Files,Get File - target actions:
Upload File(s),Write Rows To File(s),Move/Rename,Delete,Create Folder
What this provider is used for
- Azure Blob container-based file-hub storage
- File operations under a selected container and optional path prefix
What you need before you start
- An Azure subscription
- A storage account and blob container
- One of these auth paths:
- SAS token
- service principal with Azure RBAC
Provider setup steps
Option A: SAS token
- Sign in to the Azure portal and open the target
Storage account. - Confirm that the target blob
Containeralready exists, or create it first underData storage -> Containers. - Open the storage account or container SAS generation experience.
- Prefer a container-scoped SAS rather than an overly broad account-level SAS whenever your operating model allows it.
- Choose an expiry window that matches your rotation policy.
- For source-only scenarios, grant only the minimum permissions needed.
- For target/write scenarios, add only the create/write/delete permissions that DataLug will actually use.
- Generate the SAS and copy the token value securely.
- Record the storage account name, container name, and any default path prefix you want DataLug to use.
Recommended SAS direction:
- read-only source scenarios:
Read+List - write or target scenarios:
Read,Add,Create,Write,Delete,List
Option B: service principal
- Register an app in Microsoft Entra ID.
- Create a client secret and save it securely.
- Capture:
Tenant IDClient IDClient Secret
- Open the target storage account or container in Azure portal.
- Open
Access control (IAM). - Assign an Azure RBAC role to the service principal at the narrowest sensible scope:
- storage account
- or container
- Wait for role propagation before testing from DataLug.
- Record the storage account name, container name, and any default path prefix you want DataLug to use.
Recommended RBAC roles:
Storage Blob Data Readerfor read-only source scenariosStorage Blob Data Contributorfor upload/write/delete scenarios
Permissions / scopes / roles
- SAS should be limited to only the container and permissions DataLug needs.
- Service principals should use Azure RBAC at storage-account or container scope.
- Prefer
Storage Blob Data Contributoronly when write/delete behavior is required.
Values to capture for DataLug
Shared fields:
Storage AccountContainerDefault Path Prefix(optional)Auth Method
For SAS token:
SAS Token
For service principal:
Tenant IDClient IDClient Secret
DataLug-specific notes
- Blob paths are treated as virtual directories under the selected container.
Create Folderuses a hidden.datalug-foldermarker blob for compatibility with folder-style file workflows.Default Path Prefixscopes action paths below the selected container and is a good way to separate environments or projects.- After save, SAS tokens and client secrets are write-only and are not returned to the browser.
Common mistakes
- Expired SAS token
- SAS scoped too broadly or too narrowly
- Missing
Storage Blob Data ReaderorStorage Blob Data Contributorrole assignment - Wrong container name or wrong path prefix
- Assuming Blob Storage has real directories instead of virtual paths
Official provider documentation
- SAS overview: https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview
- Authorize blob access with Microsoft Entra ID: https://learn.microsoft.com/en-us/azure/storage/blobs/authorize-access-azure-active-directory
- Assign Azure role for blob data access: https://learn.microsoft.com/en-us/azure/storage/blobs/assign-azure-role-data-access
SharePoint Files
Availability in DataLug
Shipped in DataLug
What this provider is used for
- SharePoint document libraries and folder/file operations through Microsoft Graph
- Site and library-aware file access, beyond basic OneDrive root semantics
What you need before you start
- Access to Microsoft Entra ID
- Access to the SharePoint sites and document libraries you plan to use
- Permission to create app registrations and grant Microsoft Graph delegated permissions
Provider setup steps
- Sign in to Microsoft Entra admin center.
- Open
App registrations. - Create a new app registration for DataLug or reuse an approved Microsoft Graph app registration if your governance model allows it.
- Choose the supported account type that matches your tenant and sign-in model.
- Add the exact SharePoint callback from the DataLug modal as a
Webredirect URI. - Do not register the DataLug callback as
Single-page application (SPA). - Create a client secret and store the secret value securely.
- Open
API permissions. - Add delegated Microsoft Graph permissions for SharePoint file access.
- Grant consent if your tenant requires admin approval.
- Make sure the user who will connect from DataLug can actually access the target SharePoint site and document library in Microsoft 365.
- In DataLug, open
Connections, chooseSharePoint Files, and enter:
Client IDClient SecretRedirect URITenant ID
- Click
Connect SharePoint. - Complete Microsoft sign-in in the popup.
- In the modal, click
Load Sitesand select the SharePoint site. - Click
Load Librariesand select the document library. - Optionally choose a
Default Folder Path. - Click
Test Connection. - Click
Save.
Permissions / scopes / roles
Delegated Microsoft Graph permissions for SharePoint file work:
offline_accessopenidprofileUser.ReadFiles.ReadWrite.AllSites.Read.All
Use broader Graph permissions only when your operating model truly needs them.
Values to capture for DataLug
Client IDClient SecretTenant IDRedirect URI- SharePoint
Site - SharePoint
Document Library - optional
Default Folder Path
DataLug-specific notes
- SharePoint adds
siteanddocument libraryselection on top of Microsoft Graph file auth. - DataLug uses a backend-owned OAuth callback and server-side code redemption.
- The callback must be registered as
Web, notSPA. - Provider-side access still matters after OAuth succeeds: if the connected account cannot browse the site or library in SharePoint, DataLug cannot load it either.
- You can reuse the same Entra app as OneDrive if your governance model allows it, but separate registrations may still be preferable.
Common mistakes
- Treating SharePoint exactly like OneDrive and ignoring site/library structure
- Requesting broader Graph permissions than needed
- Registering the callback under
SPAinstead ofWeb - Connecting the account successfully but not selecting a site and document library in the DataLug modal
Official provider documentation
- Register an application in Microsoft Entra ID: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
- Microsoft Graph permissions reference: https://learn.microsoft.com/en-us/graph/permissions-reference
- Selected permissions for OneDrive and SharePoint: https://learn.microsoft.com/en-us/graph/permissions-selected-overview
Dropbox
Availability in DataLug
Shipped in DataLug
What this provider is used for
- Dropbox folder and file operations through the Dropbox API
What you need before you start
- A Dropbox account or Dropbox team account
- Access to Dropbox App Console
- A decision to use
App Folderaccess for the v1 DataLug connector
Provider setup steps
- Sign in to Dropbox App Console.
- Create a new Dropbox app.
- Choose
Scoped access. - Choose
App Folderfor the v1 DataLug connector. - Name the app and create it.
- Open the app
Permissionstab. - Select only the scopes needed for file and folder operations.
- Save the permission changes before leaving the page.
- Open the app settings page.
- Add the exact redirect URI shown in the DataLug
Dropboxmodal as an OAuth 2 redirect URI. - Copy the
App keyandApp secret. - In DataLug, open
Connections, chooseDropbox, and enter:Client IDClient SecretRedirect URI- optional
Default Path Prefix
- Click
Connect Dropbox. - Complete Dropbox sign-in in the popup.
- Confirm the connected account is shown in the modal.
- Click
Test Connection. - Click
Save.
Permissions / scopes / roles
- Prefer
App Folderfor Dropbox v1 in DataLug. - Use the smallest Dropbox scopes required for file and folder operations.
- Keep the app registration and scopes aligned to personal Dropbox or simple app-folder scenarios first.
- Dropbox Business team content adds extra complexity around team spaces, team folders, and path roots and is outside the v1 connector scope.
Values to capture for DataLug
Prepare these now:
App Key/Client IDApp Secret/Client Secret- Exact
Redirect URI - Optional
Default Path Prefix
DataLug-specific notes
- DataLug uses a backend-owned OAuth callback and server-side code exchange.
- The v1 connector is scoped to
App Folder + personal Dropboxbehavior. Default Path Prefixis relative to the authorized Dropbox app folder root.- Client secrets are write-only after save and are not returned to the browser in plaintext.
- OAuth tokens and secrets are stored on the server.
Common mistakes
- Choosing
Full Dropboxinstead ofApp Folder - Selecting too many scopes
- Assuming Dropbox Business team content behaves the same as a personal Dropbox root
- Using a redirect URI that does not exactly match the DataLug modal
- Expecting the browser to redeem the auth code instead of the DataLug backend callback
Official provider documentation
- Dropbox OAuth Guide: https://developers.dropbox.com/oauth-guide
- Dropbox File Access Guide: https://developers.dropbox.com/dbx-file-access-guide
- Dropbox Team Files Guide: https://developers.dropbox.com/en-us/dbx-team-files-guide
AWS S3
Availability in DataLug
Shipped in DataLug
DataLug now ships an AWS S3 Bucket connector with List Files, Get File, Upload File(s), Write Rows To File(s), Move/Rename, Delete, and Create Folder actions.
What this provider is used for
- S3 bucket and object storage for file-hub workflows
- Bucket + prefix based file listing, download, upload, move, and delete patterns
What you need before you start
- An AWS account
- Permission to create or manage an S3 bucket
- Permission to create or manage an IAM user and policies
Provider setup steps
- Sign in to AWS Management Console.
- Create or identify the S3 bucket DataLug should use.
- Confirm the AWS Region for that bucket and keep it consistent with the value you will enter in DataLug.
- Decide whether DataLug should use the whole bucket or a narrower prefix inside the bucket.
- Open IAM and create a dedicated IAM user for DataLug if you are using the initial access-key path.
- Attach the narrowest identity-based policy possible for the target bucket and, when practical, the target prefix.
- If your organization uses restrictive bucket policies, make sure the bucket policy also allows that IAM user to perform the required S3 actions.
- Create an access key for that IAM user.
- Save the
Access key IDandSecret access keyimmediately and securely. - Record the bucket name, region, and optional default prefix you want DataLug to use.
Permissions / scopes / roles
Initial documented path:
access key + secret
Later direction:
- IAM role or temporary credentials
Policy direction:
- Source-only reads typically need:
s3:ListBuckets3:GetObject
- Write/target workflows typically add:
s3:PutObjects3:DeleteObject
- Folder-style creation also relies on
s3:PutObjectbecause DataLug writes a zero-byte marker key ending in/. - Scope the policy to the exact bucket and, when possible, a specific prefix.
Values to capture for DataLug
Prepare these now:
BucketRegionDefault Prefix(optional)Access Key IDSecret Access Key
DataLug-specific notes
- The file-hub roadmap aligns S3 around bucket + prefix semantics.
- DataLug currently expects:
Access Key IDSecret Access KeyRegionBucketDefault Prefix(optional)
Create Folderwrites a zero-byte object key ending in/so S3 behaves like the rest of the file-hub connector family.Default Prefixis the easiest way to scope one bucket into separate DataLug environments or project paths without creating many buckets.- This guide documents the initial access-key path because that is the current shipped baseline.
- Role-based or temporary-credential flows can follow later, but they are not the primary documented setup path here.
Common mistakes
- Overly broad IAM permissions
- Using the wrong bucket Region
- Forgetting
s3:ListBucketfor prefix discovery - Storing access keys insecurely or failing to rotate them
- Using one shared IAM user for too many unrelated environments
Official provider documentation
- Creating S3 buckets: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
- Manage access keys for IAM users: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
- Identity-based policy examples for S3: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html
- Bucket policies for Amazon S3: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html