summaryrefslogtreecommitdiff
path: root/app/init.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-05-26 10:08:55 -0600
committermo khan <mo@mokhan.ca>2025-05-26 10:08:55 -0600
commitb54998f78dc2229e5500f6ac22ef24869a3dac0a (patch)
treeddf4bc22cda1d64e17e0b845edaa4b796f7638e2 /app/init.go
parent3d6cdf0b3d6fa23509208e2355a7b7d26400a8ea (diff)
parentf5011f9b32b33ef78405e624d223194ff4b0bd7f (diff)
Merge branch 'envoy-authn-header' into 'main'
Improve startup, logging, and authorization integration See merge request gitlab-org/software-supply-chain-security/authorization/sparkled!11
Diffstat (limited to 'app/init.go')
-rw-r--r--app/init.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/app/init.go b/app/init.go
index d9ca3de..935c962 100644
--- a/app/init.go
+++ b/app/init.go
@@ -7,8 +7,11 @@ import (
"github.com/coreos/go-oidc/v3/oidc"
"github.com/rs/zerolog"
+ "github.com/xlgmokha/x/pkg/env"
"github.com/xlgmokha/x/pkg/ioc"
"github.com/xlgmokha/x/pkg/log"
+ "github.com/xlgmokha/x/pkg/mapper"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd.git/pkg/rpc"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/cfg"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/dashboard"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles"
@@ -44,8 +47,12 @@ func init() {
},
}
})
- ioc.Register[*oidc.Provider](ioc.Default, func() *oidc.Provider {
- ctx := context.WithValue(context.Background(), oauth2.HTTPClient, ioc.MustResolve[*http.Client](ioc.Default))
+ ioc.RegisterSingleton[*oidc.Provider](ioc.Default, func() *oidc.Provider {
+ ctx := context.WithValue(
+ context.Background(),
+ oauth2.HTTPClient,
+ ioc.MustResolve[*http.Client](ioc.Default),
+ )
return web.NewOIDCProvider(ctx, cfg.OIDCIssuer, func(err error) {
ioc.MustResolve[*zerolog.Logger](ioc.Default).Err(err).Send()
})
@@ -55,6 +62,22 @@ func init() {
ClientID: cfg.OAuthClientID,
}
})
+ ioc.Register[rpc.Ability](ioc.Default, func() rpc.Ability {
+ return rpc.NewAbilityProtobufClient(
+ env.Fetch("AUTHZD_HOST", ""),
+ ioc.MustResolve[*http.Client](ioc.Default),
+ )
+ })
http.DefaultClient = ioc.MustResolve[*http.Client](ioc.Default)
+
+ mapper.Register[*http.Request, log.Fields](func(r *http.Request) log.Fields {
+ return log.Fields{
+ "host": r.URL.Host,
+ "method": r.Method,
+ "path": r.URL.Path,
+ "remote_host": r.RemoteAddr,
+ "request_id": r.Header.Get("x-request-id"),
+ }
+ })
}