177 Commits

Author SHA1 Message Date
1e562aa8e8 maintain (api): config endpoint refactoring 2023-04-25 10:47:44 +10:00
bb7840f27e feature (chromecast): image viewer chromecast support 2023-04-14 00:08:17 +10:00
86dde05507 fix (#533): json conversion issue 2023-03-31 08:20:51 +11:00
8ca7a0e3f9 maintain (path): absolute path
getting things ready to have config coming as a plugin to handle
various distributions
2023-03-02 20:15:56 +11:00
8059730720 feature (middleware): use translated errors in auth middleware 2023-02-28 21:19:50 +11:00
fd15e7255a maintain (log): additional logs for easier debugging
some people are experiencing issues with the data being lost somehow
but as of today we can't replicate that. Hopefully with this, we will
know a bit more about that
2023-02-09 08:48:40 +11:00
69b0b71ce5 feature (title): set title to general.name in static pages 2023-02-09 08:09:17 +11:00
d0d45d2b40 feature (plugin): onload callback 2023-01-27 21:14:44 +11:00
a78e817657 feature (thumbnailer): add plugin type for thumbnail generation 2022-12-02 07:09:11 +11:00
b6762ddd4c feature (input): password fields with view button 2022-11-25 16:38:00 +11:00
7d5719445c feature (standalone): reasonable default for standalone usage
we can now create fat binary build, we've optimise a few corner case
to make it nice to do so
2022-11-23 01:09:19 +11:00
1eea60cfb0 feature (embed): embed frontend assets from the binary 2022-11-22 23:03:33 +11:00
cb7f1693bd feature (config): encrypt sensitive fields in config.json 2022-11-22 08:12:36 +11:00
df5371c7ee maintain (plugin): interface name for authorisation plugin 2022-11-14 19:54:22 +11:00
81af97acd2 improve (css): form design for page 2022-11-12 22:46:15 +11:00
3b5bc80565 improve (UX): eye candy 2022-11-10 02:39:29 +11:00
9a98da7978 feature (config): toggle for config file encryption
optin config encryption #482
2022-11-10 00:19:45 +11:00
7b4e3eba79 feature (admin): simplify admin backend page 2022-11-09 08:09:01 +11:00
e0f2f29307 feature (htpasswd): new authentication middleware 2022-11-09 14:00:48 +11:00
ce935525db fix (config): concurrent issue
fatal error: sync: unlock of unlocked mutex

goroutine 6 [running]:
runtime.throw(0x1420562, 0x1e)
	/usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0000b5ec8 sp=0xc0000b5e98 pc=0x439e92
sync.throw(0x1420562, 0x1e)
	/usr/local/go/src/runtime/panic.go:1103 +0x35 fp=0xc0000b5ee8 sp=0xc0000b5ec8 pc=0x46e395
sync.(*Mutex).unlockSlow(0x1f97138, 0xffffffff)
	/usr/local/go/src/sync/mutex.go:196 +0xd8 fp=0xc0000b5f10 sp=0xc0000b5ee8 pc=0x47d458
sync.(*Mutex).Unlock(...)
	/usr/local/go/src/sync/mutex.go:190
github.com/mickael-kerjean/filestash/server/common.(*Configuration).Get(0x1f97120, 0x140a506, 0x14, 0x0)
	/home/mickael/Documents/projects/filestash/server/common/config.go:438 +0x113 fp=0xc0000b5f90 sp=0xc0000b5f10 pc=0x7ba313
github.com/mickael-kerjean/filestash/server/common.init.0.func1(0x0)
	/home/mickael/Documents/projects/filestash/server/common/api.go:16 +0x46 fp=0xc0000b5fc0 sp=0xc0000b5f90 pc=0x7c7906
github.com/mickael-kerjean/filestash/server/common.init.0.func3()
	/home/mickael/Documents/projects/filestash/server/common/api.go:40 +0x29 fp=0xc0000b5fe0 sp=0xc0000b5fc0 pc=0x7c7c49
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0000b5fe8 sp=0xc0000b5fe0 pc=0x4733e1
created by github.com/mickael-kerjean/filestash/server/common.init.0
	/home/mickael/Documents/projects/filestash/server/common/api.go:39 +0x5a

goroutine 1 [runnable, locked to thread]:
os.(*File).Read(0xc000186000, 0xc000280400, 0x100, 0x100, 0x401, 0xc000280000, 0x400)
	/usr/local/go/src/os/file.go:113 +0x265
io.ReadAll(0x1677e40, 0xc000186000, 0x0, 0x1ff, 0xc000186000, 0x0, 0x0)
	/usr/local/go/src/io/io.go:633 +0xdf
io/ioutil.ReadAll(...)
	/usr/local/go/src/io/ioutil/ioutil.go:27
github.com/mickael-kerjean/filestash/server/common.LoadConfig(0x0, 0x0, 0x0, 0x1fc66e0, 0x0)
	/home/mickael/Documents/projects/filestash/server/common/config_state.go:32 +0x85
github.com/mickael-kerjean/filestash/server/common.(*Configuration).Load(0x1f97120)
	/home/mickael/Documents/projects/filestash/server/common/config.go:214 +0x34
github.com/mickael-kerjean/filestash/server/common.init.1()
	/home/mickael/Documents/projects/filestash/server/common/config.go:53 +0x85
2022-10-10 08:22:45 +11:00
9f083ea94c improve (logger): logger interface for tests or plugin swap 2022-10-06 08:02:25 +11:00
e8968d824a fix (window): cross compile for windows 2022-09-28 21:16:10 +10:00
706adc3475 fix (config): remove useless / buggy option 2022-09-28 21:03:21 +10:00
21a72b2048 maintain (generator): simplify build command
Before this commit our build had this option:
-ldflags "-X github.com/mickael-kerjean/filestash/server/common.BUILD_DATE=`date -u +%Y%m%d` -X github.com/mickael-kerjean/filestash/server/common.BUILD_REF=`git rev-parse HEAD`"

Doing this via a generator is much easier for people getting started
with Filestash
2022-09-28 18:11:58 +10:00
9d596704e7 feature (api): public api 2022-09-20 17:43:26 +10:00
548b057d6a fix (selfsigned): self signed certificate issues 2022-09-15 22:38:54 +10:00
d0e2c4a227 maintain (error): add internal error 2022-09-13 17:28:53 +10:00
865442ea59 fix (vet): go vet - #505 2022-09-13 14:12:13 +10:00
ccb156678b fix (cache): RLock instead of lock 2022-09-13 13:01:03 +10:00
bd9deb858d feature (crypto): nonce generator as a counter 2022-09-09 23:22:47 +10:00
7e5ec42f6c maintain (config): openup 2 methods for Config for plugins
This is for plugins to do more fine grained stuff with the global
Config object
2022-09-09 15:12:14 +10:00
bb7ea98f02 fix (sync): concurrent map read and map write 2022-09-08 14:55:26 +10:00
b1c1f9e0f2 feature (api): api configuration 2022-09-07 00:50:23 +10:00
549d6805f0 feature (api): prepare api for public use 2022-09-05 11:59:28 +10:00
952f45097e feature (rest): setup for rest api 2022-09-04 18:39:34 +10:00
dd6f0ca407 feature (cancellation): logic to cancel request in client and server 2022-09-02 17:26:32 +10:00
bb9fb89d44 fix (concurrency): prevent concurrent map writes
when booting up, we have a lot of Set in the Config alongside a lot of
Get, Let's block all the concurrent Set
2022-09-01 23:28:29 +10:00
231e5ba18d feature (auditing): pluggable auditing in admin console 2022-09-01 07:37:59 +10:00
a82177e719 maintain (ctx): pass app context as pointer 2022-08-30 17:27:23 +10:00
b62a9dd423 fix (os): wrapper for file related operation via the os package 2022-08-30 01:46:06 +10:00
8bbd4a2f57 fix (symlink): evaluate symlinks before opening file 2022-08-29 20:10:14 +10:00
bb91f589e1 fix (open): handle non existing local file 2022-08-28 22:18:38 +10:00
812446ac23 fix (symlink): wrap os.OpenFile to prevent symlinks expansion
os.Open and os.OpenFile make it possible to open a wide range of
files as seen in https://cs.opensource.google/go/go/+/refs/tags/go1.19:src/os/types.go;l=35

We only want to handle regular files and folders, no socket, device,
symlink, ....
2022-08-28 21:43:43 +10:00
d265d5b5e0 fix (panic): concurrent read issue 2022-05-19 00:45:56 +10:00
bf72ee1bd2 feature (plugin): css plugin enhancement 2022-05-11 00:45:41 +10:00
d94c0fef1a fix (log): log to file when using Log.Stdout 2022-04-27 00:37:39 +10:00
e2b1b4f477 fix (constant): license info as code 2022-04-25 20:03:13 +10:00
f9e51482d5 feature (css): inject css as a plugin 2022-04-25 00:34:44 +10:00
629a80c836 fix (#469): allow cross domain iframe 2022-04-20 08:04:09 +10:00
9b60ac6301 feature (log): enable more log types 2022-04-07 08:02:24 +10:00