# saiakashneela/bucketstack architecture

> Architecture diagram of the GitHub repository saiakashneela/bucketstack, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saiakashneela/bucketstack
- Repository: https://github.com/saiakashneela/bucketstack

## Overview

BucketStack is a native, local-first desktop workstation for managing S3-compatible storage. The main workflow is to configure a provider connection, browse and operate on bucket objects, then upload, download, edit, or transfer data; the React app delegates storage operations to a Rust/Tauri backend. Separate capabilities include scheduled folder sync, tray actions, analytics, and a local audit trail. The README documents these features, but sampled excerpts do not establish every UI-to-backend link, so uncertain wiring is omitted.

Main entry points: [`App.tsx`](https://github.com/saiakashneela/bucketstack/blob/main/App.tsx) (Workstation UI), [`src/main.rs`](https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs) (Tauri commands), [`services/s3Service.ts`](https://github.com/saiakashneela/bucketstack/blob/main/services/s3Service.ts) (S3 service), [`components/FileExplorer.tsx`](https://github.com/saiakashneela/bucketstack/blob/main/components/FileExplorer.tsx) (File explorer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workstation["Storage workstation"]
  node_app["Workstation UI<br/>[App.tsx]"]
  node_explorer["File explorer<br/>[FileExplorer.tsx]"]
  node_connections["Account setup<br/>[AccountModal.tsx]"]
  node_editor["Code preview"]
  node_tray["Tray window<br/>[TrayWindow.tsx]"]
  node_syncui["Sync manager<br/>[SyncManager.tsx]"]
end

subgraph group_operations["Object operations"]
  node_s3service["S3 service<br/>[s3Service.ts]"]
  node_transferui["Transfer controls<br/>[TransferModal.tsx]"]
  node_analytics["Storage analytics"]
  node_auditui["Activity log UI<br/>[ActivityLog.tsx]"]
end

subgraph group_native["Native services"]
  node_backend["Tauri commands<br/>[main.rs]"]
  node_vault["Secure storage bridge<br/>[secureStorage.ts]"]
  node_security["Security manager<br/>[security.rs]"]
  node_syncengine["Folder sync engine<br/>[main.rs]"]
end

subgraph group_state["Local state"]
  node_auditdb[("SQLite audit store<br/>[main.rs]")]
  node_credentials[("OS credential store")]
end

node_user(("Desktop user"))
node_cloud[("S3-compatible providers")]

node_user -->|"uses"| node_app
node_app -->|"configures"| node_connections
node_app -->|"presents"| node_explorer
node_app -->|"calls"| node_s3service
node_app -->|"invokes commands"| node_backend
node_app -->|"stores credentials"| node_vault
node_app -->|"shows"| node_tray
node_app -->|"shows"| node_syncui
node_app -->|"presents"| node_transferui
node_app -->|"presents"| node_analytics
node_app -->|"presents"| node_auditui
node_explorer -->|"previews content"| node_editor
node_s3service -->|"invokes commands"| node_backend
node_s3service -->|"accesses buckets"| node_cloud
node_backend -->|"performs S3 operations"| node_cloud
node_backend -->|"reads and writes logs"| node_auditdb
node_vault -->|"invokes secure commands"| node_backend
node_backend -->|"uses"| node_security
node_security -->|"protects secrets"| node_credentials
node_syncui -->|"configures jobs"| node_syncengine
node_syncengine -->|"syncs objects"| node_cloud
node_auditui -->|"requests log data"| node_backend

click node_app "https://github.com/saiakashneela/bucketstack/blob/main/App.tsx"
click node_explorer "https://github.com/saiakashneela/bucketstack/blob/main/components/FileExplorer.tsx"
click node_connections "https://github.com/saiakashneela/bucketstack/blob/main/components/AccountModal.tsx"
click node_editor "https://github.com/saiakashneela/bucketstack/blob/main/components/MonacoFilePreview.tsx"
click node_tray "https://github.com/saiakashneela/bucketstack/blob/main/components/TrayWindow.tsx"
click node_syncui "https://github.com/saiakashneela/bucketstack/blob/main/components/SyncManager.tsx"
click node_s3service "https://github.com/saiakashneela/bucketstack/blob/main/services/s3Service.ts"
click node_transferui "https://github.com/saiakashneela/bucketstack/blob/main/components/TransferModal.tsx"
click node_analytics "https://github.com/saiakashneela/bucketstack/blob/main/components/StorageAnalytics.tsx"
click node_auditui "https://github.com/saiakashneela/bucketstack/blob/main/components/ActivityLog.tsx"
click node_backend "https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs"
click node_vault "https://github.com/saiakashneela/bucketstack/blob/main/services/secureStorage.ts"
click node_security "https://github.com/saiakashneela/bucketstack/blob/main/src/security.rs"
click node_syncengine "https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs"
click node_auditdb "https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_explorer,node_connections,node_editor,node_tray,node_syncui,node_user toneBlue
class node_s3service,node_transferui,node_analytics,node_auditui,node_cloud toneAmber
class node_backend,node_vault,node_security,node_syncengine toneMint
class node_auditdb,node_credentials toneRose
```

## Components

### Storage workstation

- [Workstation UI](https://github.com/saiakashneela/bucketstack/blob/main/App.tsx): `App.tsx`
- [File explorer](https://github.com/saiakashneela/bucketstack/blob/main/components/FileExplorer.tsx): `components/FileExplorer.tsx`
- [Account setup](https://github.com/saiakashneela/bucketstack/blob/main/components/AccountModal.tsx): `components/AccountModal.tsx`
- [Code preview](https://github.com/saiakashneela/bucketstack/blob/main/components/MonacoFilePreview.tsx): `components/MonacoFilePreview.tsx`
- [Tray window](https://github.com/saiakashneela/bucketstack/blob/main/components/TrayWindow.tsx): `components/TrayWindow.tsx`
- [Sync manager](https://github.com/saiakashneela/bucketstack/blob/main/components/SyncManager.tsx): `components/SyncManager.tsx`

### Object operations

- [S3 service](https://github.com/saiakashneela/bucketstack/blob/main/services/s3Service.ts): `services/s3Service.ts`
- [Transfer controls](https://github.com/saiakashneela/bucketstack/blob/main/components/TransferModal.tsx): `components/TransferModal.tsx`
- [Storage analytics](https://github.com/saiakashneela/bucketstack/blob/main/components/StorageAnalytics.tsx): `components/StorageAnalytics.tsx`
- [Activity log UI](https://github.com/saiakashneela/bucketstack/blob/main/components/ActivityLog.tsx): `components/ActivityLog.tsx`

### Native services

- [Tauri commands](https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs): `src/main.rs`
- [Secure storage bridge](https://github.com/saiakashneela/bucketstack/blob/main/services/secureStorage.ts): `services/secureStorage.ts`
- [Security manager](https://github.com/saiakashneela/bucketstack/blob/main/src/security.rs): `src/security.rs`
- [Folder sync engine](https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs): `src/main.rs`

### Local state

- [SQLite audit store](https://github.com/saiakashneela/bucketstack/blob/main/src/main.rs): `src/main.rs`
- **OS credential store**

### Other components

- **Desktop user**
- **S3-compatible providers**

## Connections

- Desktop user → Workstation UI: uses
- Workstation UI → Account setup: configures
- Workstation UI → File explorer: presents
- Workstation UI → S3 service: calls
- Workstation UI → Tauri commands: invokes commands
- Workstation UI → Secure storage bridge: stores credentials
- Workstation UI → Tray window: shows
- Workstation UI → Sync manager: shows
- Workstation UI → Transfer controls: presents
- Workstation UI → Storage analytics: presents
- Workstation UI → Activity log UI: presents
- File explorer → Code preview: previews content
- S3 service → Tauri commands: invokes commands
- S3 service → S3-compatible providers: accesses buckets
- Tauri commands → S3-compatible providers: performs S3 operations
- Tauri commands → SQLite audit store: reads and writes logs
- Secure storage bridge → Tauri commands: invokes secure commands
- Tauri commands → Security manager: uses
- Security manager → OS credential store: protects secrets
- Sync manager → Folder sync engine: configures jobs
- Folder sync engine → S3-compatible providers: syncs objects
- Activity log UI → Tauri commands: requests log data
