package mcp import ( "context" "github.com/google/uuid" rfc7591v1 "github.com/pomerium/pomerium/internal/rfc7591" "github.com/pomerium/pomerium/pkg/grpc/databroker" "github.com/pomerium/pomerium/pkg/protoutil" ) type Storage struct { client databroker.DataBrokerServiceClient } // NewStorage creates a new Storage instance. func NewStorage( client databroker.DataBrokerServiceClient, ) *Storage { return &Storage{ client: client, } } func (storage *Storage) RegisterClient( ctx context.Context, req *rfc7591v1.ClientMetadata, ) (string, error) { data := protoutil.NewAny(req) id := uuid.NewString() _, err := storage.client.Put(ctx, &databroker.PutRequest{ Records: []*databroker.Record{{ Id: id, Data: data, Type: data.TypeUrl, }}, }) if err != nil { return "", err } return id, nil }