Skip to content

Commit 2237a9d

Browse files
authored
chore(policies): Refactor policy Registry to pkg (#1247)
Signed-off-by: Javier Rodriguez <[email protected]>
1 parent cce0bc4 commit 2237a9d

File tree

9 files changed

+65
-39
lines changed

9 files changed

+65
-39
lines changed

app/controlplane/cmd/wire.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ package main
2323
import (
2424
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
2525
"github.com/chainloop-dev/chainloop/app/controlplane/internal/dispatcher"
26-
"github.com/chainloop-dev/chainloop/app/controlplane/internal/policies"
2726
"github.com/chainloop-dev/chainloop/app/controlplane/internal/server"
2827
"github.com/chainloop-dev/chainloop/app/controlplane/internal/service"
2928
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/authz"
3029
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz"
3130
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/ca"
3231
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/data"
32+
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/policies"
3333
"github.com/chainloop-dev/chainloop/app/controlplane/plugins/sdk/v1"
3434
"github.com/chainloop-dev/chainloop/pkg/blobmanager/loader"
3535
"github.com/chainloop-dev/chainloop/pkg/credentials"
@@ -57,6 +57,7 @@ func wireApp(*conf.Bootstrap, credentials.ReaderWriter, log.Logger, sdk.Availabl
5757
newApp,
5858
newProtoValidator,
5959
newDataConf,
60+
newPolicyProviderConfig,
6061
),
6162
)
6263
}
@@ -65,6 +66,14 @@ func newDataConf(in *conf.Data_Database) *data.NewConfig {
6566
return &data.NewConfig{Driver: in.Driver, Source: in.Source}
6667
}
6768

69+
func newPolicyProviderConfig(in []*conf.PolicyProvider) []*policies.NewRegistryConfig {
70+
out := make([]*policies.NewRegistryConfig, 0, len(in))
71+
for _, p := range in {
72+
out = append(out, &policies.NewRegistryConfig{Name: p.Name, Host: p.Host, Default: p.Default})
73+
}
74+
return out
75+
}
76+
6877
func serviceOpts(l log.Logger) []service.NewOpt {
6978
return []service.NewOpt{
7079
service.WithLogger(l),

app/controlplane/cmd/wire_gen.go

Lines changed: 34 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/biz/testhelpers/database.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/authz"
3232
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz"
3333
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/data"
34+
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/policies"
3435
"github.com/chainloop-dev/chainloop/app/controlplane/plugins/sdk/v1"
3536
robotaccount "github.com/chainloop-dev/chainloop/internal/robotaccount/cas"
3637
backends "github.com/chainloop-dev/chainloop/pkg/blobmanager"
@@ -208,8 +209,12 @@ func NewDataConfig(in *conf.Data) *data.NewConfig {
208209
}
209210
}
210211

211-
func NewPolicyProviders(in *conf.Bootstrap) []*conf.PolicyProvider {
212-
return in.PolicyProviders
212+
func NewPolicyProviderConfig(in *conf.Bootstrap) []*policies.NewRegistryConfig {
213+
out := make([]*policies.NewRegistryConfig, 0, len(in.PolicyProviders))
214+
for _, p := range in.PolicyProviders {
215+
out = append(out, &policies.NewRegistryConfig{Name: p.Name, Host: p.Host, Default: p.Default})
216+
}
217+
return out
213218
}
214219

215220
func (db *TestDatabase) Close(t *testing.T) {

app/controlplane/pkg/biz/testhelpers/wire.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ import (
2424
"testing"
2525

2626
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
27-
"github.com/chainloop-dev/chainloop/app/controlplane/internal/policies"
2827
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/authz"
2928
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz"
3029
config "github.com/chainloop-dev/chainloop/app/controlplane/pkg/conf/controlplane/config/v1"
3130
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/data"
31+
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/policies"
3232
"github.com/chainloop-dev/chainloop/app/controlplane/plugins/sdk/v1"
3333
robotaccount "github.com/chainloop-dev/chainloop/internal/robotaccount/cas"
3434
backends "github.com/chainloop-dev/chainloop/pkg/blobmanager"
@@ -49,7 +49,7 @@ func WireTestData(*TestDatabase, *testing.T, log.Logger, credentials.ReaderWrite
4949
NewConfData,
5050
NewDataConfig,
5151
NewPromSpec,
52-
NewPolicyProviders,
52+
NewPolicyProviderConfig,
5353
policies.NewRegistry,
5454
authz.NewDatabaseEnforcer,
5555
wire.FieldsOf(new(*conf.Data), "Database"),

app/controlplane/pkg/biz/testhelpers/wire_gen.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/biz/workflowcontract.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"github.com/bufbuild/protovalidate-go"
2727
"github.com/bufbuild/protoyaml-go"
2828
schemav1 "github.com/chainloop-dev/chainloop/app/controlplane/api/workflowcontract/v1"
29-
"github.com/chainloop-dev/chainloop/app/controlplane/internal/policies"
29+
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/policies"
3030
loader "github.com/chainloop-dev/chainloop/pkg/policies"
3131
"github.com/go-kratos/kratos/v2/log"
3232
"github.com/google/uuid"
File renamed without changes.

app/controlplane/internal/policies/registry.go renamed to app/controlplane/pkg/policies/registry.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@ package policies
1717

1818
import (
1919
"fmt"
20-
21-
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
2220
)
2321

22+
type NewRegistryConfig struct {
23+
Name string
24+
Host string
25+
Default bool
26+
}
27+
2428
// Registry manages policy providers
2529
type Registry struct {
2630
providers map[string]*PolicyProvider
2731
}
2832

29-
func NewRegistry(conf ...*conf.PolicyProvider) (*Registry, error) {
33+
func NewRegistry(conf ...*NewRegistryConfig) (*Registry, error) {
3034
r := &Registry{providers: make(map[string]*PolicyProvider)}
3135
var hasDefault bool
3236

app/controlplane/internal/policies/registry_test.go renamed to app/controlplane/pkg/policies/registry_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package policies
1818
import (
1919
"testing"
2020

21-
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
2221
"github.com/stretchr/testify/suite"
2322
)
2423

@@ -34,7 +33,7 @@ func TestProviderSuite(t *testing.T) {
3433

3534
func (s *providerTestSuite) SetupTest() {
3635
var err error
37-
s.registry, err = NewRegistry([]*conf.PolicyProvider{
36+
s.registry, err = NewRegistry([]*NewRegistryConfig{
3837
{Name: "p1", Host: "https://p1host"},
3938
{Name: "p2", Host: "https://p2host"},
4039
{Name: "p3", Host: "https://p3host", Default: true},
@@ -43,7 +42,7 @@ func (s *providerTestSuite) SetupTest() {
4342
}
4443

4544
func (s *providerTestSuite) TestDuplicateDefault() {
46-
_, err := NewRegistry([]*conf.PolicyProvider{
45+
_, err := NewRegistry([]*NewRegistryConfig{
4746
{Name: "p1", Host: "https://p1host"},
4847
{Name: "p2", Host: "https://p2host", Default: true},
4948
{Name: "p3", Host: "https://p3host", Default: true},

0 commit comments

Comments
 (0)