50 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"context"
"crypto/x509"
"log"
"strings"
// the generated zitadel files for management api
pb "github.com/caos/zitadel/examples/client/zitadel/management"
"github.com/golang/protobuf/ptypes/empty"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
//zitadelAPI is the default zitadel api
const zitadelAPI = "api.zitadel.ch:443"
func main() {
conn, err := grpc.Dial(zitadelAPI, grpc.WithTransportCredentials(cert()))
if err != nil {
log.Fatalf("fail to dial: %v", err)
}
defer conn.Close()
client := pb.NewManagementServiceClient(conn)
//call ZITADEL. the response has no payload so we ignore the res
// the call was successful if no error responded
_, err = client.Healthz(context.TODO(), &empty.Empty{})
if err != nil {
log.Fatalln("call failed: ", err)
}
log.Println("call was successful")
}
//cert load default cert pool for tls
func cert() credentials.TransportCredentials {
ca, err := x509.SystemCertPool()
if err != nil {
log.Println("unable to load cert pool")
}
if ca == nil {
ca = x509.NewCertPool()
}
servernameWithoutPort := strings.Split(zitadelAPI, ":")[0]
return credentials.NewClientTLSFromCert(ca, servernameWithoutPort)
}