mirror of
https://github.com/zitadel/zitadel.git
synced 2025-01-09 19:53:41 +00:00
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
|
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)
|
||
|
}
|