From 39b07d4f70a4e1b8d60e0e471f6ac6b423791c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 19 Mar 2020 14:22:08 +0100 Subject: [PATCH] allow configuring user sharing driver, default to json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/user-sharing-driver-json.md | 5 +++++ pkg/command/sharing.go | 4 ++-- pkg/config/config.go | 9 ++++++++- pkg/flagset/sharing.go | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 changelog/unreleased/user-sharing-driver-json.md diff --git a/changelog/unreleased/user-sharing-driver-json.md b/changelog/unreleased/user-sharing-driver-json.md new file mode 100644 index 0000000..b278da6 --- /dev/null +++ b/changelog/unreleased/user-sharing-driver-json.md @@ -0,0 +1,5 @@ +Enhancement: Allow configuring user sharing driver + +We now default to `json` which persists shares in the sharing manager in a json file instead of an in memory db. + +https://github.com/owncloud/ocis-reva/pull/115 diff --git a/pkg/command/sharing.go b/pkg/command/sharing.go index c40e494..aa248f2 100644 --- a/pkg/command/sharing.go +++ b/pkg/command/sharing.go @@ -84,10 +84,10 @@ func Sharing(cfg *config.Config) *cli.Command { // TODO build services dynamically "services": map[string]interface{}{ "usershareprovider": map[string]interface{}{ - "driver": "memory", + "driver": cfg.Reva.Sharing.UserDriver, }, "publicshareprovider": map[string]interface{}{ - "driver": "memory", + "driver": cfg.Reva.Sharing.PublicDriver, }, }, }, diff --git a/pkg/config/config.go b/pkg/config/config.go index d65d55c..276b1b5 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -24,6 +24,13 @@ type Gateway struct { DisableHomeCreationOnLogin bool } +// Sharing defines the available sharing configuration. +type Sharing struct { + Port + UserDriver string + PublicDriver string +} + // Port defines the available port configuration. type Port struct { // MaxCPUs can be a number or a percentage @@ -212,7 +219,7 @@ type Reva struct { Users Users AuthBasic Port AuthBearer Port - Sharing Port + Sharing Sharing StorageRoot StoragePort StorageHome StoragePort StorageHomeData StoragePort diff --git a/pkg/flagset/sharing.go b/pkg/flagset/sharing.go index 97003f0..f9babdc 100644 --- a/pkg/flagset/sharing.go +++ b/pkg/flagset/sharing.go @@ -120,5 +120,19 @@ func SharingWithConfig(cfg *config.Config) []cli.Flag { Usage: "--service usershareprovider [--service publicshareprovider]", EnvVars: []string{"REVA_SHARING_SERVICES"}, }, + &cli.StringFlag{ + Name: "user-driver", + Value: "json", + Usage: "driver to use for the UserShareProvider", + EnvVars: []string{"REVA_SHARING_USER_DRIVER"}, + Destination: &cfg.Reva.Sharing.UserDriver, + }, + &cli.StringFlag{ + Name: "public-driver", + Value: "memory", + Usage: "driver to use for the PublicShareProvider", + EnvVars: []string{"REVA_SHARING_PUBLIC_DRIVER"}, + Destination: &cfg.Reva.Sharing.PublicDriver, + }, } }