MickaelK
da731c17e8
chore (maintenance): thumbnailing for webp
2025-08-22 16:24:58 +10:00
MickaelK
bddc77960f
fix (plg_search_sqlitefts): improve indexing
2025-08-17 20:19:29 +10:00
MickaelK
7af5da9622
chore (plg_search_sqlitefts): remove unused code
2025-08-17 18:46:42 +10:00
MickaelK
3d5f307139
fix (plg_search_sqlitefts): exclusion field
2025-08-17 17:31:32 +10:00
MickaelK
3bf3c71d8c
feature (session): enable plugin to handle auth response
2025-08-13 18:11:47 +10:00
MickaelK
e397c56544
fix (plg_security_scanner): broken scanner
2025-08-08 14:39:30 +10:00
MickaelK
dee4108fbc
feature (license): update from agpl license
2025-08-08 14:13:29 +10:00
MickaelK
cc031163d9
fix (zip): handle offline edge case
2025-08-04 23:26:38 +10:00
MickaelK
5e7c5094b6
fix (admin): multi tabs issues
2025-08-04 13:14:39 +10:00
MickaelK
d4f5cb9ecf
feature (plg_authenticate_local): revamp UX of the auth plugin
2025-08-04 12:50:23 +10:00
MickaelK
28ac33d2b5
fix (plugin): list of plugin by default
2025-07-25 11:34:15 +10:00
MickaelK
8a36ba943a
feature (plg_application_office): libreoffice lowa
2025-07-18 20:29:17 +10:00
MickaelK
2e7247ec7c
feature (plg_authentication_htpasswd): bcrypt support
2025-07-10 00:26:13 +10:00
MickaelK
b59707c111
Merge branch 'master' of ssh://github.com/mickael-kerjean/filestash
2025-06-30 12:18:47 +10:00
Tobias Kaiser
45432e1f32
fix (htpasswd): hash acceptance rules - #821
...
For htpasswd entries where hash is an actual valid hash (SHA etc.), the hash
itself should not be accepted as password. Otherwise, obtaining the htpasswd
file gives an attacker access to all accounts withoutneeding to crack/reverse
hashes.
This commit tries to ensure that hash==password is only accepted if hash is
not a valid hash (plaintext password fallback).
2025-06-30 12:18:37 +10:00
MickaelK
72312435cf
chore (refactoring): cleanup plugin
2025-06-30 12:11:42 +10:00
lemtea8
9f2728c8b2
chore (refactoring): replace ioutil with io - #847
2025-06-18 10:07:11 +10:00
badguy001
1cda6505ba
fix (language): wopi language - #845
...
According to the UI default language, the UI language of collabora/code must be explicitly specified within the URL( &lang=pt-BR ); otherwise, the UI language will always default to English (en).
2025-06-18 10:04:45 +10:00
MickaelK
a54fa5da00
fix (s3): default region for s3
2025-06-12 00:54:22 +10:00
MickaelK
2616c078b5
feature (s3): add timeout option for very large buckets
2025-06-10 21:42:17 +10:00
MickaelK
f4a99c4ad6
chore (plugin): revamp frontend plugin
2025-06-09 15:38:37 +10:00
MickaelK
fb29c7b6c2
feature (offline): handle offline files
2025-06-05 12:58:09 +10:00
MickaelK
c1834faa23
feature (thumbnail): revamp thumbnail plugin
...
We revamped the plugin so it doesn't have extra dependencies. The issue
is when images have external dependencies, forcing users to use
something like docker to satisfy those but as we see these days, we can
ship the viewer for heic as a wasm plugin existing client side and can
focus on building a smaller footprint server
2025-05-26 15:34:38 +10:00
MickaelK
ad14ad658a
chore (maintenance): image thumbnail
...
the issue of plg_image_c is its reliance on shared libraries like libraw
which depends on lcms2 and libheif which depends on a whole bunch of
other stuff. That make releasing a fat binary that just work of
Filestash tricky
if someone ever read this, I would gladly get help to integrate the
whole build of those things within CI without prolonging the build time
by 2 hours.
2025-05-22 02:23:28 +10:00
MickaelK
d5628fd03d
fix (s3): region issue on s3
...
for server like versitygw which as of today doesn't support
getBucketLocation, we'd be sending the wrong region through
2025-05-12 21:05:17 +10:00
MickaelK
73bab4a2e3
feature (3d): handle mesh files
2025-04-29 13:51:56 +10:00
MickaelK
3b6253cfbd
feature (plg_application_3d): revamp support for 3d files
2025-04-23 00:36:38 +10:00
MickaelK
6277d00250
chore (readme): plugin doc
2025-04-15 21:39:38 +10:00
MickaelK
bf69108c54
feature (plg_override_actiondelete): delete icon on file
2025-04-09 21:02:04 +10:00
MickaelK
c43364eafa
chore (plg_backend_local): better perm default
2025-04-09 14:43:06 +10:00
MickaelK
084bb33e83
fix (s3): handle cancellation
2025-04-09 14:42:21 +10:00
MickaelK
a29ec2cda9
chore (doc): plg_handler_mcp doc
2025-04-02 03:00:57 +11:00
MickaelK
777200374d
chore (mcp): refactor mcp stuff
2025-04-02 00:26:21 +11:00
MickaelK
7821bc8681
feature (mcp): mcp server
2025-04-01 11:00:41 +11:00
MickaelK
eb7e30424e
fix (capitalisation): disable android capit.
2025-03-18 20:57:34 +11:00
MickaelK
ba3ed7b945
fix (plg_search_sqlitefs): context issue
2025-03-14 16:04:53 +11:00
MickaelK
21c8a7f597
fix (s3): assume role on ecs
2025-02-21 17:26:00 +11:00
MickaelK
849f206408
feature (plg_backend_url): url storage backend
...
usefull for open directory kind of scenarios.
cool example at play: https://locker.phinugamma.org/swf/
2025-02-05 01:57:16 +11:00
MickaelK
b2c9b29384
chore (refactoring): revamp sqlite full text search
2025-02-03 16:01:50 +11:00
MickaelK
db86daf867
fix (plg_search_sqlitefs): refactoring
2025-01-31 23:48:59 +11:00
MickaelK
773fd02871
fix (plg_office_wopi): wopi office integration
2025-01-30 17:49:40 +11:00
MickaelK
6e2a99adf1
fix (plg_office_wopi): shared link on wopi issue
2025-01-30 12:58:47 +11:00
MickaelK
42fd37e2ec
fix (sharedlink): issue with ifram / wopi
2025-01-24 13:59:11 +11:00
MickaelK
4ed4365a33
fix (smb): finicky persistent stuff when decorated
2025-01-23 04:11:44 +11:00
Mickael
e9870f72f2
chore (refactoring): revamp map to plugin mechanism ( #805 )
...
* chore (refactoring): revamp map to plugin mechanism
* chore (docker): Dockerfile
2025-01-14 15:01:17 +11:00
MickaelK
fd839808b7
feature (feedback): suggestion from a redditor
2025-01-13 17:41:29 +11:00
Mickael
d30c3120b6
feature (plugins): expand and migrate plugin - #803
...
* chore (dockerfile): cleanup dockerfile
* feature (plugin): extend plugin interface
* chore (docker): setup new Dockerfile
* chore (dockerfile): update dockerfile
2025-01-13 15:41:04 +11:00
Mickael
82dd3adf5d
fix (versitygw): better handling of missing filesize
...
* fix (s3): bug on versitygw
the plugin would break on versitgw which on some version isn't sending
the size metadata, ending with a null pointer dereference.
I wasn't able to replicate this on my own but the bug report shows:
2025/01/10 04:35:47 http: panic serving 130.194.66.248:54701: runtime error: invalid memory address or nil pointer dereference
goroutine 5590 [running]:
net/http.(*conn).serve.func1()
/usr/local/go/src/net/http/server.go:1947 +0xbe
panic({0x19c2740?, 0x535ece0?})
/usr/local/go/src/runtime/panic.go:785 +0x132
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls.func1(0xc000986bd0, 0xe0?)
/home/server/plugin/plg_backend_s3/index.go:218 +0x18a
github.com/aws/aws-sdk-go/service/s3.(*S3).ListObjectsV2PagesWithContext(0xc0005b01a8, {0x46ae758, 0xc000f187e0}, 0xc0006649a0, 0xc0005d7270, {0x0, 0x0, 0x0})
/home/vendor/github.com/aws/aws-sdk-go/service/s3/api.go:7654 +0x1ad
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls({0xc0005b0178, 0xc00074cd80, 0xc000f188a0, {0x46ae758, 0xc000f187e0}, 0x32}, {0xc0008810f0?, 0x99?})
/home/server/plugin/plg_backend_s3/index.go:202 +0x31a
github.com/mickael-kerjean/filestash/filestash-enterprise/plugins/utils.wrapper.Ls({{0x46b77c0, 0xc000f18ff0}, {0x5511fc0, 0x0, 0x0}}, {0xc0008810f0?, 0x165dc9a?})
/home/filestash-enterprise/plugins/utils/authorisation.go:64 +0x94
github.com/mickael-kerjean/filestash/server/ctrl.FileLs(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/ctrl/files.go:136 +0x7a2
github.com/mickael-kerjean/filestash/server/middleware.LoggedInOnly.func1(0xc000001d40?, {0x46a8bc8, 0xc000f18810}, 0x0?)
/home/server/middleware/session.go:23 +0x2e
github.com/mickael-kerjean/filestash/server/middleware.SessionStart.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/session.go:77 +0x2e7
github.com/mickael-kerjean/filestash/server/middleware.WithPublicAPI.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:115 +0x3a7
github.com/mickael-kerjean/filestash/server/middleware.SecureOrigin.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:99 +0x4a2
github.com/mickael-kerjean/filestash/server/middleware.SecureHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:79 +0x28c
github.com/mickael-kerjean/filestash/server/middleware.ApiHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:22 +0x29d
github.com/mickael-kerjean/filestash/server.Build.NewMiddlewareChain.func18({0x46a8cb8, 0xc000904000}, 0xc000227680)
/home/server/middleware/index.go:28 +0x17b
net/http.HandlerFunc.ServeHTTP(0xc000227540?, {0x46a8cb8?, 0xc000904000?}, 0x52f069?)
/usr/local/go/src/net/http/server.go:2220 +0x29
github.com/gorilla/mux.(*Router).ServeHTTP(0xc000000480, {0x46a8cb8, 0xc000904000}, 0xc000227400)
/home/vendor/github.com/gorilla/mux/mux.go:212 +0x1e2
net/http.serverHandler.ServeHTTP({0xc000c41d40?}, {0x46a8cb8?, 0xc000904000?}, 0x6?)
/usr/local/go/src/net/http/server.go:3210 +0x8e
net/http.(*conn).serve(0xc00059d950, {0x46ae758, 0xc000832240})
/usr/local/go/src/net/http/server.go:2092 +0x5d0
created by net/http.(*Server).Serve in goroutine 135
/usr/local/go/src/net/http/server.go:3360 +0x485
* fix (s3): versitygw issue
* fix (uint64): size
* fix (s3): better handling of missing size info
2025-01-10 16:23:29 +11:00
Mickael
29db7d6934
fix ( #799 ): s3 - versitygw bug
...
* fix (s3): bug on versitygw
the plugin would break on versitgw which on some version isn't sending
the size metadata, ending with a null pointer dereference.
I wasn't able to replicate this on my own but the bug report shows:
2025/01/10 04:35:47 http: panic serving 130.194.66.248:54701: runtime error: invalid memory address or nil pointer dereference
goroutine 5590 [running]:
net/http.(*conn).serve.func1()
/usr/local/go/src/net/http/server.go:1947 +0xbe
panic({0x19c2740?, 0x535ece0?})
/usr/local/go/src/runtime/panic.go:785 +0x132
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls.func1(0xc000986bd0, 0xe0?)
/home/server/plugin/plg_backend_s3/index.go:218 +0x18a
github.com/aws/aws-sdk-go/service/s3.(*S3).ListObjectsV2PagesWithContext(0xc0005b01a8, {0x46ae758, 0xc000f187e0}, 0xc0006649a0, 0xc0005d7270, {0x0, 0x0, 0x0})
/home/vendor/github.com/aws/aws-sdk-go/service/s3/api.go:7654 +0x1ad
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls({0xc0005b0178, 0xc00074cd80, 0xc000f188a0, {0x46ae758, 0xc000f187e0}, 0x32}, {0xc0008810f0?, 0x99?})
/home/server/plugin/plg_backend_s3/index.go:202 +0x31a
github.com/mickael-kerjean/filestash/filestash-enterprise/plugins/utils.wrapper.Ls({{0x46b77c0, 0xc000f18ff0}, {0x5511fc0, 0x0, 0x0}}, {0xc0008810f0?, 0x165dc9a?})
/home/filestash-enterprise/plugins/utils/authorisation.go:64 +0x94
github.com/mickael-kerjean/filestash/server/ctrl.FileLs(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/ctrl/files.go:136 +0x7a2
github.com/mickael-kerjean/filestash/server/middleware.LoggedInOnly.func1(0xc000001d40?, {0x46a8bc8, 0xc000f18810}, 0x0?)
/home/server/middleware/session.go:23 +0x2e
github.com/mickael-kerjean/filestash/server/middleware.SessionStart.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/session.go:77 +0x2e7
github.com/mickael-kerjean/filestash/server/middleware.WithPublicAPI.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:115 +0x3a7
github.com/mickael-kerjean/filestash/server/middleware.SecureOrigin.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:99 +0x4a2
github.com/mickael-kerjean/filestash/server/middleware.SecureHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:79 +0x28c
github.com/mickael-kerjean/filestash/server/middleware.ApiHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:22 +0x29d
github.com/mickael-kerjean/filestash/server.Build.NewMiddlewareChain.func18({0x46a8cb8, 0xc000904000}, 0xc000227680)
/home/server/middleware/index.go:28 +0x17b
net/http.HandlerFunc.ServeHTTP(0xc000227540?, {0x46a8cb8?, 0xc000904000?}, 0x52f069?)
/usr/local/go/src/net/http/server.go:2220 +0x29
github.com/gorilla/mux.(*Router).ServeHTTP(0xc000000480, {0x46a8cb8, 0xc000904000}, 0xc000227400)
/home/vendor/github.com/gorilla/mux/mux.go:212 +0x1e2
net/http.serverHandler.ServeHTTP({0xc000c41d40?}, {0x46a8cb8?, 0xc000904000?}, 0x6?)
/usr/local/go/src/net/http/server.go:3210 +0x8e
net/http.(*conn).serve(0xc00059d950, {0x46ae758, 0xc000832240})
/usr/local/go/src/net/http/server.go:2092 +0x5d0
created by net/http.(*Server).Serve in goroutine 135
/usr/local/go/src/net/http/server.go:3360 +0x485
* fix (s3): versitygw issue
* fix (uint64): size
2025-01-10 16:13:33 +11:00
Mickael
0d8ea12517
fix (s3): bug on versitygw ( #798 )
...
the plugin would break on versitgw which on some version isn't sending
the size metadata, ending with a null pointer dereference.
I wasn't able to replicate this on my own but the bug report shows:
2025/01/10 04:35:47 http: panic serving 130.194.66.248:54701: runtime error: invalid memory address or nil pointer dereference
goroutine 5590 [running]:
net/http.(*conn).serve.func1()
/usr/local/go/src/net/http/server.go:1947 +0xbe
panic({0x19c2740?, 0x535ece0?})
/usr/local/go/src/runtime/panic.go:785 +0x132
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls.func1(0xc000986bd0, 0xe0?)
/home/server/plugin/plg_backend_s3/index.go:218 +0x18a
github.com/aws/aws-sdk-go/service/s3.(*S3).ListObjectsV2PagesWithContext(0xc0005b01a8, {0x46ae758, 0xc000f187e0}, 0xc0006649a0, 0xc0005d7270, {0x0, 0x0, 0x0})
/home/vendor/github.com/aws/aws-sdk-go/service/s3/api.go:7654 +0x1ad
github.com/mickael-kerjean/filestash/server/plugin/plg_backend_s3.S3Backend.Ls({0xc0005b0178, 0xc00074cd80, 0xc000f188a0, {0x46ae758, 0xc000f187e0}, 0x32}, {0xc0008810f0?, 0x99?})
/home/server/plugin/plg_backend_s3/index.go:202 +0x31a
github.com/mickael-kerjean/filestash/filestash-enterprise/plugins/utils.wrapper.Ls({{0x46b77c0, 0xc000f18ff0}, {0x5511fc0, 0x0, 0x0}}, {0xc0008810f0?, 0x165dc9a?})
/home/filestash-enterprise/plugins/utils/authorisation.go:64 +0x94
github.com/mickael-kerjean/filestash/server/ctrl.FileLs(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/ctrl/files.go:136 +0x7a2
github.com/mickael-kerjean/filestash/server/middleware.LoggedInOnly.func1(0xc000001d40?, {0x46a8bc8, 0xc000f18810}, 0x0?)
/home/server/middleware/session.go:23 +0x2e
github.com/mickael-kerjean/filestash/server/middleware.SessionStart.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/session.go:77 +0x2e7
github.com/mickael-kerjean/filestash/server/middleware.WithPublicAPI.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:115 +0x3a7
github.com/mickael-kerjean/filestash/server/middleware.SecureOrigin.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:99 +0x4a2
github.com/mickael-kerjean/filestash/server/middleware.SecureHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:79 +0x28c
github.com/mickael-kerjean/filestash/server/middleware.ApiHeaders.func1(0xc000001d40, {0x46a8bc8, 0xc000f18810}, 0xc000227680)
/home/server/middleware/http.go:22 +0x29d
github.com/mickael-kerjean/filestash/server.Build.NewMiddlewareChain.func18({0x46a8cb8, 0xc000904000}, 0xc000227680)
/home/server/middleware/index.go:28 +0x17b
net/http.HandlerFunc.ServeHTTP(0xc000227540?, {0x46a8cb8?, 0xc000904000?}, 0x52f069?)
/usr/local/go/src/net/http/server.go:2220 +0x29
github.com/gorilla/mux.(*Router).ServeHTTP(0xc000000480, {0x46a8cb8, 0xc000904000}, 0xc000227400)
/home/vendor/github.com/gorilla/mux/mux.go:212 +0x1e2
net/http.serverHandler.ServeHTTP({0xc000c41d40?}, {0x46a8cb8?, 0xc000904000?}, 0x6?)
/usr/local/go/src/net/http/server.go:3210 +0x8e
net/http.(*conn).serve(0xc00059d950, {0x46ae758, 0xc000832240})
/usr/local/go/src/net/http/server.go:2092 +0x5d0
created by net/http.(*Server).Serve in goroutine 135
/usr/local/go/src/net/http/server.go:3360 +0x485
2025-01-10 15:52:28 +11:00