feat(ocm): add wayf configuration for reva ocm service

Signed-off-by: Mahdi Baghbani <mahdi-baghbani@azadehafzar.io>
This commit is contained in:
Mahdi Baghbani
2025-10-27 06:37:40 +00:00
parent c887947a85
commit a004a9114f
5 changed files with 35 additions and 10 deletions

View File

@@ -0,0 +1,7 @@
Enhancement: Add WAYF configuration for reva OCM service
Add WAYF configuration support for the Reva OCM service,
enabling federation discovery functionality for Open Cloud Mesh.
This includes configuration for federations file storage and invite accept dialog URL.
https://github.com/opencloud-eu/opencloud/pull/1714

View File

@@ -83,8 +83,10 @@ type GRPCConfig struct {
}
type ScienceMesh struct {
Prefix string `yaml:"prefix" env:"OCM_SCIENCEMESH_PREFIX" desc:"URL path prefix for the ScienceMesh service. Note that the string must not start with '/'." introductionVersion:"1.0.0"`
MeshDirectoryURL string `yaml:"science_mesh_directory_url" env:"OCM_MESH_DIRECTORY_URL" desc:"URL of the mesh directory service." introductionVersion:"1.0.0"`
Prefix string `yaml:"prefix" env:"OCM_SCIENCEMESH_PREFIX" desc:"URL path prefix for the ScienceMesh service. Note that the string must not start with '/'." introductionVersion:"1.0.0"`
MeshDirectoryURL string `yaml:"science_mesh_directory_url" env:"OCM_MESH_DIRECTORY_URL" desc:"URL of the mesh directory service." introductionVersion:"1.0.0"`
Federations string `yaml:"federations_file" env:"OCM_FEDERATIONS_FILE" desc:"Path to the JSON file where OCM federations data will be stored." introductionVersion:"3.5.0"`
InviteAcceptDialog string `yaml:"invite_accept_dialog" env:"OCM_INVITE_ACCEPT_DIALOG" desc:"/open-cloud-mesh/accept-invite;The frontend URL where to land when receiving an invitation" introductionVersion:"3.5.0"`
}
type OCMD struct {

View File

@@ -90,7 +90,9 @@ func DefaultConfig() *config.Config {
Cluster: "opencloud-cluster",
},
ScienceMesh: config.ScienceMesh{
Prefix: "sciencemesh",
Prefix: "sciencemesh",
Federations: filepath.Join(defaults.BaseConfigPath(), "federations.json"),
InviteAcceptDialog: "/open-cloud-mesh/accept-invite",
},
OCMD: config.OCMD{
Prefix: "ocm",

View File

@@ -60,13 +60,14 @@ func OCMConfigFromStruct(cfg *config.Config, logger log.Logger) map[string]inter
"wellknown": map[string]interface{}{
"prefix": ".well-known",
"ocmprovider": map[string]interface{}{
"ocm_prefix": cfg.OCMD.Prefix,
"endpoint": cfg.Commons.OpenCloudURL,
"provider": "OpenCloud",
"webdav_root": "/dav/ocm",
"webapp_root": cfg.ScienceMesh.Prefix,
"enable_webapp": false,
"enable_datatx": false,
"ocm_prefix": cfg.OCMD.Prefix,
"endpoint": cfg.Commons.OpenCloudURL,
"provider": "OpenCloud",
"webdav_root": "/dav/ocm",
"webapp_root": cfg.ScienceMesh.Prefix,
"invite_accept_dialog": cfg.ScienceMesh.InviteAcceptDialog,
"enable_webapp": false,
"enable_datatx": false,
},
},
"sciencemesh": map[string]interface{}{
@@ -74,6 +75,7 @@ func OCMConfigFromStruct(cfg *config.Config, logger log.Logger) map[string]inter
"smtp_credentials": map[string]string{},
"gatewaysvc": cfg.Reva.Address,
"mesh_directory_url": cfg.ScienceMesh.MeshDirectoryURL,
"federations_file": cfg.ScienceMesh.Federations,
"provider_domain": providerDomain,
"events": map[string]interface{}{
"natsaddress": cfg.Events.Endpoint,

View File

@@ -171,6 +171,18 @@ func DefaultPolicies() []config.Policy {
Service: "eu.opencloud.web.frontend",
Unprotected: true,
},
// OCM WAYF public endpoints
{
Endpoint: "/sciencemesh/federations",
Service: "eu.opencloud.web.ocm",
Unprotected: true,
},
{
Endpoint: "/sciencemesh/discover",
Service: "eu.opencloud.web.ocm",
Unprotected: true,
},
// General sciencemesh endpoints
{
Endpoint: "/sciencemesh/",
Service: "eu.opencloud.web.ocm",