From 4e531ca442f3ce40ffe9bee48400d73cf4d895e3 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Thu, 28 Apr 2022 16:16:06 +0200 Subject: [PATCH] fix ocis startup with debugging config / environment variables only --- .vscode/launch.json | 20 ++++++++++++-- extensions/thumbnails/pkg/config/config.go | 2 +- .../thumbnails/pkg/config/parser/parse.go | 2 +- ocis-pkg/config/config.go | 2 +- ocis-pkg/config/parser/parse.go | 26 ++++++++++++++----- 5 files changed, 40 insertions(+), 12 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 4332cf2e1a..aec90a875e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -19,9 +19,25 @@ "PROXY_ENABLE_BASIC_AUTH": "true", // set insecure options because we don't have valid certificates in dev environments "OCIS_INSECURE": "true", + // set some hardcoded secrets + "OCIS_JWT_SECRET": "some-ocis-jwt-secret", + "STORAGE_TRANSFER_SECRET": "some-ocis-transfer-secret", + "OCIS_MACHINE_AUTH_API_KEY": "some-ocis-machine-auth-api-key", + // idm ldap + "IDM_SVC_PASSWORD": "some-ldap-idm-password", + "GRAPH_LDAP_BIND_PASSWORD": "some-ldap-idm-password", + // reva ldap + "IDM_REVASVC_PASSWORD": "some-ldap-reva-password", + "GROUPS_LDAP_BIND_PASSWORD": "some-ldap-reva-password", + "USERS_LDAP_BIND_PASSWORD": "some-ldap-reva-password", + "AUTH_BASIC_LDAP_BIND_PASSWORD": "some-ldap-reva-password", + // idp ldap + "IDM_IDPSVC_PASSWORD": "some-ldap-idp-password", + "IDP_LDAP_BIND_PASSWORD": "some-ldap-idp-password", + // admin user default password + "IDM_ADMIN_PASSWORD": "admin", // demo users - "ACCOUNTS_DEMO_USERS_AND_GROUPS": "true", - "IDM_CREATE_DEMO_USERS": "true" + "IDM_CREATE_DEMO_USERS": "true", // OCIS_RUN_EXTENSIONS allows to start a subset of extensions even in the supervised mode //"OCIS_RUN_EXTENSIONS": "settings,storage-metadata,glauth,graph,graph-explorer,idp,ocs,store,thumbnails,web,webdav,storage-frontend,storage-gateway,storage-userprovider,storage-groupprovider,storage-authbasic,storage-authbearer,storage-authmachine,storage-users,storage-shares,storage-public-link,storage-appprovider,storage-sharing,accounts,proxy,ocdav", } diff --git a/extensions/thumbnails/pkg/config/config.go b/extensions/thumbnails/pkg/config/config.go index 88d785d774..4e65f12e82 100644 --- a/extensions/thumbnails/pkg/config/config.go +++ b/extensions/thumbnails/pkg/config/config.go @@ -42,6 +42,6 @@ type Thumbnail struct { CS3AllowInsecure bool `yaml:"cs3_allow_insecure" env:"OCIS_INSECURE;THUMBNAILS_CS3SOURCE_INSECURE"` RevaGateway string `yaml:"reva_gateway" env:"REVA_GATEWAY"` //TODO: use REVA config FontMapFile string `yaml:"font_map_file" env:"THUMBNAILS_TXT_FONTMAP_FILE"` - TransferSecret string `yaml:"transfer_secret" env:"THUMBNAILS_TRANSFER_TOKEN"` + TransferSecret string `yaml:"transfer_secret" env:"STORAGE_TRANSFER_TOKEN;THUMBNAILS_TRANSFER_TOKEN"` DataEndpoint string `yaml:"data_endpoint" env:"THUMBNAILS_DATA_ENDPOINT"` } diff --git a/extensions/thumbnails/pkg/config/parser/parse.go b/extensions/thumbnails/pkg/config/parser/parse.go index 348e87d1a1..625705dd54 100644 --- a/extensions/thumbnails/pkg/config/parser/parse.go +++ b/extensions/thumbnails/pkg/config/parser/parse.go @@ -35,7 +35,7 @@ func ParseConfig(cfg *config.Config) error { } func Validate(cfg *config.Config) error { - if cfg.TransferSecret == "" { + if cfg.Thumbnail.TransferSecret == "" { return fmt.Errorf("reva transfer secret is not set up properly, bailing out (%s)", cfg.Service.Name) } diff --git a/ocis-pkg/config/config.go b/ocis-pkg/config/config.go index eddd2bbd2a..8840b59c77 100644 --- a/ocis-pkg/config/config.go +++ b/ocis-pkg/config/config.go @@ -71,7 +71,7 @@ type Config struct { Registry string `yaml:"registry"` TokenManager *shared.TokenManager `yaml:"token_manager"` MachineAuthAPIKey string `yaml:"machine_auth_api_key" env:"OCIS_MACHINE_AUTH_API_KEY"` - TransferSecret string `yaml:"transfer_secret"` + TransferSecret string `yaml:"transfer_secret" env:"STORAGE_TRANSFER_SECRET"` Runtime Runtime `yaml:"runtime"` Audit *audit.Config `yaml:"audit"` diff --git a/ocis-pkg/config/parser/parse.go b/ocis-pkg/config/parser/parse.go index 0f6b6ba198..f9d0a7c7b7 100644 --- a/ocis-pkg/config/parser/parse.go +++ b/ocis-pkg/config/parser/parse.go @@ -18,7 +18,7 @@ func ParseConfig(cfg *config.Config) error { return err } - EnsureDefaultsAndCommons(cfg) + EnsureDefaults(cfg) // load all env variables relevant to the config in the current context. if err := envdecode.Decode(cfg); err != nil { @@ -28,12 +28,27 @@ func ParseConfig(cfg *config.Config) error { } } + EnsureCommons(cfg) + return Validate(cfg) } -// EnsureDefaultsAndCommons copies applicable parts of the oCIS config into the commons part -// and also ensure that all pointers in the oCIS config (not the extensions configs) are initialized -func EnsureDefaultsAndCommons(cfg *config.Config) { +// EnsureDefaults, ensures that all pointers in the +// oCIS config (not the extensions configs) are initialized +func EnsureDefaults(cfg *config.Config) { + if cfg.Tracing == nil { + cfg.Tracing = &shared.Tracing{} + } + if cfg.Log == nil { + cfg.Log = &shared.Log{} + } + if cfg.TokenManager == nil { + cfg.TokenManager = &shared.TokenManager{} + } +} + +// EnsureCommons copies applicable parts of the oCIS config into the commons part +func EnsureCommons(cfg *config.Config) { // ensure the commons part is initialized if cfg.Commons == nil { cfg.Commons = &shared.Commons{} @@ -49,7 +64,6 @@ func EnsureDefaultsAndCommons(cfg *config.Config) { } } else { cfg.Commons.Log = &shared.Log{} - cfg.Log = &shared.Log{} } // copy tracing to the commons part if set @@ -62,7 +76,6 @@ func EnsureDefaultsAndCommons(cfg *config.Config) { } } else { cfg.Commons.Tracing = &shared.Tracing{} - cfg.Tracing = &shared.Tracing{} } // copy token manager to the commons part if set @@ -70,7 +83,6 @@ func EnsureDefaultsAndCommons(cfg *config.Config) { cfg.Commons.TokenManager = cfg.TokenManager } else { cfg.Commons.TokenManager = &shared.TokenManager{} - cfg.TokenManager = cfg.Commons.TokenManager } // copy machine auth api key to the commons part if set