Noooste
6766dec933
feat(bucket): add functionality to create buckets with optional access keys and permissions
2026-07-25 19:38:01 +02:00
Noooste
a061500d50
feat(frontend): make bucket items clickable links to object view
2026-07-25 12:32:49 +02:00
Noooste
985b7b30ce
feat(dropdown): improve positioning logic and add popup positioning utility
2026-07-25 12:29:31 +02:00
dependabot[bot]
8f6cb2b1da
chore(deps): bump axios from 1.16.0 to 1.18.0 in /frontend ( #96 )
...
Bumps [axios](https://github.com/axios/axios ) from 1.16.0 to 1.18.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.16.0...v1.18.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.18.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-23 09:52:05 +02:00
Noste
c0976a1e1d
feat(preview): Implement object preview functionality ( #94 )
...
* feat(preview): implement object preview functionality with token-based access
* docs: update README to include inline object preview feature
* test: add range read error handling and attachment content disposition tests
2026-07-15 00:01:04 +02:00
Camilo Hollanda
5d33382e30
feat: bulk actions — recursively delete folders (key prefixes) ( #68 )
...
* feat(backend,frontend): recursive delete of key prefixes in bulk actions
Bulk object selection previously only supported deleting individually
listed object keys — folders ("prefixes") could not be selected or
deleted, leaving no way to remove a directory and all of its contents.
Backend:
- Add S3Service.DeleteObjectsByPrefix, which recursively lists every
object under a prefix and batch-deletes them, returning the count.
- Extend the delete-multiple endpoint to accept a "prefixes" array
alongside "keys"; keys are batch-deleted and each prefix is deleted
recursively. Response now reports the total objects removed.
Frontend:
- Enable folder checkboxes and add a per-folder "Delete folder" action.
- Select-all now covers both files and folders.
- Route all bulk/folder deletes through a confirmation dialog that
spells out the file/folder counts and warns that folders are removed
recursively (previously bulk delete fired with no confirmation).
- api/hook send "prefixes"; optimistic update drops objects under any
deleted prefix.
* fix(backend): validate delete prefixes and count actual removals
Addresses maintainer review on the recursive prefix-delete endpoint:
- Reject blank/whitespace-only prefixes with a 400 instead of a 500, and
normalize each prefix to have a trailing "/" so "photos/2024" can no
longer also delete siblings like "photos/2024-old/..." on this
irreversible public endpoint.
- DeleteMultipleObjects now returns the number of objects actually
removed (requested keys minus failures) rather than assuming every
requested key was deleted; the handler sums real counts across the
keys and prefix paths. Draining the full RemoveObjects error channel
also fixes a potential sender-goroutine leak on early return.
- Add tests: blank-prefix -> 400, prefix trailing-slash normalization,
and S3Service.DeleteObjectsByPrefix (list-then-delete, empty prefix,
no-match, and list-error propagation).
* fix(frontend): align select-all with the active search filter
The header "select all" checkbox derived its checked state from the
filtered (searched) rows, but handleSelectAll operated on the full,
unfiltered object list — so with a search active it selected hidden
items and the checkbox state disagreed with the selection.
ObjectsTable now passes the keys of the currently visible (filtered)
rows to onSelectAll, and its checked state reflects whether every
visible row is selected. handleSelectAll toggles only those visible
rows, leaving any off-screen selection intact.
* fix(frontend): scope select-all to the visible page
After merging upstream's client-side deep-search pagination, the rendered
rows are pageObjects (one page slice) while select-all still operated on
filteredObjects (every match across hidden pages). Scope the header
checkbox's state and its select-all action to pageObjects so one click
never selects off-screen rows for a destructive bulk delete. In
normal/prefix browsing pageObjects === filteredObjects, so behavior there
is unchanged.
---------
Authored-by: Camilo Hollanda <775409+prem-prakash@users.noreply.github.com >
2026-07-14 23:11:23 +02:00
Noste
0d804fbd39
feat(oidc): add fine grained access control ( #91 )
...
* feat(access-control): fine grain tokens
* fix(docs): clean wording
* test(access-control): add tests for team extraction from access tokens and bucket info permissions
* test(vocabulary): add test for ExpandGlob function to reject non-glob patterns
* feat(helm): add multi-user access control documentation and schema support
2026-07-11 17:57:28 +02:00
Noste
3098e474f2
feat(backend,frontend): implement prefix and recursive substring search for bucket objects ( #89 )
...
* feat(search): implement recursive substring search for bucket objects
* fix: update key formatting to remove trailing slashes in ObjectsTable
* feat(search): implement debounced search functionality and improve UI text clarity
* test(objects): add test for handling search error response
2026-07-11 17:09:27 +02:00
Noste
430d1a5d68
fix(frontend): add downloadObject function for downloading files from a bucket
2026-07-03 11:10:33 +02:00
dependabot[bot]
460793632e
chore(deps): bump esbuild, @vitejs/plugin-react and vite in /frontend ( #79 )
...
Removes [esbuild](https://github.com/evanw/esbuild ). It's no longer used after updating ancestor dependencies [esbuild](https://github.com/evanw/esbuild ), [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react ) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ). These dependencies need to be updated together.
Removes `esbuild`
Updates `@vitejs/plugin-react` from 5.1.2 to 5.2.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases )
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/plugin-react@5.2.0/packages/plugin-react/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.2.0/packages/plugin-react )
Updates `vite` from 7.3.2 to 8.0.16
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/packages/vite )
---
updated-dependencies:
- dependency-name: esbuild
dependency-version:
dependency-type: indirect
- dependency-name: "@vitejs/plugin-react"
dependency-version: 5.2.0
dependency-type: direct:development
- dependency-name: vite
dependency-version: 8.0.16
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 16:33:57 +02:00
dependabot[bot]
f888b7c77c
chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /frontend ( #83 )
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.1 to 4.2.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.2.0 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.2.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 16:33:41 +02:00
dependabot[bot]
ef118dc3a7
chore(deps): bump form-data from 4.0.5 to 4.0.6 in /frontend ( #82 )
...
Bumps [form-data](https://github.com/form-data/form-data ) from 4.0.5 to 4.0.6.
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md )
- [Commits](https://github.com/form-data/form-data/compare/v4.0.5...v4.0.6 )
---
updated-dependencies:
- dependency-name: form-data
dependency-version: 4.0.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 16:33:20 +02:00
dependabot[bot]
67d8f633b0
chore(deps): bump react-router and react-router-dom in /frontend ( #74 )
...
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) to 7.16.0 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ). These dependencies need to be updated together.
Updates `react-router` from 7.14.1 to 7.16.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.16.0/packages/react-router )
Updates `react-router-dom` from 7.14.1 to 7.16.0
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.16.0/packages/react-router-dom )
---
updated-dependencies:
- dependency-name: react-router
dependency-version: 7.16.0
dependency-type: indirect
- dependency-name: react-router-dom
dependency-version: 7.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-08 00:13:10 +02:00
Florian Gareis
45f8770799
fix(frontend): align three-dot menu item icon spacing and text alignment ( #72 )
2026-06-01 00:53:22 +02:00
dependabot[bot]
4b3a562acb
chore(deps): bump axios from 1.15.2 to 1.16.0 in /frontend ( #67 )
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-31 11:39:32 +02:00
Noste
1f16edd39c
feat(backend,frontend): enable quotas support in bucket settings ( #64 )
2026-05-23 15:29:04 +02:00
Noste
36ec8e800e
feat(backend): Support _FILE suffix on sensitive env variables ( #63 )
...
* feat(env): add _FILE suffix support for env variables
* fix(frontend): dynamic refresh on key creation
* chore(deps): update packages
* fix(test): coverage
2026-05-23 14:55:52 +02:00
dependabot[bot]
5cc4b02114
chore(deps-dev): bump postcss from 8.5.6 to 8.5.12 in /frontend ( #32 )
...
Bumps [postcss](https://github.com/postcss/postcss ) from 8.5.6 to 8.5.12.
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.12 )
---
updated-dependencies:
- dependency-name: postcss
dependency-version: 8.5.12
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-14 09:20:12 +02:00
dependabot[bot]
741232c797
chore(deps): bump axios from 1.15.0 to 1.15.2 in /frontend ( #34 )
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.0 to 1.15.2.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.0...v1.15.2 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.15.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-14 09:19:54 +02:00
Noste
f1eeca60bf
feat: add garage.toml support ( #30 )
2026-04-24 11:27:43 +02:00
Noste
390ccd7893
Support garage v1 ( #31 )
...
* feat: support garage v1
2026-04-24 09:53:56 +02:00
Noste
ee6de30b40
Merge pull request #27 from Noooste/dependabot/npm_and_yarn/frontend/follow-redirects-1.16.0
...
chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend
2026-04-20 12:25:13 +02:00
dependabot[bot]
c165d04c77
chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend
...
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects ) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases )
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0 )
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-version: 1.16.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:24:53 +00:00
Noste
e3a74c4791
Merge pull request #26 from Noooste/dependabot/npm_and_yarn/frontend/multi-05c8b36e59
...
chore(deps): bump react-router and react-router-dom in /frontend
2026-04-20 12:24:49 +02:00
Noste
93d7b3aeb2
Merge pull request #25 from Noooste/dependabot/npm_and_yarn/frontend/vite-7.3.2
...
chore(deps-dev): bump vite from 7.3.0 to 7.3.2 in /frontend
2026-04-20 12:24:40 +02:00
Noste
c7d7e8c215
Merge pull request #24 from Noooste/dependabot/npm_and_yarn/frontend/flatted-3.4.2
...
chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /frontend
2026-04-20 12:24:28 +02:00
Noste
4c92203023
Merge pull request #23 from Noooste/dependabot/npm_and_yarn/frontend/multi-770cfcd984
...
chore(deps): bump minimatch in /frontend
2026-04-20 12:24:19 +02:00
Noste
6c3c13a321
Merge pull request #22 from Noooste/dependabot/npm_and_yarn/frontend/rollup-4.60.2
...
chore(deps): bump rollup from 4.54.0 to 4.60.2 in /frontend
2026-04-20 12:24:10 +02:00
Noste
a293e0e007
Merge pull request #21 from Noooste/dependabot/npm_and_yarn/frontend/axios-1.15.0
...
chore(deps): bump axios from 1.13.2 to 1.15.0 in /frontend
2026-04-20 12:24:00 +02:00
dependabot[bot]
614bf5b04a
chore(deps): bump react-router and react-router-dom in /frontend
...
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router ) to 7.14.1 and updates ancestor dependency [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom ). These dependencies need to be updated together.
Updates `react-router` from 7.11.0 to 7.14.1
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.14.1/packages/react-router )
Updates `react-router-dom` from 7.11.0 to 7.14.1
- [Release notes](https://github.com/remix-run/react-router/releases )
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md )
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.14.1/packages/react-router-dom )
---
updated-dependencies:
- dependency-name: react-router
dependency-version: 7.14.1
dependency-type: indirect
- dependency-name: react-router-dom
dependency-version: 7.14.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:19 +00:00
dependabot[bot]
a74d00d81f
chore(deps-dev): bump vite from 7.3.0 to 7.3.2 in /frontend
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.3.0 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.3.2
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:19 +00:00
dependabot[bot]
13bbdac837
chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /frontend
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:13 +00:00
dependabot[bot]
12b06a4565
chore(deps): bump minimatch in /frontend
...
Bumps and [minimatch](https://github.com/isaacs/minimatch ). These dependencies needed to be updated together.
Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
Updates `minimatch` from 9.0.5 to 9.0.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
- dependency-name: minimatch
dependency-version: 9.0.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:09 +00:00
dependabot[bot]
093b3ebdcc
chore(deps): bump rollup from 4.54.0 to 4.60.2 in /frontend
...
Bumps [rollup](https://github.com/rollup/rollup ) from 4.54.0 to 4.60.2.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v4.54.0...v4.60.2 )
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.60.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:09 +00:00
dependabot[bot]
4ebe8ec56f
chore(deps): bump axios from 1.13.2 to 1.15.0 in /frontend
...
Bumps [axios](https://github.com/axios/axios ) from 1.13.2 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.15.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.15.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:08 +00:00
dependabot[bot]
123f8d14f5
chore(deps): bump picomatch from 4.0.3 to 4.0.4 in /frontend
...
Bumps [picomatch](https://github.com/micromatch/picomatch ) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases )
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4 )
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 10:23:02 +00:00
Noooste
f48d6f0812
feat: remove toast error messages for various operations and rely on axios interceptor for error handling
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 23:40:00 +02:00
Noooste
1cd9e734bc
feat: remove success toast message after bucket deletion in Buckets and BucketSettings components
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 23:34:57 +02:00
Noooste
c951e5fa4b
feat: implement permission denial functionality and enhance permission saving state in AccessControl component
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 23:15:27 +02:00
Noooste
a828020994
feat: enhance AccessControl component with ConfirmDialog and improved UI for key management
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 23:09:29 +02:00
Noooste
13e6fa3d1d
refactor: remove unused state variables in AccessControl component
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 22:41:21 +02:00
Noooste
fece799627
refactor: improve error handling and utility functions in bucket management components
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 22:37:55 +02:00
Noooste
bfed48421b
feat: implement UI redesign with updated button styles and new components
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 22:11:22 +02:00
Noooste
cb1b14b941
feat: add CreateDirectory endpoint and S3 directory marker support
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-19 17:10:06 +02:00
Noooste
46f904fe59
refactor: optimize state management and filtering in AccessControl and ObjectsTable components
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-17 16:46:55 +02:00
Noooste
43ba68a4f9
feat: update directory creation to include .keep file for empty directories
...
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com >
2026-04-13 23:42:38 +02:00
Noste
2efb16e248
Merge pull request #11 from Noooste/4-static-website-options
...
Add static option on the UI
2026-03-07 14:16:57 +01:00
Noste
d494c811a0
feat: add website hosting configuration for buckets
...
Signed-off-by: Noste <83548733+Noooste@users.noreply.github.com >
2026-03-07 13:53:52 +01:00
Noste
4486697ca5
refactor: simplify access key loading in BucketSettingsDialog and enhance last modified tooltip in ObjectsTable
...
Signed-off-by: Noste <83548733+Noooste@users.noreply.github.com >
2026-03-07 11:18:14 +01:00
Noste
94ad142edf
feat: add health API to retrieve application version and display in sidebar
...
Signed-off-by: Noste <83548733+Noooste@users.noreply.github.com >
2026-03-07 11:13:33 +01:00