Repository navigation
Expand file tree
/
Copy pathinsecure.go
More file actions
71 lines (64 loc) · 1.85 KB
/
Copy pathinsecure.go
File metadata and controls
71 lines (64 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// WARNING: This example demonstrates INSECURE configuration for local development only.
// DO NOT USE IN PRODUCTION. The .Insecure() option disables TLS certificate validation
// and encryption, leaving traffic vulnerable to interception and tampering.
// For production use, see authenticated.go or oauth2client_authenticated.go examples.
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/project-kessel/kessel-sdk-go/kessel/inventory/v1beta2"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func insecure() {
ctx := context.Background()
// WARNING: .Insecure() disables TLS - local development only
inventoryClient, conn, err := v1beta2.NewClientBuilder(os.Getenv("KESSEL_ENDPOINT")).
Insecure().
Build()
if err != nil {
log.Fatal("Failed to create gRPC client:", err)
}
defer func() {
if closeErr := conn.Close(); closeErr != nil {
log.Printf("Failed to close gRPC client: %v", closeErr)
}
}()
// Example request using the external API types
checkRequest := &v1beta2.CheckRequest{
Object: &v1beta2.ResourceReference{
ResourceType: "host",
ResourceId: "1213",
Reporter: &v1beta2.ReporterReference{
Type: "HBI",
},
},
Relation: "member",
Subject: &v1beta2.SubjectReference{
Resource: &v1beta2.ResourceReference{
ResourceType: "user",
ResourceId: "tim",
},
},
}
fmt.Println("Making basic gRPC request:")
response, err := inventoryClient.Check(ctx, checkRequest)
if err != nil {
if st, ok := status.FromError(err); ok {
switch st.Code() {
case codes.Unavailable:
log.Fatal("Service unavailable: ", err)
case codes.PermissionDenied:
log.Fatal("Permission denied: ", err)
default:
log.Fatal("gRPC connection error: ", err)
}
} else {
log.Fatal("Unknown error: ", err)
}
}
fmt.Printf("Check response: %+v\n", response)
}
func main() { insecure() }