Skip to content

Feat/s3 file browser v1 - #208

Open
dklOrdix wants to merge 202 commits into
mainfrom
feat/s3-file-browser-v1
Open

dklOrdix wants to merge 202 commits into
mainfrom
feat/s3-file-browser-v1

Conversation

@dklOrdix

@dklOrdix dklOrdix commented Jun 18, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #129

dklOrdix and others added 30 commits May 4, 2026 09:18
…ebar imports

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…s/utils

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
feat(storage): initial Filebrowser UI implementation
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…ation

S3 File Browser Page Navigation (Pagination)
* #96 disable the storage browser if feature flag is set

* #96 fix svelte-check

* #96 fix lint

* #96 disable storage browser by default
* #102 refactor pagination controls into a separate component

* #102 simplified pagination props
* #93 add modal preview for file display

* #93 fix broken e2e tests

* #93 add preview for parquet files, fix scrollbar visibility in preview, allow ms excel csv data for preview

* #93 improve parquet row fetch handling

* #93 fix lint

* #93 move preview endpoint logic into separate files

* #93 disable parquet preview
* refactor(ObjectTable): extract File and Folde rows into seperate components

* style: format code

* style: use camelCase

* style: use camelCase
* feat: implement single-file download functionality and error handling for S3 storage

* feat: refactor S3 download endpoint to use new API structure and improve error handling

* chore: remove obsolete note about static download route segment in tech debt documentation

* style: format code

* fix: improve type safety in S3 error handling

* fix: preview action

* feat: add context menu header and improve file selection handling in FileExplorer

* fix: reset selection state on context menu close and refine download action logic

* style: format files

* style: remove pointer events from Actions row on ContextMenu

* #91 fix lint

---------

Co-authored-by: F3l1x1vo <fli@ordix.de>
@Bohreromir

Copy link
Copy Markdown
Contributor

@F3l1x1vo Whoops my bad. I meant using ctrl+v into the field for the new file name

@F3l1x1vo

Copy link
Copy Markdown
Collaborator

I meant using ctrl+v into the field for the new file name

There's a conflict there with the regular pasting of text. If the user wants to copy and paste a filename he copied from outside the browser for example, a file in the clipboard of the storage browser would be pasted into that field instead of his text. This pasting of filenames by the clipboard is a very niche and weird interaction that I would suggest to leave out.

@Bohreromir Bohreromir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

some more

Comment thread src/lib/server/db.ts Outdated
Comment thread src/lib/storage/schemas.ts Outdated
Comment thread src/lib/server/storage/operations.ts
Comment thread e2e/support/db-migrations.setup.ts Outdated
Comment thread src/lib/server/db.ts Outdated
Comment thread docs/DATABASE.md Outdated
Comment thread src/lib/server/storage/archive.ts Outdated
Comment thread src/lib/server/storage/archive.ts Outdated
Comment thread src/lib/storage/clipboard.svelte.ts
Comment thread src/lib/components/storage/sidebar/BucketList.svelte Outdated
Comment thread src/lib/server/storage/encryption-key.ts
Comment thread docs/DATABASE.md
Comment thread src/lib/server/storage/archive.ts Outdated
Comment thread src/lib/server/storage/archive.ts Outdated
Comment thread src/lib/server/storage/archive.ts Outdated
@F3l1x1vo

Copy link
Copy Markdown
Collaborator

@Bohreromir I've added rar support via node-unrar-js in 68cac8e. Please check it out and tell me if it's acceptable to Stackable.

Comment thread package.json Outdated
Comment thread src/lib/components/storage/explorer/file-icon/iconConfig.ts Outdated
Comment thread .npmrc Outdated
@Bohreromir Bohreromir closed this Oct 5, 2026
@Bohreromir Bohreromir reopened this Oct 5, 2026
@Bohreromir

Copy link
Copy Markdown
Contributor

Closed and reopened to fix github action bug :')

@Bohreromir Bohreromir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Unfortunately the dev setup no longer works for me:

cockpit on  feat/s3-file-browser-v1 [$+] via  v24.19.0 via ❄️  impure (nix-shell-env) took 47s 
❯ npm run dev

> @stackable/stackable-cockpit@0.0.1 dev
> vite dev --host

ℹ [paraglide-js] Compilation skipped — inputs unchanged (locale-modules)                              

  VITE v7.3.6  ready in 1048 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: http://192.168.178.41:5173/
  ➜  Network: http://100.81.235.8:5173/
  ➜  Network: http://172.19.0.1:5173/
  ➜  Network: http://172.18.0.1:5173/
  ➜  press h + enter to show help
[12:12:58.859] WARN: DATABASE_PASSWORD not set, using default development password
    service: "stackable-cockpit"
    module: "database"
[12:12:58.926] INFO: Running database migrations...
    service: "stackable-cockpit"
    module: "migrations"
[12:12:58.933] ERROR: Database migrations failed
    service: "stackable-cockpit"
    module: "migrations"
    error: {
      "query": "CREATE SCHEMA IF NOT EXISTS \"drizzle\"",
      "params": [],
      "cause": {
        "code": "ECONNREFUSED"
      }
    }
Error: Database migrations failed
    at Object.init (/home/jfleck/dev/cockpit/src/hooks.server.ts:126:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async eval (/home/jfleck/dev/cockpit/node_modules/@sveltejs/kit/src/runtime/server/index.js:142:6)
    at async Server.init (/home/jfleck/dev/cockpit/node_modules/@sveltejs/kit/src/runtime/server/index.js:108:3)
    at async file:///home/jfleck/dev/cockpit/node_modules/@sveltejs/kit/src/exports/vite/dev/index.js:526:5

@F3l1x1vo

F3l1x1vo commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Unfortunately the dev setup no longer works for me

@Bohreromir I've deployed a fix in 7756742 that hopefully works for you. I didn't have an issue with the setup script but I have had the same error when running e2e tests from npx playwright test instead of using npm run test:e2e.

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.

Epic: S3 File Browser v1

5 participants