Add compose host address to discovery options

This commit is contained in:
Vivek Patel
2021-12-23 14:35:48 +05:30
parent 549087d572
commit 738d97117b
5 changed files with 49 additions and 7 deletions
+9
View File
@@ -14,6 +14,7 @@ import (
autService "github.com/cortezaproject/corteza-server/automation/service"
cmpService "github.com/cortezaproject/corteza-server/compose/service"
cmpEvent "github.com/cortezaproject/corteza-server/compose/service/event"
discoveryService "github.com/cortezaproject/corteza-server/discovery/service"
fdrService "github.com/cortezaproject/corteza-server/federation/service"
fedService "github.com/cortezaproject/corteza-server/federation/service"
"github.com/cortezaproject/corteza-server/pkg/actionlog"
@@ -428,6 +429,14 @@ func (app *CortezaApp) InitServices(ctx context.Context) (err error) {
}
}
// Initializing discovery
if app.Opt.Discovery.Enabled {
err = discoveryService.Initialize(ctx, app.Opt.Discovery)
if err != nil {
return err
}
}
// Initializing seeder
_ = seeder.Seeder(ctx, app.Store, seeder.Faker())
+11 -3
View File
@@ -5,8 +5,10 @@ import (
"fmt"
cmpService "github.com/cortezaproject/corteza-server/compose/service"
cmpTypes "github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/discovery/service"
"github.com/cortezaproject/corteza-server/pkg/errors"
"github.com/cortezaproject/corteza-server/pkg/filter"
"github.com/cortezaproject/corteza-server/pkg/options"
"github.com/cortezaproject/corteza-server/pkg/rbac"
sysService "github.com/cortezaproject/corteza-server/system/service"
sysTypes "github.com/cortezaproject/corteza-server/system/types"
@@ -14,6 +16,7 @@ import (
type (
composeResources struct {
opt options.DiscoveryOpt
settings *sysTypes.AppSettings
rbac interface {
@@ -62,6 +65,7 @@ var (
func ComposeResources() *composeResources {
return &composeResources{
opt: service.DefaultOption,
settings: sysService.CurrentSettings,
rbac: rbac.Global(),
ac: cmpService.DefaultAccessControl,
@@ -372,24 +376,28 @@ func (d composeResources) UpdateModuleMeta(ctx context.Context) (rsp interface{}
// getUrlToResource construct page url for compose resources
func (d composeResources) getUrlToResource(page pageDetail) (url string) {
var (
host = d.opt.CortezaDomain
validNsSlung = len(page.namespaceSlug) > 0
validModuleID = page.moduleID > 0
validRecord = page.recordID > 0
validPageID = page.pageID > 0
)
if len(host) == 0 {
return
}
if validModuleID && validRecord {
// For record, take moduleID & recordID from params(page) then construct url from modulePages map
if p, is := modulePages[page.moduleID]; is {
url = fmt.Sprintf("/compose/ns/%s/pages/%d/records/%d", p.namespaceSlug, p.pageID, page.recordID)
url = fmt.Sprintf("%s/compose/ns/%s/pages/%d/records/%d", host, p.namespaceSlug, p.pageID, page.recordID)
}
} else if validNsSlung && validPageID {
// for module? @todo, we need moduleID ref for module home page
// we can check page.self_id is 0 that is modules home pages, but ref_module is also 0
url = fmt.Sprintf("/compose/ns/%s/pages/%d", page.namespaceSlug, page.pageID)
url = fmt.Sprintf("%s/compose/ns/%s/pages/%d", host, page.namespaceSlug, page.pageID)
} else if validNsSlung {
// For namespace, just send to /pages FE handles fallback to home(default) page
url = fmt.Sprintf("/compose/ns/%s/pages", page.namespaceSlug)
url = fmt.Sprintf("%s/compose/ns/%s/pages", host, page.namespaceSlug)
}
return
}
+17
View File
@@ -0,0 +1,17 @@
package service
import (
"context"
"github.com/cortezaproject/corteza-server/pkg/options"
)
var (
DefaultOption options.DiscoveryOpt
)
// Initialize discovery service
func Initialize(_ context.Context, opt options.DiscoveryOpt) (err error) {
// @todo maybe move pkg/discovery her or other way around
DefaultOption = opt
return
}
+6 -4
View File
@@ -10,16 +10,18 @@ package options
type (
DiscoveryOpt struct {
Enabled bool `env:"DISCOVERY_ENABLED"`
Debug bool `env:"DISCOVERY_DEBUG"`
Enabled bool `env:"DISCOVERY_ENABLED"`
Debug bool `env:"DISCOVERY_DEBUG"`
CortezaDomain string `env:"DISCOVERY_CORTEZA_DOMAIN"`
}
)
// Discovery initializes and returns a DiscoveryOpt with default values
func Discovery() (o *DiscoveryOpt) {
o = &DiscoveryOpt{
Enabled: false,
Debug: false,
Enabled: false,
Debug: false,
CortezaDomain: "",
}
fill(o)
+6
View File
@@ -9,3 +9,9 @@ props:
default: false
docs:
description: Enable debug activity logging.
- name: CortezaDomain
type: string
default: ""
docs:
description: Provides host of corteza compose webapp.