Add compose host address to discovery options
This commit is contained in:
@@ -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())
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Generated
+6
-4
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user