Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion app/controlplane/cmd/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions app/controlplane/pkg/biz/biz.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ var ProviderSet = wire.NewSet(
NewUserAccessSyncerUseCase,
NewGroupUseCase,
NewCASBackendChecker,
NewIndexConfig,
wire.Bind(new(PromObservable), new(*PrometheusUseCase)),
wire.Struct(new(NewIntegrationUseCaseOpts), "*"),
wire.Struct(new(NewUserUseCaseParams), "*"),
Expand Down
30 changes: 20 additions & 10 deletions app/controlplane/pkg/biz/referrer.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,33 @@ type ReferrerUseCase struct {
membershipUseCase *MembershipUseCase
workflowRepo WorkflowRepo
logger *log.Helper
indexConfig *conf.ReferrerSharedIndex
indexConfig *IndexConfig
}

func NewReferrerUseCase(repo ReferrerRepo, wfRepo WorkflowRepo, membershipUseCase *MembershipUseCase, indexCfg *conf.ReferrerSharedIndex, l log.Logger) (*ReferrerUseCase, error) {
type IndexConfig struct {
Enabled bool
AllowedOrgs []string
}

func NewIndexConfig(cfg *conf.ReferrerSharedIndex) (*IndexConfig, error) {
if err := cfg.ValidateOrgs(); err != nil {
return nil, fmt.Errorf("invalid shared index config: %w", err)
}

return &IndexConfig{
Enabled: cfg.Enabled,
AllowedOrgs: cfg.AllowedOrgs,
}, nil
}

func NewReferrerUseCase(repo ReferrerRepo, wfRepo WorkflowRepo, membershipUseCase *MembershipUseCase, indexCfg *IndexConfig, l log.Logger) (*ReferrerUseCase, error) {
if l == nil {
l = log.NewStdLogger(io.Discard)
}
logger := servicelogger.ScopedHelper(l, "biz/referrer")

if indexCfg != nil {
if err := indexCfg.ValidateOrgs(); err != nil {
return nil, fmt.Errorf("invalid shared index config: %w", err)
}

if indexCfg.Enabled {
logger.Infow("msg", "shared index enabled", "allowedOrgs", indexCfg.AllowedOrgs)
}
if indexCfg != nil && indexCfg.Enabled {
logger.Infow("msg", "shared index enabled", "allowedOrgs", indexCfg.AllowedOrgs)
}

return &ReferrerUseCase{
Expand Down
5 changes: 2 additions & 3 deletions app/controlplane/pkg/biz/referrer_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"sync"
"testing"

conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz"
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz/testhelpers"
"github.com/chainloop-dev/chainloop/pkg/credentials"
Expand Down Expand Up @@ -88,7 +87,7 @@ func (s *referrerIntegrationTestSuite) TestGetFromRootInPublicSharedIndex() {

s.T().Run("it should appear if we whitelist org2", func(t *testing.T) {
uc, err := biz.NewReferrerUseCase(s.Repos.Referrer, s.Repos.Workflow, s.Membership,
&conf.ReferrerSharedIndex{
&biz.IndexConfig{
Enabled: true,
AllowedOrgs: []string{s.org2.ID},
}, nil)
Expand Down Expand Up @@ -464,7 +463,7 @@ func (s *referrerIntegrationTestSuite) SetupTest() {
require.NoError(s.T(), err)

s.sharedEnabledUC, err = biz.NewReferrerUseCase(s.Repos.Referrer, s.Repos.Workflow, s.Membership,
&conf.ReferrerSharedIndex{
&biz.IndexConfig{
Enabled: true,
AllowedOrgs: []string{s.org1.ID},
}, nil)
Expand Down
11 changes: 5 additions & 6 deletions app/controlplane/pkg/biz/referrer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"os"
"testing"

conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
v1 "github.com/google/go-containerregistry/pkg/v1"
"github.com/secure-systems-lab/go-securesystemslib/dsse"
"github.com/stretchr/testify/assert"
Expand All @@ -32,36 +31,36 @@ import (
func (s *referrerTestSuite) TestInitialization() {
testCases := []struct {
name string
conf *conf.ReferrerSharedIndex
conf *IndexConfig
wantErrMsg string
}{
{
name: "nil configuration",
},
{
name: "disabled",
conf: &conf.ReferrerSharedIndex{
conf: &IndexConfig{
Enabled: false,
},
},
{
name: "enabled but without orgs",
conf: &conf.ReferrerSharedIndex{
conf: &IndexConfig{
Enabled: true,
},
wantErrMsg: "invalid shared index config: index is enabled, but no orgs are allowed",
},
{
name: "enabled with invalid orgs",
conf: &conf.ReferrerSharedIndex{
conf: &IndexConfig{
Enabled: true,
AllowedOrgs: []string{"invalid"},
},
wantErrMsg: "invalid shared index config: invalid org id: invalid",
},
{
name: "enabled with valid orgs",
conf: &conf.ReferrerSharedIndex{
conf: &IndexConfig{
Enabled: true,
AllowedOrgs: []string{"00000000-0000-0000-0000-000000000000"},
},
Expand Down
7 changes: 6 additions & 1 deletion app/controlplane/pkg/biz/testhelpers/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading