Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
59ca0c3
fix: prevent context menu clicks from clearing file selection (#5681)
AndyBodnar Jan 17, 2026
cfa6c58
fix: request current password when deleting users (#5667)
ArielLeyva Jan 18, 2026
4094fb3
fix: retain file selection when closing the editor (#5693)
ArielLeyva Jan 18, 2026
24781ba
Merge commit from fork
GUCHIHACKER Jan 18, 2026
e7ea1ad
feat: update translations (#5677)
transifex-integration[bot] Jan 18, 2026
550a73b
chore(deps): update all non-major dependencies (#5679)
renovate[bot] Jan 18, 2026
785b7ab
feat: added cut, copy, paste and show command palette functions in he…
ArielLeyva Jan 18, 2026
1154b49
chore: add openbsd, remove windows arm (#5695)
hacdias Jan 18, 2026
08c8ede
chore(release): 2.55.0
hacdias Jan 18, 2026
f0f2f1f
feat: Updates for project File Browser (#5698)
transifex-integration[bot] Jan 24, 2026
87f1d00
chore(deps): update all non-major dependencies (#5714)
renovate[bot] Jan 24, 2026
3032a1f
fix: adjust columns of the table from the "users ls" command (#5716)
ArielLeyva Jan 24, 2026
004488c
fix: avoid clearing selection when clicking elements outside the empt…
ArielLeyva Jan 24, 2026
1053aac
chore(release): 2.56.0
hacdias Jan 24, 2026
b594d4d
fix: adjust yaml config decodification to yaml.v3 (#5722)
ArielLeyva Jan 31, 2026
3a08949
chore(deps): update all non-major dependencies (#5732)
renovate[bot] Jan 31, 2026
87cfead
chore(deps): update all non-major dependencies (#5734)
renovate[bot] Feb 1, 2026
d441b28
fix: avoid 409 conflict when renaming files differing only by case (#…
ArielLeyva Feb 1, 2026
8fee256
feat: Updates for project File Browser (#5725)
transifex-integration[bot] Feb 1, 2026
a8fe32f
chore(deps): update module github.com/shirou/gopsutil/v4 to v4.26.1 (…
renovate[bot] Feb 1, 2026
b8da36e
chore(deps): update dependency vue-router to v5 (#5733)
renovate[bot] Feb 1, 2026
08d7a15
feat: Add Redis upload cache for multi-replica deployments (#5724)
arranpx Feb 1, 2026
2b82612
chore(deps): update module github.com/redis/go-redis/v9 to v9.17.3 (#…
renovate[bot] Feb 1, 2026
b9df030
chore(docs): update CLI documentation
hacdias Feb 1, 2026
854e537
chore(release): 2.57.0
hacdias Feb 1, 2026
942d598
chore(doc): add documentation for hook authentication method (#5742)
ArielLeyva Feb 4, 2026
a428901
docs: fix headers
hacdias Feb 4, 2026
099dfb0
docs: update headers
hacdias Feb 4, 2026
2957b46
chore(deps): update all non-major dependencies (#5747)
renovate[bot] Feb 8, 2026
ff2f004
fix: normalize fields capitalization
hacdias Feb 8, 2026
489af40
fix: remove skip clean
hacdias Feb 8, 2026
e193d43
chore(release): 2.57.1
hacdias Feb 8, 2026
6a76dfe
fix: respect Accept-Encoding for pre-compressed JS (#5750)
nian0114 Feb 14, 2026
c94870f
feat: Updates for project File Browser (#5749)
transifex-integration[bot] Feb 14, 2026
5feaf66
chore(deps): update all non-major dependencies (#5758)
renovate[bot] Feb 14, 2026
1f7904d
fix: ignore version.go
hacdias Feb 14, 2026
88b97de
feat: nederlands
hacdias Feb 14, 2026
f67bccf
feat: support for multiple encodings in CSV files (#5756)
ArielLeyva Feb 14, 2026
e5bc0d3
fix: wrap response text in Error before reject (#5753)
aarondill Feb 14, 2026
5e8f5be
feat: Updates for project File Browser (#5759)
transifex-integration[bot] Feb 14, 2026
b09960e
fix(frontend): pnpm lock
hacdias Feb 14, 2026
95e6ed7
chore(release): 2.58.0
hacdias Feb 14, 2026
804b14b
feat: add 'Open direct' button to images (#5678)
imbaczek Feb 15, 2026
3cad9a2
chore(deps): update dependency eslint to v10 (#5748)
renovate[bot] Feb 15, 2026
63a76ef
feat: Updates for project File Browser (#5760)
transifex-integration[bot] Feb 15, 2026
0467326
fix: render equations in markdown preview (#5745)
NN708 Feb 15, 2026
7e78ad9
chore(release): 2.59.0
hacdias Feb 15, 2026
3169a14
fix: always show separators and encoding list in the CSV viewer (#5774)
ArielLeyva Feb 21, 2026
200d501
fix: modal lifecycle issues, multiple modals, new directory creation …
ArielLeyva Feb 21, 2026
9940bdd
feat: Updates for project File Browser (#5764)
transifex-integration[bot] Feb 21, 2026
2470b9e
chore(deps): update all non-major dependencies (#5780)
renovate[bot] Feb 21, 2026
7b16e2d
chore(release): 2.60.0
hacdias Feb 21, 2026
e3d00d5
chore(deps): update goreleaser/goreleaser-action action to v7 (#5782)
renovate[bot] Feb 22, 2026
aa80909
feat: improved conflict resolution when uploading/copying/moving file…
ArielLeyva Feb 27, 2026
31194fb
fix: correctly clean path
hacdias Feb 28, 2026
8dc618a
chore: update translations (#5790)
transifex-integration[bot] Feb 28, 2026
a40f806
chore(deps): update all non-major dependencies (#5791)
renovate[bot] Feb 28, 2026
148b3c5
chore(release): 2.61.0
hacdias Feb 28, 2026
7ed1425
fix: check for correct permission in TUS Delete
hacdias Mar 4, 2026
c950a57
chore(release): 2.61.1
hacdias Mar 4, 2026
4af3f85
fix(csv-viewer): add support for missing text encodings in dropdown l…
ArielLeyva Mar 6, 2026
177c7cf
fix: validate current password with a modal (#5805)
ArielLeyva Mar 6, 2026
d7b00ce
fix: avoid sending the same name in the file/folder rename modal (#5806)
ArielLeyva Mar 6, 2026
9f56826
chore(deps): update all non-major dependencies (#5794)
renovate[bot] Mar 6, 2026
a7dc7bf
chore: update translations (#5796)
transifex-integration[bot] Mar 6, 2026
8598db2
fix: added dateFormat to getUserDefaults so this is respected in the …
mszalbach Mar 6, 2026
8ee5576
fix(frontend): input password type
hacdias Mar 6, 2026
4d9e6b8
fix(frontend): do not delete original assets
hacdias Mar 6, 2026
cbcf708
chore(release): 2.61.2
hacdias Mar 6, 2026
c01b6a8
chore(deps): update dependency eslint to v10.0.3 (#5809)
renovate[bot] Mar 7, 2026
3cb21c7
chore(deps): update docker/login-action action to v4 (#5810)
renovate[bot] Mar 7, 2026
df63cb5
chore(deps): update docker/setup-buildx-action action to v4 (#5811)
renovate[bot] Mar 7, 2026
490e5bb
chore(deps): update docker/setup-qemu-action action to v4 (#5812)
renovate[bot] Mar 7, 2026
6700a98
docs: update readme
hacdias Mar 11, 2026
6dcef07
fix(upload): don't mark every folder-upload file as conflicting (#5813)
SergioChan Mar 11, 2026
f5f8b60
fix(upload): avoid skipping whole folder upload on conflict modal (#5…
SergioChan Mar 11, 2026
f04af0c
fix: allow deleting the user's own account (#5820)
ArielLeyva Mar 11, 2026
0542fc0
fix(tus): preserve percent-encoded upload paths in Location header (#…
SergioChan Mar 11, 2026
ef2e999
fix: properly surface config parse errors (#5822)
apkatsikas Mar 12, 2026
be8ba18
docs: add notice on proxy
hacdias Mar 12, 2026
79875ba
chore(deps): update marocchino/sticky-pull-request-comment action to …
renovate[bot] Mar 14, 2026
27afbb8
chore(deps): update dependency @vitejs/plugin-legacy to v8 (#5830)
renovate[bot] Mar 14, 2026
3c5d366
chore(deps): update all non-major dependencies (#5818)
renovate[bot] Mar 14, 2026
6f772f2
ci: update transifex settings
hacdias Mar 14, 2026
846fb33
chore(deps): update dependency vite to v8 (#5831)
renovate[bot] Mar 14, 2026
2170942
ci: update transifex settings
hacdias Mar 14, 2026
858eb42
feat: Updates for project File Browser (#5807)
transifex-integration[bot] Mar 14, 2026
c21af07
fix: around languages
hacdias Mar 14, 2026
4bd7d69
fix: clean path in patch handler
hacdias Mar 14, 2026
a63573b
fix: signup handler shouldn't create admins
hacdias Mar 14, 2026
09a2616
fix: make perm.share depend on share.download
hacdias Mar 14, 2026
6aea227
chore(release): 2.62.0
hacdias Mar 14, 2026
fc80f4f
fix: base url/reverse proxy redirect
hacdias Mar 14, 2026
b5f9707
chore(release): 2.62.1
hacdias Mar 14, 2026
811cf2d
chore(deps): update go-task/setup-task action to v2 (#5856)
renovate[bot] Mar 21, 2026
6d44b3a
chore(deps): update pnpm/action-setup action to v5 (#5857)
renovate[bot] Mar 21, 2026
4812536
fix: touch Redis upload cache key on GetLength to prevent TTL expiry …
arranpx Mar 26, 2026
ae72f93
chore(deps): update actions/deploy-pages action to v5 (#5866)
renovate[bot] Mar 28, 2026
432f3e6
fix: double slash in TUS upload path when readEntries returns multipl…
fabboe Mar 28, 2026
0616f68
chore: Updates for project File Browser (#5847)
transifex-integration[bot] Mar 28, 2026
8f81b77
fix: include filename in Content-Disposition header for inline downlo…
majiayu000 Mar 28, 2026
8d8cd26
chore(deps): update all non-major dependencies (#5838)
renovate[bot] Mar 28, 2026
2368e46
chore(deps): update pnpm/action-setup action to v5 (#5869)
renovate[bot] Mar 28, 2026
b6a4fb1
fix: self-registered users don't get execute perms
hacdias Mar 28, 2026
126227b
fix: disable scripted content in epub
hacdias Mar 28, 2026
d9f9460
fix: use html/template
hacdias Mar 28, 2026
c406bda
fix: json escaping
hacdias Mar 28, 2026
a8fc165
fix: shares listing
hacdias Mar 28, 2026
860c19d
chore(release): 2.62.2
hacdias Mar 28, 2026
0f39bd0
fix: check download permission when sharing permission is enabled (#5…
ArielLeyva Apr 4, 2026
7a16129
fix(tus): reject negative upload-length to prevent inconsistent cache…
ArielLeyva Apr 4, 2026
2f805de
docs: update docker compose
hacdias Apr 4, 2026
876cdb3
feat: enable copy operation on drag‑and‑drop with ctrl key (#5882)
ArielLeyva Apr 4, 2026
65a837d
chore(release): 2.63.0
hacdias Apr 4, 2026
7dbf7a3
fix: check share owner permissions on public share access (#5888)
kodareef5 Apr 4, 2026
8adf127
fix: enforce directory boundary in rule path matching (#5889)
kodareef5 Apr 4, 2026
1e03fea
fix: check download permission in resource handler (#5891)
kodareef5 Apr 4, 2026
f13c7c8
fix: restrict default permissions for proxy-auth auto-provisioned use…
kodareef5 Apr 4, 2026
29c73ea
chore(release): 2.63.1
hacdias Apr 4, 2026
871f337
chore(deps): update pnpm/action-setup action to v6 (#5898)
renovate[bot] Apr 11, 2026
0fadf28
fix(preview): let arrow keys seek video instead of switching files (#…
Brumaire Apr 11, 2026
23e84c9
docs: update PR template
hacdias Apr 11, 2026
0321415
chore: pull translations (#5871)
transifex-integration[bot] Apr 11, 2026
9b80a9a
chore(deps): update all non-major dependencies (#5870)
renovate[bot] Apr 11, 2026
dd53644
chore(release): 2.63.2
hacdias Apr 11, 2026
caabdc1
Merge remote-tracking branch 'upstream/master' into feat/merge-upstre…
laurynasgadl Apr 17, 2026
2a89f1b
feat: update translations
laurynasgadl Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
with:
package_json_file: "frontend/package.json"
- uses: actions/setup-node@v6
Expand All @@ -27,14 +27,32 @@ jobs:
pnpm install --frozen-lockfile
pnpm run lint

test-frontend:
name: Test Frontend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
package_json_file: "frontend/package.json"
- uses: actions/setup-node@v6
with:
node-version: "24.x"
cache: "pnpm"
cache-dependency-path: "frontend/pnpm-lock.yaml"
- working-directory: frontend
run: |
pnpm install --frozen-lockfile
pnpm run test

lint-backend:
name: Lint Backend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.x"
go-version: "1.26.x"
- uses: golangci/golangci-lint-action@v9
with:
version: "latest"
Expand All @@ -46,5 +64,5 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.x"
go-version: "1.26.x"
- run: go test --race ./...
7 changes: 7 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ builds:
- linux
- windows
- freebsd
- openbsd
goarch:
- amd64
- "386"
Expand All @@ -30,6 +31,12 @@ builds:
ignore:
- goos: darwin
goarch: "386"
# Experimental, may not work properly
- goos: openbsd
goarch: riscv64
# Broken as of Go 1.24, deprecated as of Go 1.26
- goos: windows
goarch: arm
- goos: freebsd
goarch: arm

Expand Down
196 changes: 196 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,202 @@

All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.

## [2.63.2](https://github.com/filebrowser/filebrowser/compare/v2.63.1...v2.63.2) (2026-04-11)


### Bug Fixes

* **preview:** let arrow keys seek video instead of switching files ([#5895](https://github.com/filebrowser/filebrowser/issues/5895)) ([0fadf28](https://github.com/filebrowser/filebrowser/commit/0fadf28b18e506ddca0027e83ebe567ac57932bf))

## [2.63.1](https://github.com/filebrowser/filebrowser/compare/v2.63.0...v2.63.1) (2026-04-04)


### Bug Fixes

* check download permission in resource handler ([#5891](https://github.com/filebrowser/filebrowser/issues/5891)) ([1e03fea](https://github.com/filebrowser/filebrowser/commit/1e03feadb550e4414b5589a6a8df57f538efba15))
* check share owner permissions on public share access ([#5888](https://github.com/filebrowser/filebrowser/issues/5888)) ([7dbf7a3](https://github.com/filebrowser/filebrowser/commit/7dbf7a3528234b2a9ee9c4115e8ecf58d258ca51))
* enforce directory boundary in rule path matching ([#5889](https://github.com/filebrowser/filebrowser/issues/5889)) ([8adf127](https://github.com/filebrowser/filebrowser/commit/8adf127c7d33585333b8030869f6f318e6517179))
* restrict default permissions for proxy-auth auto-provisioned users ([#5890](https://github.com/filebrowser/filebrowser/issues/5890)) ([f13c7c8](https://github.com/filebrowser/filebrowser/commit/f13c7c8cffd6d58ff29c4a6763ced1385f69961e))

## [2.63.0](https://github.com/filebrowser/filebrowser/compare/v2.62.2...v2.63.0) (2026-04-04)


### Features

* enable copy operation on drag‑and‑drop with ctrl key ([#5882](https://github.com/filebrowser/filebrowser/issues/5882)) ([876cdb3](https://github.com/filebrowser/filebrowser/commit/876cdb34265b090c2a74a69509f4106f2c5e8726))


### Bug Fixes

* check download permission when sharing permission is enabled ([#5875](https://github.com/filebrowser/filebrowser/issues/5875)) ([0f39bd0](https://github.com/filebrowser/filebrowser/commit/0f39bd055efdadc15abd2f8146cf5da3793f8318))
* **tus:** reject negative upload-length to prevent inconsistent cache entry ([#5876](https://github.com/filebrowser/filebrowser/issues/5876)) ([7a16129](https://github.com/filebrowser/filebrowser/commit/7a16129bfc07dbdc2fa52b99d2985c1bc0ea12e2))

## [2.62.2](https://github.com/filebrowser/filebrowser/compare/v2.62.1...v2.62.2) (2026-03-28)


### Bug Fixes

* disable scripted content in epub ([126227b](https://github.com/filebrowser/filebrowser/commit/126227bb2754eee15cd7c722916c3bb8821084a2))
* double slash in TUS upload path when readEntries returns multiple batches ([#5848](https://github.com/filebrowser/filebrowser/issues/5848)) ([432f3e6](https://github.com/filebrowser/filebrowser/commit/432f3e60ffdf92af6f8f56119a1bac8084f52a60))
* include filename in Content-Disposition header for inline downloads ([#5860](https://github.com/filebrowser/filebrowser/issues/5860)) ([8f81b77](https://github.com/filebrowser/filebrowser/commit/8f81b77cf2a3da0a445f3700fbf4a0091ea46c07))
* json escaping ([c406bda](https://github.com/filebrowser/filebrowser/commit/c406bda0c73ac8b187e23a97c05521edc77efa84))
* self-registered users don't get execute perms ([b6a4fb1](https://github.com/filebrowser/filebrowser/commit/b6a4fb1f27f4d894b384c0f3acacda276d1338a5))
* shares listing ([a8fc165](https://github.com/filebrowser/filebrowser/commit/a8fc1657b796c5da7190466beff13e680721b6d3))
* touch Redis upload cache key on GetLength to prevent TTL expiry ([#5850](https://github.com/filebrowser/filebrowser/issues/5850)) ([4812536](https://github.com/filebrowser/filebrowser/commit/48125365551ce2b27790aaafd7594cf5ce52f1ba))
* use html/template ([d9f9460](https://github.com/filebrowser/filebrowser/commit/d9f9460c1e51d10a25065e10358c12d5ced66ad9))

## [2.62.1](https://github.com/filebrowser/filebrowser/compare/v2.62.0...v2.62.1) (2026-03-14)


### Bug Fixes

* base url/reverse proxy redirect ([fc80f4f](https://github.com/filebrowser/filebrowser/commit/fc80f4f44c856ddc19df3024c245990fffd55630))

## [2.62.0](https://github.com/filebrowser/filebrowser/compare/v2.61.2...v2.62.0) (2026-03-14)


### Features

* Updates for project File Browser ([#5807](https://github.com/filebrowser/filebrowser/issues/5807)) ([858eb42](https://github.com/filebrowser/filebrowser/commit/858eb426515ec55172e9cca47bdf1e25a0d0d81d))


### Bug Fixes

* allow deleting the user's own account ([#5820](https://github.com/filebrowser/filebrowser/issues/5820)) ([f04af0c](https://github.com/filebrowser/filebrowser/commit/f04af0cac6c808b8e7c9a9651380c252c4de9132))
* around languages ([c21af07](https://github.com/filebrowser/filebrowser/commit/c21af0791a5df458c2ddb81ce9ae44b772b6d82d))
* clean path in patch handler ([4bd7d69](https://github.com/filebrowser/filebrowser/commit/4bd7d69c82163b201a987e99c0c50d7ecc6ee5f1))
* make perm.share depend on share.download ([09a2616](https://github.com/filebrowser/filebrowser/commit/09a26166b4f79446e7174c017380f6db45444e32))
* properly surface config parse errors ([#5822](https://github.com/filebrowser/filebrowser/issues/5822)) ([ef2e999](https://github.com/filebrowser/filebrowser/commit/ef2e9992dc3098f6c4722c2a98966cd8abf8bab5))
* signup handler shouldn't create admins ([a63573b](https://github.com/filebrowser/filebrowser/commit/a63573b67eb302167b4c4f218361a2d0c138deab))
* **tus:** preserve percent-encoded upload paths in Location header ([#5817](https://github.com/filebrowser/filebrowser/issues/5817)) ([0542fc0](https://github.com/filebrowser/filebrowser/commit/0542fc0ba43740c967414eebd156bac86ad80376))
* **upload:** avoid skipping whole folder upload on conflict modal ([#5814](https://github.com/filebrowser/filebrowser/issues/5814)) ([f5f8b60](https://github.com/filebrowser/filebrowser/commit/f5f8b60b331a07729a1fed1ed065cb6fc20930ea))
* **upload:** don't mark every folder-upload file as conflicting ([#5813](https://github.com/filebrowser/filebrowser/issues/5813)) ([6dcef07](https://github.com/filebrowser/filebrowser/commit/6dcef07f40d550acee63dd01e0a3bcf78532f690))

## [2.61.2](https://github.com/filebrowser/filebrowser/compare/v2.61.1...v2.61.2) (2026-03-06)


### Bug Fixes

* added dateFormat to getUserDefaults so this is respected in the … ([#5804](https://github.com/filebrowser/filebrowser/issues/5804)) ([8598db2](https://github.com/filebrowser/filebrowser/commit/8598db2accccf5b87353e5e718b2ad1c946e5c44))
* avoid sending the same name in the file/folder rename modal ([#5806](https://github.com/filebrowser/filebrowser/issues/5806)) ([d7b00ce](https://github.com/filebrowser/filebrowser/commit/d7b00ce5f672b7ce0b26ce31abdfc74f8b00b939))
* **csv-viewer:** add support for missing text encodings in dropdown list ([#5795](https://github.com/filebrowser/filebrowser/issues/5795)) ([4af3f85](https://github.com/filebrowser/filebrowser/commit/4af3f85e64e795e8ae1d87d4caee8185028294ac))
* **frontend:** do not delete original assets ([4d9e6b8](https://github.com/filebrowser/filebrowser/commit/4d9e6b821852203cef67233791a922013bd5b64d))
* **frontend:** input password type ([8ee5576](https://github.com/filebrowser/filebrowser/commit/8ee55761a1aa9bc091d8466c44f03c2043a8ca79))
* validate current password with a modal ([#5805](https://github.com/filebrowser/filebrowser/issues/5805)) ([177c7cf](https://github.com/filebrowser/filebrowser/commit/177c7cfcce36779e2c5ebaa4b59a055dd1e17648))

## [2.61.1](https://github.com/filebrowser/filebrowser/compare/v2.61.0...v2.61.1) (2026-03-04)


### Bug Fixes

* check for correct permission in TUS Delete ([7ed1425](https://github.com/filebrowser/filebrowser/commit/7ed1425115be602c2b23236c410098ea2d74b42f))

## [2.61.0](https://github.com/filebrowser/filebrowser/compare/v2.60.0...v2.61.0) (2026-02-28)


### Features

* improved conflict resolution when uploading/copying/moving files ([#5765](https://github.com/filebrowser/filebrowser/issues/5765)) ([aa80909](https://github.com/filebrowser/filebrowser/commit/aa809096eb35fdfbdeb6784b1ebfe2ca1e42f52b))


### Bug Fixes

* correctly clean path ([31194fb](https://github.com/filebrowser/filebrowser/commit/31194fb57a5b92e7155219d7ec7273028fcb2e83))

## [2.60.0](https://github.com/filebrowser/filebrowser/compare/v2.59.0...v2.60.0) (2026-02-21)


### Features

* Updates for project File Browser ([#5764](https://github.com/filebrowser/filebrowser/issues/5764)) ([9940bdd](https://github.com/filebrowser/filebrowser/commit/9940bdd663ff5141110778524b8a22c957036e78))


### Bug Fixes

* always show separators and encoding list in the CSV viewer ([#5774](https://github.com/filebrowser/filebrowser/issues/5774)) ([3169a14](https://github.com/filebrowser/filebrowser/commit/3169a14a4d63a0a11a5288f4f3a674c0a0edb972))
* modal lifecycle issues, multiple modals, new directory creation and discard changes behavior ([#5773](https://github.com/filebrowser/filebrowser/issues/5773)) ([200d501](https://github.com/filebrowser/filebrowser/commit/200d5015472c79d5caa683ea291ebf500356a39f))

## [2.59.0](https://github.com/filebrowser/filebrowser/compare/v2.58.0...v2.59.0) (2026-02-15)


### Features

* add 'Open direct' button to images ([#5678](https://github.com/filebrowser/filebrowser/issues/5678)) ([804b14b](https://github.com/filebrowser/filebrowser/commit/804b14b698aa218fa5c2aaba687e72c5f7617f0f))
* Updates for project File Browser ([#5760](https://github.com/filebrowser/filebrowser/issues/5760)) ([63a76ef](https://github.com/filebrowser/filebrowser/commit/63a76ef18c51121e08634810a894c1e22a870428))


### Bug Fixes

* render equations in markdown preview ([#5745](https://github.com/filebrowser/filebrowser/issues/5745)) ([0467326](https://github.com/filebrowser/filebrowser/commit/0467326d5c082c42c0ede88ee2d3472f5fb65600))

## [2.58.0](https://github.com/filebrowser/filebrowser/compare/v2.57.1...v2.58.0) (2026-02-14)


### Features

* nederlands ([88b97de](https://github.com/filebrowser/filebrowser/commit/88b97def9ee72fe6e8094209aebb71830b7305be))
* support for multiple encodings in CSV files ([#5756](https://github.com/filebrowser/filebrowser/issues/5756)) ([f67bccf](https://github.com/filebrowser/filebrowser/commit/f67bccf8c5470cb280fe854d92aa2666c270bcf5))
* Updates for project File Browser ([#5749](https://github.com/filebrowser/filebrowser/issues/5749)) ([c94870f](https://github.com/filebrowser/filebrowser/commit/c94870fcfe1b4acb2db9ab897b9f7d35e3b75770))
* Updates for project File Browser ([#5759](https://github.com/filebrowser/filebrowser/issues/5759)) ([5e8f5be](https://github.com/filebrowser/filebrowser/commit/5e8f5be245fd0126545ef5ca61c2d428ac128ad5))


### Bug Fixes

* **frontend:** pnpm lock ([b09960e](https://github.com/filebrowser/filebrowser/commit/b09960e538387ff29371c80be1584720f65181e7))
* ignore version.go ([1f7904d](https://github.com/filebrowser/filebrowser/commit/1f7904dad21a87f04e1543ee10b60ce79e5eebe9))
* respect Accept-Encoding for pre-compressed JS ([#5750](https://github.com/filebrowser/filebrowser/issues/5750)) ([6a76dfe](https://github.com/filebrowser/filebrowser/commit/6a76dfeba9254a938e320928c67d110f73f83715))
* wrap response text in Error before reject ([#5753](https://github.com/filebrowser/filebrowser/issues/5753)) ([e5bc0d3](https://github.com/filebrowser/filebrowser/commit/e5bc0d3cce18fa7b069688b176b99efbb67382d2))

## [2.57.1](https://github.com/filebrowser/filebrowser/compare/v2.57.0...v2.57.1) (2026-02-08)


### Bug Fixes

* normalize fields capitalization ([ff2f004](https://github.com/filebrowser/filebrowser/commit/ff2f00498cff151e2fb1f5f0b16963bf33c3d6d4))
* remove skip clean ([489af40](https://github.com/filebrowser/filebrowser/commit/489af403a19057f6b6b4b1dc0e48cbb26a202ef9))

## [2.57.0](https://github.com/filebrowser/filebrowser/compare/v2.56.0...v2.57.0) (2026-02-01)


### Features

* Add Redis upload cache for multi-replica deployments ([#5724](https://github.com/filebrowser/filebrowser/issues/5724)) ([08d7a15](https://github.com/filebrowser/filebrowser/commit/08d7a1504c42c115fdd82d3845694fe87147f1db))
* Updates for project File Browser ([#5725](https://github.com/filebrowser/filebrowser/issues/5725)) ([8fee256](https://github.com/filebrowser/filebrowser/commit/8fee2561afbf968ed577bc4139562a42b2278243))


### Bug Fixes

* adjust yaml config decodification to yaml.v3 ([#5722](https://github.com/filebrowser/filebrowser/issues/5722)) ([b594d4d](https://github.com/filebrowser/filebrowser/commit/b594d4d4e28a1b35e69d81d2c35948fe0d629888))
* avoid 409 conflict when renaming files differing only by case ([#5729](https://github.com/filebrowser/filebrowser/issues/5729)) ([d441b28](https://github.com/filebrowser/filebrowser/commit/d441b28f432c3448a29ac828400321f1f4ed32d9))

## [2.56.0](https://github.com/filebrowser/filebrowser/compare/v2.55.0...v2.56.0) (2026-01-24)


### Features

* Updates for project File Browser ([#5698](https://github.com/filebrowser/filebrowser/issues/5698)) ([f0f2f1f](https://github.com/filebrowser/filebrowser/commit/f0f2f1ff069aae566d8bf25ec275da59f29a96bc))


### Bug Fixes

* adjust columns of the table from the "users ls" command ([#5716](https://github.com/filebrowser/filebrowser/issues/5716)) ([3032a1f](https://github.com/filebrowser/filebrowser/commit/3032a1fade43737c51c49b5ccda34f336394c2ed))
* avoid clearing selection when clicking elements outside the empty area ([#5715](https://github.com/filebrowser/filebrowser/issues/5715)) ([004488c](https://github.com/filebrowser/filebrowser/commit/004488c15b3c30784e1ea564b3ca9feec7bcad08))

## [2.55.0](https://github.com/filebrowser/filebrowser/compare/v2.54.0...v2.55.0) (2026-01-18)


### Features

* added cut, copy, paste and show command palette functions in header ([#5648](https://github.com/filebrowser/filebrowser/issues/5648)) ([785b7ab](https://github.com/filebrowser/filebrowser/commit/785b7abb7ba7a86cc0deae1052c319ff714c222c))
* update translations ([#5677](https://github.com/filebrowser/filebrowser/issues/5677)) ([e7ea1ad](https://github.com/filebrowser/filebrowser/commit/e7ea1ad27d3d17e249489d3338be40bfea15e2a1))


### Bug Fixes

* prevent context menu clicks from clearing file selection ([#5681](https://github.com/filebrowser/filebrowser/issues/5681)) ([59ca0c3](https://github.com/filebrowser/filebrowser/commit/59ca0c340afc7774747c70ede9a5a5a3c9349d6b))
* request current password when deleting users ([#5667](https://github.com/filebrowser/filebrowser/issues/5667)) ([cfa6c58](https://github.com/filebrowser/filebrowser/commit/cfa6c5864e5e7673aa9f3180e4964e0db92cc4da))
* retain file selection when closing the editor ([#5693](https://github.com/filebrowser/filebrowser/issues/5693)) ([4094fb3](https://github.com/filebrowser/filebrowser/commit/4094fb359babac70e88d0ed4bfe3bd100744aad6))

## [2.54.0](https://github.com/filebrowser/filebrowser/compare/v2.53.1...v2.54.0) (2026-01-10)


Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ This project is a finished product which fulfills its goal: be a single binary w

- It can take a while until someone gets back to you. Please be patient.
- [Issues](https://github.com/filebrowser/filebrowser/issues) are meant to track bugs. Unrelated issues will be converted into [discussions](https://github.com/filebrowser/filebrowser/discussions).
- No new features will be implemented by maintainers. Pull requests for new features will be reviewed on a case by case basis.
- The priority is triaging issues, addressing security issues and reviewing pull requests meant to solve bugs.
- No new features are planned. Pull requests for new features are not guaranteed to be reviewed.

Please read [@hacdias' personal reflection](https://hacdias.com/2026/03/11/filebrowser/) on the project status.

## Contributing

Expand Down
2 changes: 2 additions & 0 deletions auth/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ func (a *HookAuth) SaveUser() (*users.User, error) {
Sorting: a.Settings.Defaults.Sorting,
Perm: a.Settings.Defaults.Perm,
Commands: a.Settings.Defaults.Commands,
DateFormat: a.Settings.Defaults.DateFormat,
HideDotfiles: a.Settings.Defaults.HideDotfiles,
}
u = a.GetUser(d)
Expand Down Expand Up @@ -233,6 +234,7 @@ func (a *HookAuth) GetUser(d *users.User) *users.User {
By: a.Fields.GetString("user.sorting.by", d.Sorting.By),
},
Commands: a.Fields.GetArray("user.commands", d.Commands),
DateFormat: a.Fields.GetBoolean("user.dateFormat", d.DateFormat),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

user.dateFormat hook value is currently ignored due to whitelist filtering.

Line 237 reads user.dateFormat, but GetValues drops unknown keys and validHookFields does not include this field. So hook-provided date format updates never apply.

Proposed fix
 var validHookFields = []string{
 	"hook.action",
 	"user.scope",
 	"user.locale",
 	"user.viewMode",
 	"user.singleClick",
 	"user.redirectAfterCopyMove",
 	"user.sorting.by",
 	"user.sorting.asc",
 	"user.commands",
+	"user.dateFormat",
 	"user.hideDotfiles",
 	"user.perm.admin",
 	"user.perm.execute",
 	"user.perm.create",
 	"user.perm.rename",
 	"user.perm.modify",
 	"user.perm.delete",
 	"user.perm.share",
 	"user.perm.download",
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
DateFormat: a.Fields.GetBoolean("user.dateFormat", d.DateFormat),
var validHookFields = []string{
"hook.action",
"user.scope",
"user.locale",
"user.viewMode",
"user.singleClick",
"user.redirectAfterCopyMove",
"user.sorting.by",
"user.sorting.asc",
"user.commands",
"user.dateFormat",
"user.hideDotfiles",
"user.perm.admin",
"user.perm.execute",
"user.perm.create",
"user.perm.rename",
"user.perm.modify",
"user.perm.delete",
"user.perm.share",
"user.perm.download",
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@auth/hook.go` at line 237, The hook's "user.dateFormat" value is being
dropped because the whitelist in validHookFields (used by GetValues) doesn't
include DateFormat, so a.Fields.GetBoolean("user.dateFormat", d.DateFormat)
never gets a value from hooks; update the whitelist to include the
"user.dateFormat" key (or rename to match the existing allowed key) and ensure
the value is handled in the same code path that reads other hook fields
(referencing validHookFields, GetValues, and the struct field DateFormat) so
hook-provided date format updates are accepted and applied.

HideDotfiles: a.Fields.GetBoolean("user.hideDotfiles", d.HideDotfiles),
Perm: perms,
LockPassword: true,
Expand Down
16 changes: 15 additions & 1 deletion auth/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ import (
// MethodJSONAuth is used to identify json auth.
const MethodJSONAuth settings.AuthMethod = "json"

// dummyHash is used to prevent user enumeration timing attacks.
// It MUST be a valid bcrypt hash.
const dummyHash = "$2a$10$O4mEMeOL/nit6zqe.WQXauLRbRlzb3IgLHsa26Pf0N/GiU9b.wK1m"

type jsonCred struct {
Password string `json:"password"`
Username string `json:"username"`
Expand Down Expand Up @@ -52,7 +56,17 @@ func (a JSONAuth) Auth(r *http.Request, usr users.Store, _ *settings.Settings, s
}

u, err := usr.Get(srv.Root, cred.Username)
if err != nil || !users.CheckPwd(cred.Password, u.Password) {

hash := dummyHash
if err == nil {
hash = u.Password
}

if !users.CheckPwd(cred.Password, hash) {
return nil, os.ErrPermission
}

if err != nil {
return nil, os.ErrPermission
Comment on lines 58 to 70
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Store failures are being masked as invalid credentials.

Current flow turns all usr.Get failures into os.ErrPermission. That also hides real backend failures (DB/network/store issues) as auth failures, which hurts reliability and incident visibility.

Proposed fix (keep anti-enumeration for not-found, preserve real errors)
 import (
+	"errors"
 	"encoding/json"
 	"net/http"
 	"net/url"
 	"os"
 	"strings"
 
+	fberrors "github.com/filebrowser/filebrowser/v2/errors"
 	"github.com/filebrowser/filebrowser/v2/settings"
 	"github.com/filebrowser/filebrowser/v2/users"
 )
@@
 	u, err := usr.Get(srv.Root, cred.Username)
+	if err != nil && !errors.Is(err, fberrors.ErrNotExist) {
+		return nil, err
+	}
 
 	hash := dummyHash
-	if err == nil {
+	if err == nil && u != nil {
 		hash = u.Password
 	}
 
 	if !users.CheckPwd(cred.Password, hash) {
 		return nil, os.ErrPermission
 	}
 
-	if err != nil {
+	if err != nil || u == nil {
 		return nil, os.ErrPermission
 	}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
u, err := usr.Get(srv.Root, cred.Username)
if err != nil || !users.CheckPwd(cred.Password, u.Password) {
hash := dummyHash
if err == nil {
hash = u.Password
}
if !users.CheckPwd(cred.Password, hash) {
return nil, os.ErrPermission
}
if err != nil {
return nil, os.ErrPermission
u, err := usr.Get(srv.Root, cred.Username)
if err != nil && !errors.Is(err, fberrors.ErrNotExist) {
return nil, err
}
hash := dummyHash
if err == nil && u != nil {
hash = u.Password
}
if !users.CheckPwd(cred.Password, hash) {
return nil, os.ErrPermission
}
if err != nil || u == nil {
return nil, os.ErrPermission
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@auth/json.go` around lines 58 - 70, The code currently maps every usr.Get
error to os.ErrPermission, hiding real backend failures; change the logic to
only mask "user not found" errors for anti-enumeration while returning real
errors for other failures: call usr.Get(srv.Root, cred.Username), if err == nil
use u.Password, if errors.Is(err, <usr not-found sentinel like usr.ErrNotFound
or store.ErrNotFound>) set hash = dummyHash and continue to CheckPwd, but if err
!= nil and not a not-found sentinel return the original err immediately; use
errors.Is to compare sentinel errors and keep the dummyHash/timing protection
when user is missing.

}

Expand Down
3 changes: 3 additions & 0 deletions auth/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ func (a ProxyAuth) createUser(usr users.Store, setting *settings.Settings, srv *
LockPassword: true,
}
setting.Defaults.Apply(user)
user.Perm.Admin = false
user.Perm.Execute = false
user.Commands = []string{}

var userHome string
userHome, err = setting.MakeUserDir(user.Username, user.Scope, srv.Root)
Expand Down
Loading