diff --git a/storage/pkg/command/appprovider.go b/storage/pkg/command/appprovider.go index 71027593618..17c711b5739 100644 --- a/storage/pkg/command/appprovider.go +++ b/storage/pkg/command/appprovider.go @@ -85,11 +85,16 @@ func appProviderConfigFromStruct(c *cli.Context, cfg *config.Config) map[string] if cfg.Reva.AppProvider.Driver == "wopi" { drivers = map[string]interface{}{ "wopi": map[string]interface{}{ - "app_name": "CS3 WOPI server", + "app_api_key": cfg.Reva.AppProvider.WopiDriver.AppAPIKey, + "app_desktop_only": cfg.Reva.AppProvider.WopiDriver.AppDesktopOnly, + "app_icon_uri": cfg.Reva.AppProvider.WopiDriver.AppIconURI, + "app_int_url": cfg.Reva.AppProvider.WopiDriver.AppInternalURL, + "app_name": cfg.Reva.AppProvider.WopiDriver.AppName, + "app_url": cfg.Reva.AppProvider.WopiDriver.AppURL, "insecure_connections": cfg.Reva.AppProvider.WopiDriver.Insecure, "iop_secret": cfg.Reva.AppProvider.WopiDriver.IopSecret, + "jwt_secret": cfg.Reva.AppProvider.WopiDriver.JWTSecret, "wopi_url": cfg.Reva.AppProvider.WopiDriver.WopiURL, - "app_url": cfg.Reva.AppProvider.WopiDriver.AppURL, }, } } @@ -111,6 +116,7 @@ func appProviderConfigFromStruct(c *cli.Context, cfg *config.Config) map[string] // TODO build services dynamically "services": map[string]interface{}{ "appprovider": map[string]interface{}{ + "gatewaysvc": cfg.Reva.Gateway.Endpoint, "app_provider_url": cfg.Reva.AppProvider.ExternalAddr, "driver": cfg.Reva.AppProvider.Driver, "drivers": drivers, diff --git a/storage/pkg/config/config.go b/storage/pkg/config/config.go index 8ad6e69bdb9..c61b8e4dab3 100644 --- a/storage/pkg/config/config.go +++ b/storage/pkg/config/config.go @@ -48,10 +48,16 @@ type AppProvider struct { } type WopiDriver struct { - IopSecret string - Insecure bool - WopiURL string - AppURL string + AppAPIKey string + AppDesktopOnly bool + AppIconURI string + AppInternalURL string + AppName string + AppURL string + Insecure bool + IopSecret string + JWTSecret string + WopiURL string } // Sharing defines the available sharing configuration. diff --git a/storage/pkg/flagset/appprovider.go b/storage/pkg/flagset/appprovider.go index 3f85ae8125a..1a8b6e694eb 100644 --- a/storage/pkg/flagset/appprovider.go +++ b/storage/pkg/flagset/appprovider.go @@ -63,11 +63,46 @@ func AppProviderWithConfig(cfg *config.Config) []cli.Flag { // WOPI driver &cli.StringFlag{ - Name: "wopi-driver-iopsecret", - Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.IopSecret, ""), + Name: "wopi-driver-app-apikey", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppAPIKey, ""), + Usage: "The API key used by the app, if applicable.", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_API_KEY"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppAPIKey, + }, + &cli.BoolFlag{ + Name: "wopi-driver-app-desktop-only", + Value: flags.OverrideDefaultBool(cfg.Reva.AppProvider.WopiDriver.AppDesktopOnly, false), + Usage: "Whether the app can be opened only on desktop", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_DESKTOP_ONLY"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppDesktopOnly, + }, + &cli.StringFlag{ + Name: "wopi-driver-app-icon-uri", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppIconURI, ""), Usage: "IOP Secret (Shared with WOPI server)", - EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_IOP_SECRET"}, - Destination: &cfg.Reva.AppProvider.WopiDriver.IopSecret, + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_ICON_URI"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppIconURI, + }, + &cli.StringFlag{ + Name: "wopi-driver-app-internal-url", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppInternalURL, ""), + Usage: "The internal app URL in case of dockerized deployments. Defaults to AppURL", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_INTERNAL_URL"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppInternalURL, + }, + &cli.StringFlag{ + Name: "wopi-driver-app-name", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppName, ""), + Usage: "The App user-friendly name.", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_NAME"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppName, + }, + &cli.StringFlag{ + Name: "wopi-driver-app-url", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppURL, ""), + Usage: "App server URL", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_URL"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.AppURL, }, &cli.BoolFlag{ Name: "wopi-driver-insecure", @@ -76,6 +111,13 @@ func AppProviderWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_INSECURE"}, Destination: &cfg.Reva.AppProvider.WopiDriver.Insecure, }, + &cli.StringFlag{ + Name: "wopi-driver-iopsecret", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.IopSecret, ""), + Usage: "IOP Secret (Shared with WOPI server)", + EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_IOP_SECRET"}, + Destination: &cfg.Reva.AppProvider.WopiDriver.IopSecret, + }, &cli.StringFlag{ Name: "wopi-driver-wopiurl", Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.WopiURL, ""), @@ -84,14 +126,6 @@ func AppProviderWithConfig(cfg *config.Config) []cli.Flag { Destination: &cfg.Reva.AppProvider.WopiDriver.WopiURL, }, - &cli.StringFlag{ - Name: "wopi-driver-appurl", - Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.WopiDriver.AppURL, ""), - Usage: "App server URL", - EnvVars: []string{"APP_PROVIDER_WOPI_DRIVER_APP_URL"}, - Destination: &cfg.Reva.AppProvider.WopiDriver.AppURL, - }, - // Gateway &cli.StringFlag{ Name: "gateway-url",