mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-29 08:21:23 -05:00
* allow proxy to route to micro service Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * use go micre ocdav service instead of reva frontend Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add missing gateway default config Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * update reva branch for testing Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add changelog Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add missing comands Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * bump reva version Signed-off-by: jkoberg <jkoberg@owncloud.com> * tidy Signed-off-by: jkoberg <jkoberg@owncloud.com> * bump reva again Signed-off-by: jkoberg <jkoberg@owncloud.com> * a blind mans config change Signed-off-by: jkoberg <jkoberg@owncloud.com> * add ocdav to must start extensions Signed-off-by: jkoberg <jkoberg@owncloud.com> * fail when neither backend nor service is set Signed-off-by: jkoberg <jkoberg@owncloud.com> Co-authored-by: jkoberg <jkoberg@owncloud.com>
471 lines
15 KiB
Go
471 lines
15 KiB
Go
package defaults
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
|
|
"github.com/owncloud/ocis/extensions/storage/pkg/config"
|
|
"github.com/owncloud/ocis/ocis-pkg/config/defaults"
|
|
)
|
|
|
|
const (
|
|
defaultPublicURL = "https://localhost:9200"
|
|
defaultShareFolder = "/Shares"
|
|
defaultStorageNamespace = "/users/{{.Id.OpaqueId}}"
|
|
defaultGatewayAddr = "127.0.0.1:9142"
|
|
defaultUserLayout = "{{.Id.OpaqueId}}"
|
|
defaultPersonalSpaceAliasTemplate = "{{.SpaceType}}/{{.User.Username | lower}}"
|
|
defaultGeneralSpaceAliasTemplate = "{{.SpaceType}}/{{.SpaceName | replace \" \" \"-\" | lower}}"
|
|
)
|
|
|
|
func FullDefaultConfig() *config.Config {
|
|
cfg := DefaultConfig()
|
|
|
|
EnsureDefaults(cfg)
|
|
Sanitize(cfg)
|
|
|
|
return cfg
|
|
}
|
|
|
|
func DefaultConfig() *config.Config {
|
|
return &config.Config{
|
|
// log is inherited
|
|
Debug: config.Debug{
|
|
Addr: "127.0.0.1:9109",
|
|
},
|
|
Reva: config.Reva{
|
|
JWTSecret: "Pive-Fumkiu4",
|
|
SkipUserGroupsInToken: false,
|
|
TransferSecret: "replace-me-with-a-transfer-secret",
|
|
TransferExpires: 24 * 60 * 60,
|
|
OIDC: config.OIDC{
|
|
Issuer: defaultPublicURL,
|
|
Insecure: false,
|
|
IDClaim: "preferred_username",
|
|
},
|
|
LDAP: config.LDAP{
|
|
URI: "ldaps://localhost:9126",
|
|
CACert: path.Join(defaults.BaseDataPath(), "ldap", "ldap.crt"),
|
|
Insecure: false,
|
|
UserBaseDN: "dc=ocis,dc=test",
|
|
GroupBaseDN: "dc=ocis,dc=test",
|
|
UserScope: "sub",
|
|
GroupScope: "sub",
|
|
LoginAttributes: []string{"cn", "mail"},
|
|
UserFilter: "",
|
|
GroupFilter: "",
|
|
UserObjectClass: "posixAccount",
|
|
GroupObjectClass: "posixGroup",
|
|
BindDN: "cn=reva,ou=sysusers,dc=ocis,dc=test",
|
|
BindPassword: "reva",
|
|
IDP: defaultPublicURL,
|
|
UserSchema: config.LDAPUserSchema{
|
|
ID: "ownclouduuid",
|
|
Mail: "mail",
|
|
DisplayName: "displayname",
|
|
Username: "cn",
|
|
UIDNumber: "uidnumber",
|
|
GIDNumber: "gidnumber",
|
|
},
|
|
GroupSchema: config.LDAPGroupSchema{
|
|
ID: "cn",
|
|
Mail: "mail",
|
|
DisplayName: "cn",
|
|
Groupname: "cn",
|
|
Member: "cn",
|
|
GIDNumber: "gidnumber",
|
|
},
|
|
},
|
|
UserGroupRest: config.UserGroupRest{
|
|
RedisAddress: "localhost:6379",
|
|
},
|
|
UserOwnCloudSQL: config.UserOwnCloudSQL{
|
|
DBUsername: "owncloud",
|
|
DBPassword: "secret",
|
|
DBHost: "mysql",
|
|
DBPort: 3306,
|
|
DBName: "owncloud",
|
|
Idp: defaultPublicURL,
|
|
Nobody: 90,
|
|
JoinUsername: false,
|
|
JoinOwnCloudUUID: false,
|
|
EnableMedialSearch: false,
|
|
},
|
|
Archiver: config.Archiver{
|
|
MaxNumFiles: 10000,
|
|
MaxSize: 1073741824,
|
|
ArchiverURL: "/archiver",
|
|
},
|
|
UserStorage: config.StorageConfig{
|
|
EOS: config.DriverEOS{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: "/eos/dockertest/reva",
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: "{{substr 0 1 .Username}}/{{.Username}}",
|
|
},
|
|
ShadowNamespace: "", // Defaults to path.Join(c.Namespace, ".shadow")
|
|
UploadsNamespace: "", // Defaults to path.Join(c.Namespace, ".uploads")
|
|
EosBinary: "/usr/bin/eos",
|
|
XrdcopyBinary: "/usr/bin/xrdcopy",
|
|
MasterURL: "root://eos-mgm1.eoscluster.cern.ch:1094",
|
|
SlaveURL: "root://eos-mgm1.eoscluster.cern.ch:1094",
|
|
CacheDirectory: os.TempDir(),
|
|
GatewaySVC: defaultGatewayAddr,
|
|
},
|
|
Local: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "local", "users"),
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: "{{.Username}}",
|
|
EnableHome: false,
|
|
},
|
|
OwnCloudSQL: config.DriverOwnCloudSQL{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "owncloud"),
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: "{{.Username}}",
|
|
EnableHome: false,
|
|
},
|
|
UploadInfoDir: path.Join(defaults.BaseDataPath(), "storage", "uploadinfo"),
|
|
DBUsername: "owncloud",
|
|
DBPassword: "owncloud",
|
|
DBHost: "",
|
|
DBPort: 3306,
|
|
DBName: "owncloud",
|
|
},
|
|
S3: config.DriverS3{
|
|
DriverCommon: config.DriverCommon{},
|
|
Region: "default",
|
|
AccessKey: "",
|
|
SecretKey: "",
|
|
Endpoint: "",
|
|
Bucket: "",
|
|
},
|
|
S3NG: config.DriverS3NG{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: defaultUserLayout,
|
|
PersonalSpaceAliasTemplate: defaultPersonalSpaceAliasTemplate,
|
|
GeneralSpaceAliasTemplate: defaultGeneralSpaceAliasTemplate,
|
|
EnableHome: false,
|
|
},
|
|
Region: "default",
|
|
AccessKey: "",
|
|
SecretKey: "",
|
|
Endpoint: "",
|
|
Bucket: "",
|
|
},
|
|
OCIS: config.DriverOCIS{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: defaultUserLayout,
|
|
PersonalSpaceAliasTemplate: defaultPersonalSpaceAliasTemplate,
|
|
GeneralSpaceAliasTemplate: defaultGeneralSpaceAliasTemplate,
|
|
},
|
|
},
|
|
},
|
|
MetadataStorage: config.StorageConfig{
|
|
EOS: config.DriverEOS{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: "/eos/dockertest/reva",
|
|
ShareFolder: defaultShareFolder,
|
|
UserLayout: "{{substr 0 1 .Username}}/{{.Username}}",
|
|
EnableHome: false,
|
|
},
|
|
ShadowNamespace: "",
|
|
UploadsNamespace: "",
|
|
EosBinary: "/usr/bin/eos",
|
|
XrdcopyBinary: "/usr/bin/xrdcopy",
|
|
MasterURL: "root://eos-mgm1.eoscluster.cern.ch:1094",
|
|
GrpcURI: "",
|
|
SlaveURL: "root://eos-mgm1.eoscluster.cern.ch:1094",
|
|
CacheDirectory: os.TempDir(),
|
|
EnableLogging: false,
|
|
ShowHiddenSysFiles: false,
|
|
ForceSingleUserMode: false,
|
|
UseKeytab: false,
|
|
SecProtocol: "",
|
|
Keytab: "",
|
|
SingleUsername: "",
|
|
GatewaySVC: defaultGatewayAddr,
|
|
},
|
|
Local: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "local", "metadata"),
|
|
},
|
|
OwnCloudSQL: config.DriverOwnCloudSQL{},
|
|
S3: config.DriverS3{
|
|
DriverCommon: config.DriverCommon{},
|
|
Region: "default",
|
|
},
|
|
S3NG: config.DriverS3NG{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "metadata"),
|
|
ShareFolder: "",
|
|
UserLayout: defaultUserLayout,
|
|
EnableHome: false,
|
|
},
|
|
Region: "default",
|
|
AccessKey: "",
|
|
SecretKey: "",
|
|
Endpoint: "",
|
|
Bucket: "",
|
|
},
|
|
OCIS: config.DriverOCIS{
|
|
DriverCommon: config.DriverCommon{
|
|
Root: path.Join(defaults.BaseDataPath(), "storage", "metadata"),
|
|
ShareFolder: "",
|
|
UserLayout: defaultUserLayout,
|
|
EnableHome: false,
|
|
},
|
|
},
|
|
},
|
|
Frontend: config.FrontendPort{
|
|
Port: config.Port{
|
|
MaxCPUs: "",
|
|
LogLevel: "",
|
|
GRPCNetwork: "",
|
|
GRPCAddr: "",
|
|
HTTPNetwork: "tcp",
|
|
HTTPAddr: "127.0.0.1:9140",
|
|
Protocol: "",
|
|
Endpoint: "",
|
|
DebugAddr: "127.0.0.1:9141",
|
|
Services: []string{"datagateway", "ocs", "appprovider"},
|
|
Config: nil,
|
|
Context: nil,
|
|
Supervised: false,
|
|
},
|
|
AppProviderInsecure: false,
|
|
AppProviderPrefix: "",
|
|
ArchiverInsecure: false,
|
|
ArchiverPrefix: "archiver",
|
|
DatagatewayPrefix: "data",
|
|
Favorites: false,
|
|
ProjectSpaces: true,
|
|
OCSPrefix: "ocs",
|
|
OCSSharePrefix: defaultShareFolder,
|
|
OCSHomeNamespace: defaultStorageNamespace,
|
|
PublicURL: defaultPublicURL,
|
|
OCSCacheWarmupDriver: "",
|
|
OCSAdditionalInfoAttribute: "{{.Mail}}",
|
|
OCSResourceInfoCacheTTL: 0,
|
|
Middleware: config.Middleware{},
|
|
},
|
|
DataGateway: config.DataGatewayPort{
|
|
Port: config.Port{},
|
|
PublicURL: "",
|
|
},
|
|
Gateway: config.Gateway{
|
|
Port: config.Port{
|
|
Endpoint: defaultGatewayAddr,
|
|
DebugAddr: "127.0.0.1:9143",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: defaultGatewayAddr,
|
|
},
|
|
CommitShareToStorageGrant: true,
|
|
CommitShareToStorageRef: true,
|
|
DisableHomeCreationOnLogin: true,
|
|
ShareFolder: "Shares",
|
|
LinkGrants: "",
|
|
HomeMapping: "",
|
|
EtagCacheTTL: 0,
|
|
},
|
|
StorageRegistry: config.StorageRegistry{
|
|
Driver: "spaces",
|
|
HomeProvider: "/home", // unused for spaces, static currently not supported
|
|
JSON: "",
|
|
},
|
|
AppRegistry: config.AppRegistry{
|
|
Driver: "static",
|
|
MimetypesJSON: "",
|
|
},
|
|
Users: config.Users{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9144",
|
|
DebugAddr: "127.0.0.1:9145",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9144",
|
|
Services: []string{"userprovider"},
|
|
},
|
|
Driver: "ldap",
|
|
UserGroupsCacheExpiration: 5,
|
|
},
|
|
Groups: config.Groups{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9160",
|
|
DebugAddr: "127.0.0.1:9161",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9160",
|
|
Services: []string{"groupprovider"},
|
|
},
|
|
Driver: "ldap",
|
|
GroupMembersCacheExpiration: 5,
|
|
},
|
|
AuthProvider: config.Users{
|
|
Port: config.Port{},
|
|
Driver: "ldap",
|
|
UserGroupsCacheExpiration: 0,
|
|
},
|
|
AuthBasic: config.Port{
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9146",
|
|
DebugAddr: "127.0.0.1:9147",
|
|
Services: []string{"authprovider"},
|
|
Endpoint: "localhost:9146",
|
|
},
|
|
AuthBearer: config.Port{
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9148",
|
|
DebugAddr: "127.0.0.1:9149",
|
|
Services: []string{"authprovider"},
|
|
Endpoint: "localhost:9148",
|
|
},
|
|
AuthMachine: config.Port{
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9166",
|
|
DebugAddr: "127.0.0.1:9167",
|
|
Services: []string{"authprovider"},
|
|
Endpoint: "localhost:9166",
|
|
},
|
|
AuthMachineConfig: config.AuthMachineConfig{
|
|
MachineAuthAPIKey: "change-me-please",
|
|
},
|
|
Sharing: config.Sharing{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9150",
|
|
DebugAddr: "127.0.0.1:9151",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9150",
|
|
Services: []string{"usershareprovider", "publicshareprovider"},
|
|
},
|
|
CS3ProviderAddr: "127.0.0.1:9215",
|
|
CS3ServiceUser: "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad",
|
|
CS3ServiceUserIdp: "https://localhost:9200",
|
|
UserDriver: "json",
|
|
UserJSONFile: path.Join(defaults.BaseDataPath(), "storage", "shares.json"),
|
|
UserSQLUsername: "",
|
|
UserSQLPassword: "",
|
|
UserSQLHost: "",
|
|
UserSQLPort: 1433,
|
|
UserSQLName: "",
|
|
PublicDriver: "json",
|
|
PublicJSONFile: path.Join(defaults.BaseDataPath(), "storage", "publicshares.json"),
|
|
PublicPasswordHashCost: 11,
|
|
PublicEnableExpiredSharesCleanup: true,
|
|
PublicJanitorRunInterval: 60,
|
|
UserStorageMountID: "",
|
|
Events: config.Events{
|
|
Address: "127.0.0.1:9233",
|
|
ClusterID: "ocis-cluster",
|
|
},
|
|
},
|
|
StorageShares: config.StoragePort{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9154",
|
|
DebugAddr: "127.0.0.1:9156",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9154",
|
|
HTTPNetwork: "tcp",
|
|
HTTPAddr: "127.0.0.1:9155",
|
|
},
|
|
ReadOnly: false,
|
|
AlternativeID: "1284d238-aa92-42ce-bdc4-0b0000009154",
|
|
MountID: "1284d238-aa92-42ce-bdc4-0b0000009157",
|
|
},
|
|
StorageUsers: config.StoragePort{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9157",
|
|
DebugAddr: "127.0.0.1:9159",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9157",
|
|
HTTPNetwork: "tcp",
|
|
HTTPAddr: "127.0.0.1:9158",
|
|
},
|
|
MountID: "1284d238-aa92-42ce-bdc4-0b0000009157",
|
|
Driver: "ocis",
|
|
DataServerURL: "http://localhost:9158/data",
|
|
HTTPPrefix: "data",
|
|
TempFolder: path.Join(defaults.BaseDataPath(), "tmp", "users"),
|
|
},
|
|
StoragePublicLink: config.PublicStorage{
|
|
StoragePort: config.StoragePort{
|
|
Port: config.Port{
|
|
Endpoint: "localhost:9178",
|
|
DebugAddr: "127.0.0.1:9179",
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9178",
|
|
},
|
|
MountID: "7993447f-687f-490d-875c-ac95e89a62a4",
|
|
},
|
|
PublicShareProviderAddr: "",
|
|
UserProviderAddr: "",
|
|
},
|
|
StorageMetadata: config.StoragePort{
|
|
Port: config.Port{
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9215",
|
|
HTTPNetwork: "tcp",
|
|
HTTPAddr: "127.0.0.1:9216",
|
|
DebugAddr: "127.0.0.1:9217",
|
|
},
|
|
Driver: "ocis",
|
|
ExposeDataServer: false,
|
|
DataServerURL: "http://localhost:9216/data",
|
|
TempFolder: path.Join(defaults.BaseDataPath(), "tmp", "metadata"),
|
|
DataProvider: config.DataProvider{},
|
|
},
|
|
AppProvider: config.AppProvider{
|
|
Port: config.Port{
|
|
GRPCNetwork: "tcp",
|
|
GRPCAddr: "127.0.0.1:9164",
|
|
DebugAddr: "127.0.0.1:9165",
|
|
Endpoint: "localhost:9164",
|
|
Services: []string{"appprovider"},
|
|
},
|
|
ExternalAddr: "127.0.0.1:9164",
|
|
WopiDriver: config.WopiDriver{},
|
|
AppsURL: "/app/list",
|
|
OpenURL: "/app/open",
|
|
NewURL: "/app/new",
|
|
},
|
|
Permissions: config.Port{
|
|
Endpoint: "localhost:9191",
|
|
},
|
|
Configs: nil,
|
|
UploadMaxChunkSize: 1e+8,
|
|
UploadHTTPMethodOverride: "",
|
|
ChecksumSupportedTypes: []string{"sha1", "md5", "adler32"},
|
|
ChecksumPreferredUploadType: "",
|
|
DefaultUploadProtocol: "tus",
|
|
},
|
|
// TODO move ocdav config to a separate service
|
|
OCDav: config.OCDav{
|
|
Addr: "127.0.0.1:0", // :0 to pick any local free port
|
|
DebugAddr: "127.0.0.1:9163",
|
|
WebdavNamespace: defaultStorageNamespace,
|
|
FilesNamespace: defaultStorageNamespace,
|
|
SharesNamespace: defaultShareFolder,
|
|
PublicURL: defaultPublicURL,
|
|
Prefix: "",
|
|
GatewaySVC: defaultGatewayAddr,
|
|
Insecure: false, // true?
|
|
Timeout: 84300,
|
|
JWTSecret: "Pive-Fumkiu4",
|
|
},
|
|
Tracing: config.Tracing{
|
|
Service: "storage",
|
|
Type: "jaeger",
|
|
},
|
|
Asset: config.Asset{},
|
|
}
|
|
}
|
|
|
|
func EnsureDefaults(cfg *config.Config) {
|
|
// TODO: IMPLEMENT ME!
|
|
}
|
|
|
|
func Sanitize(cfg *config.Config) {
|
|
// TODO: IMPLEMENT ME!
|
|
}
|