summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/authzd/main.go51
1 files changed, 40 insertions, 11 deletions
diff --git a/cmd/authzd/main.go b/cmd/authzd/main.go
index f79814c..ebc23f7 100644
--- a/cmd/authzd/main.go
+++ b/cmd/authzd/main.go
@@ -7,30 +7,58 @@ import (
"os/signal"
"syscall"
+ "github.com/authzed/authzed-go/v1"
+ "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/x"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/authz"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls"
+ "google.golang.org/grpc"
)
+func init() {
+ c := ioc.Default
+
+ ioc.RegisterSingleton[*zerolog.Logger](c, func() *zerolog.Logger {
+ return log.New(os.Stdout, log.Fields{"app": "authzd"})
+ })
+ ioc.RegisterSingleton[context.Context](c, func() context.Context {
+ logger := ioc.MustResolve[*zerolog.Logger](ioc.Default)
+ return logger.WithContext(context.Background())
+ })
+
+ ioc.RegisterSingleton[*grpc.ClientConn](c, func() *grpc.ClientConn {
+ ctx := ioc.MustResolve[context.Context](ioc.Default)
+ return authz.NewGrpcConnection(ctx, env.Fetch("AUTHZD_HOST", ":20000"))
+ })
+
+ ioc.RegisterSingleton[*authzed.Client](c, func() *authzed.Client {
+ ctx := ioc.MustResolve[context.Context](ioc.Default)
+ return authz.NewSpiceDBClient(
+ ctx,
+ env.Fetch("ZED_ENDPOINT", ":50051"),
+ env.Fetch("ZED_TOKEN", "secret"),
+ )
+ })
+}
+
func main() {
- logger := log.New(os.Stdout, log.Fields{"app": "authzd"})
- ctx := logger.WithContext(context.Background())
+ ctx := ioc.MustResolve[context.Context](ioc.Default)
- connection := authz.NewGrpcConnection(ctx, env.Fetch("AUTHZD_HOST", ":20000"))
+ connection := ioc.MustResolve[*grpc.ClientConn](ioc.Default)
defer connection.Close()
- client := authz.NewSpiceDBClient(
- ctx,
- env.Fetch("ZED_ENDPOINT", ":50051"),
- env.Fetch("ZED_TOKEN", "secret"),
- )
+ client := ioc.MustResolve[*authzed.Client](ioc.Default)
defer client.Close()
- err := authz.LoadSpiceSchema(ctx, client, "./etc/authzd/schema.zed")
+
+ response, err := authz.WriteSchema(ctx, client, "./etc/authzd/schema.zed")
if err != nil {
pls.LogErrorNow(ctx, err)
+ os.Exit(1)
}
+ pls.LogNow(ctx, log.Fields{"schema.write": response})
ctx = authz.Connection.With(ctx, connection)
ctx = authz.Client.With(ctx, client)
@@ -41,11 +69,12 @@ func main() {
go func() {
<-c
server.GracefulStop()
- logger.Log().Str("status", "goodbye").Send()
+ pls.LogNow(ctx, log.Fields{"status": "goodbye"})
}()
defer server.GracefulStop()
- logger.Log().Str("status", "ready").Send()
+
+ pls.LogNow(ctx, log.Fields{"status": "read"})
socket := x.Must(net.Listen("tcp", ":10003"))
pls.LogErrorNow(ctx, server.Serve(socket))
}