Data Sources Explorer
Connects to Google Drive, OneDrive, SFTP, FTP and local folders, and keeps a catalog of S3, Dropbox, WebDAV and database entries that do not connect yet.
packages/data-sources
Data Sources Explorer (packages/data-sources) is where you register the storage and databases other RobOS apps use. Google Drive, OneDrive, SFTP and FTP entries are real connections: the app signs in, lists folders, and uploads and downloads files. The other entry types are a catalog only.
S3, Dropbox and WebDAV entries never contact the provider. They read and write the entry’s local folder under ~/.robos/cloud-mounts/<id>/, and the connection test reports “Connected” with the provider’s API name whatever the credentials are. For PostgreSQL, MySQL / MariaDB, SQLite / DuckDB, MongoDB and Redis entries, Test Database Handshake waits about 150 ms and reports “Connected”. Nothing connects to a database.
Storage drivers
The client lives in packages/data-sources/lib/remote-storage.js. Other apps load it too, for example Audio Player for streaming music from a linked folder.
| Driver | How it connects |
|---|---|
| Google Drive | Drive REST API v3, with an OAuth access token (refreshed with the refresh token), a service account JSON key or an API key. A local GVFS or rclone mount can be used instead. |
| Microsoft OneDrive | Microsoft Graph, with an OAuth token from the browser login. |
| SFTP | ssh2-sftp-client, with a password or a private key file. |
| FTP / FTPS | basic-ftp, with explicit TLS when enabled. |
| Local / NAS Folder Mount | A folder on disk. |
| Amazon S3 / R2 / MinIO, Dropbox, Nextcloud / WebDAV | Not connected; see the note above. |
For the connected drivers, Run Connection Test really connects (SFTP and FTP list the configured path, for example) and records the status and latency on the entry. A Google Drive or OneDrive entry without a token reports “Login Required”, and saving one shows a sign-in toast.
Sign in to Google Drive or OneDrive
Log in with Browser starts a small HTTP server on 127.0.0.1 and opens the provider’s consent page in your browser. The tokens it receives are saved on the entry. If you don’t supply your own OAuth client, the app uses its built-in client IDs. You can also paste an OAuth access token into the form.
Browse and move files
Select a storage entry to browse its folders. You can create a folder, upload files, download a file into the entry’s local folder under ~/.robos/cloud-mounts/<id>/, and open that folder in the file manager.
Link Folder writes a .robos-cloud-manifest.json index of up to 500 files into the local folder and adds the folder to ~/.config/robos/cloud-folders.json. It does not download the files. A Google Drive entry can link several folders, and each one gets its own subfolder.
Where the data lives
- Entries, including OAuth tokens and secrets, are saved as plain JSON in
~/.config/robos/data-sources.jsonwith file mode 0600. - After each save, the app asks Cloud Accounts to import the entries, so a Google Drive sign-in here also shows up there.
- A new install starts empty. The sample entries in
main.js(an Acme Petshop PostgreSQL database, an S3 vault and so on) are loaded only by the test harness. - Setting
ROBOS_GRAPH_ROOTswitches the app to a read-only view of the data-store nodes (databases, message brokers, topics, tables) in that knowledge graph workspace. Saving, deleting and the live panels are disabled in that mode.
Run it
Launch Data Sources from the desktop or App Launcher, or run:
scripts/dev-launch.sh data-sources
Source: packages/data-sources.
More in Databases & Event Streams
NoSQL DB Manager
A MongoDB and Redis studio prototype with a document grid and a Redis key table; it shows built-in sample data and does not connect to a server.
Relational DB Manager
A SQL studio prototype with a connection tree, table viewer, DDL view and SQL console; it currently shows built-in sample data.