817 Commits

Author SHA1 Message Date
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
790cf0d571 chore (refactoring): support for edge case 2025-05-09 13:43:44 +10:00
ac95d9ea75 chore (image): revamp image viewer 2025-05-08 22:11:03 +10:00
7858b29cf5 fix (embed): Filestash embedding issue
whenever embedding something with a locale setup, it would crash while
trying to download the translation. This was due to some
missunderstanding of how fetch work while in an iframe and all the
reports would get miss because of that same issue as it was sent not to
the origin server but the website embedding the frame
2025-04-30 17:23:20 +10:00
73bab4a2e3 feature (3d): handle mesh files 2025-04-29 13:51:56 +10:00
3b6253cfbd feature (plg_application_3d): revamp support for 3d files 2025-04-23 00:36:38 +10:00
6277d00250 chore (readme): plugin doc 2025-04-15 21:39:38 +10:00
bf69108c54 feature (plg_override_actiondelete): delete icon on file 2025-04-09 21:02:04 +10:00
c43364eafa chore (plg_backend_local): better perm default 2025-04-09 14:43:06 +10:00
084bb33e83 fix (s3): handle cancellation 2025-04-09 14:42:21 +10:00
396ea667c4 release (v0.6): new release 2025-04-05 13:55:23 +11:00
a29ec2cda9 chore (doc): plg_handler_mcp doc 2025-04-02 03:00:57 +11:00
777200374d chore (mcp): refactor mcp stuff 2025-04-02 00:26:21 +11:00
7821bc8681 feature (mcp): mcp server 2025-04-01 11:00:41 +11:00
f11d27382f fix (plugin): order of plugin init
Before this we couldn't have a Endpoint plugin relying on values coming
from the config as the config wasn't initialised yet. This fixes it
2025-04-01 10:34:23 +11:00
eb7e30424e fix (capitalisation): disable android capit. 2025-03-18 20:57:34 +11:00
542ead9c25 fix (patch): bundle issue on plugin patch 2025-03-17 12:24:13 +11:00
ba3ed7b945 fix (plg_search_sqlitefs): context issue 2025-03-14 16:04:53 +11:00
afbceabad2 maintain (release): prepare new release 2025-03-14 13:08:02 +11:00
d01facd463 fix (tmpl): issue with cognito issued jwt token
quote from go jwt lib: "WithPaddingAllowed will enable the codec used
for decoding JWTs to allow padding. Note that the JWS RFC7515 states
that the tokens will utilize a Base64url encoding with no padding.
Unfortunately, some implementations of JWT are producing non-standard
tokens, and thus require support for decoding."

cognito is one of those...
2025-03-13 17:21:08 +11:00
40e9938148 fix (ios): auth issue on ios
when using deep links on ios, we would get this error:
"safari can't open the page because the address is invalid"
2025-03-11 10:45:35 +11:00
21c8a7f597 fix (s3): assume role on ecs 2025-02-21 17:26:00 +11:00
f584807fac feature (plugin): handle compression in opener plugin 2025-02-18 13:54:56 +11:00
2c1edd85e9 feature (template): enhance templating functions 2025-02-13 15:56:24 +11:00
00eed6e922 fix (sw): add support for raw + gzip static 2025-02-07 12:20:37 +11:00
65cf080af7 fix (admin): report validation error
I've seen someone who mistakenly had updated their config secret key,
not sure if it was done by a weird password manager or a manual action
but that did corrupt their entire setup.

We now make sure value like secret key get validated before saving.
Didn't realise this would be necessary to start with as the appraoch has
always been "with great power come great responsability" but if it can
prevent catastrophic failure mode hapening by mistake, then we will be
making an exception to the moto
2025-02-06 21:06:55 +11:00
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
fe830fb8e2 chore (refactoring): main html cleanup 2025-02-04 01:43:04 +11:00
67275e32e9 chore (constant): env constants 2025-02-04 01:11:16 +11:00
b2c9b29384 chore (refactoring): revamp sqlite full text search 2025-02-03 16:01:50 +11:00
ae7e6d0801 chore (release): prepare release 2025-02-02 18:53:53 +11:00
db86daf867 fix (plg_search_sqlitefs): refactoring 2025-01-31 23:48:59 +11:00
773fd02871 fix (plg_office_wopi): wopi office integration 2025-01-30 17:49:40 +11:00
6e2a99adf1 fix (plg_office_wopi): shared link on wopi issue 2025-01-30 12:58:47 +11:00
22f17f17e6 chore (version): refactoring around configuration 2025-01-28 15:16:13 +11:00
496c05360e feature (templating): new templating function 2025-01-27 16:22:03 +11:00
c3f2c57e5f feature (turboload): decrease load time via sw 2025-01-27 14:05:55 +11:00
42fd37e2ec fix (sharedlink): issue with ifram / wopi 2025-01-24 13:59:11 +11:00
1510e0bcda chore (plugin): polish the new plugin interface 2025-01-23 15:26:05 +11:00
daf96fdcff chore (refactoring): skeleton plugin app 2025-01-23 12:50:08 +11:00
4ed4365a33 fix (smb): finicky persistent stuff when decorated 2025-01-23 04:11:44 +11:00
f53dc6a7a3 fix (webdav): network drive via window 2025-01-21 16:54:01 +11:00
753e76d4af feature (auth): follow param in redirect URL 2025-01-15 02:56:21 +11:00
28028f540c feature (viewer): skeleton for new plugins 2025-01-15 01:29:59 +11:00
f1b1d71f40 feature (signature): protect url param via signature 2025-01-15 01:09:53 +11:00
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
0d4709595c chore (refactoring): 3d app revamp 2025-01-13 22:53:02 +11:00
fd839808b7 feature (feedback): suggestion from a redditor 2025-01-13 17:41:29 +11:00
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
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