mirror of
https://github.com/netbirdio/dex.git
synced 2026-05-22 18:43:53 -07:00
feat(client): add allowed connectors field to client configuration (#4610)
Signed-off-by: maksim.nabokikh <max.nabokih@gmail.com>
This commit is contained in:
+185
-163
@@ -23,16 +23,17 @@ const (
|
||||
|
||||
// Client represents an OAuth2 client.
|
||||
type Client struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
|
||||
RedirectUris []string `protobuf:"bytes,3,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"`
|
||||
TrustedPeers []string `protobuf:"bytes,4,rep,name=trusted_peers,json=trustedPeers,proto3" json:"trusted_peers,omitempty"`
|
||||
Public bool `protobuf:"varint,5,opt,name=public,proto3" json:"public,omitempty"`
|
||||
Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
|
||||
LogoUrl string `protobuf:"bytes,7,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
|
||||
RedirectUris []string `protobuf:"bytes,3,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"`
|
||||
TrustedPeers []string `protobuf:"bytes,4,rep,name=trusted_peers,json=trustedPeers,proto3" json:"trusted_peers,omitempty"`
|
||||
Public bool `protobuf:"varint,5,opt,name=public,proto3" json:"public,omitempty"`
|
||||
Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
|
||||
LogoUrl string `protobuf:"bytes,7,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"`
|
||||
AllowedConnectors []string `protobuf:"bytes,8,rep,name=allowed_connectors,json=allowedConnectors,proto3" json:"allowed_connectors,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *Client) Reset() {
|
||||
@@ -114,6 +115,13 @@ func (x *Client) GetLogoUrl() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Client) GetAllowedConnectors() []string {
|
||||
if x != nil {
|
||||
return x.AllowedConnectors
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateClientReq is a request to make a client.
|
||||
type CreateClientReq struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
@@ -305,14 +313,15 @@ func (x *DeleteClientResp) GetNotFound() bool {
|
||||
|
||||
// UpdateClientReq is a request to update an existing client.
|
||||
type UpdateClientReq struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
RedirectUris []string `protobuf:"bytes,2,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"`
|
||||
TrustedPeers []string `protobuf:"bytes,3,rep,name=trusted_peers,json=trustedPeers,proto3" json:"trusted_peers,omitempty"`
|
||||
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
|
||||
LogoUrl string `protobuf:"bytes,5,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
RedirectUris []string `protobuf:"bytes,2,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"`
|
||||
TrustedPeers []string `protobuf:"bytes,3,rep,name=trusted_peers,json=trustedPeers,proto3" json:"trusted_peers,omitempty"`
|
||||
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
|
||||
LogoUrl string `protobuf:"bytes,5,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"`
|
||||
AllowedConnectors []string `protobuf:"bytes,6,rep,name=allowed_connectors,json=allowedConnectors,proto3" json:"allowed_connectors,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *UpdateClientReq) Reset() {
|
||||
@@ -380,6 +389,13 @@ func (x *UpdateClientReq) GetLogoUrl() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdateClientReq) GetAllowedConnectors() []string {
|
||||
if x != nil {
|
||||
return x.AllowedConnectors
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateClientResp returns the response from updating a client.
|
||||
type UpdateClientResp struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
@@ -1326,7 +1342,7 @@ var File_api_api_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_api_api_proto_rawDesc = string([]byte{
|
||||
0x0a, 0x0d, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
|
||||
0x03, 0x61, 0x70, 0x69, 0x22, 0xc1, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x03, 0x61, 0x70, 0x69, 0x22, 0xf0, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72,
|
||||
@@ -1338,155 +1354,161 @@ var file_api_api_proto_rawDesc = string([]byte{
|
||||
0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a,
|
||||
0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x22, 0x36, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x06, 0x63,
|
||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x22, 0x5e, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f,
|
||||
0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c,
|
||||
0x72, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x63,
|
||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x22, 0x21, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x02, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69,
|
||||
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66,
|
||||
0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46,
|
||||
0x6f, 0x75, 0x6e, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
|
||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69,
|
||||
0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||
0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x23, 0x0a,
|
||||
0x0d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x50, 0x65, 0x65,
|
||||
0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75,
|
||||
0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72,
|
||||
0x6c, 0x22, 0x2f, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75,
|
||||
0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75,
|
||||
0x6e, 0x64, 0x22, 0x69, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
|
||||
0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3e, 0x0a,
|
||||
0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52,
|
||||
0x65, 0x71, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77,
|
||||
0x6f, 0x72, 0x64, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3b, 0x0a,
|
||||
0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52,
|
||||
0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f,
|
||||
0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x08,
|
||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x36, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6c,
|
||||
0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22,
|
||||
0x5e, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x65,
|
||||
0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x72,
|
||||
0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, 0x67, 0x0a, 0x11, 0x55, 0x70,
|
||||
0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12,
|
||||
0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
|
||||
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x61, 0x73,
|
||||
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x48, 0x61, 0x73, 0x68,
|
||||
0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74,
|
||||
0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f,
|
||||
0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
||||
0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65,
|
||||
0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69,
|
||||
0x6c, 0x22, 0x31, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77,
|
||||
0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6c,
|
||||
0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22,
|
||||
0x21, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 0x64, 0x22, 0x2f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65,
|
||||
0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f,
|
||||
0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f,
|
||||
0x75, 0x6e, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c,
|
||||
0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72,
|
||||
0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c,
|
||||
0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x23, 0x0a, 0x0d,
|
||||
0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20,
|
||||
0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72,
|
||||
0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72,
|
||||
0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c,
|
||||
0x12, 0x2d, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e,
|
||||
0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x6c,
|
||||
0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22,
|
||||
0x2f, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64,
|
||||
0x22, 0x69, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61,
|
||||
0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x11, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71,
|
||||
0x12, 0x29, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
||||
0x64, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3b, 0x0a, 0x12, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73,
|
||||
0x70, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69,
|
||||
0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x72, 0x65, 0x61,
|
||||
0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, 0x67, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d,
|
||||
0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21,
|
||||
0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x22, 0x31, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77,
|
||||
0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66,
|
||||
0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46,
|
||||
0x6f, 0x75, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x09, 0x70,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x70,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x0c, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x73,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a,
|
||||
0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22,
|
||||
0x7a, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52,
|
||||
0x65, 0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
||||
0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b,
|
||||
0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
|
||||
0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x66,
|
||||
0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54,
|
||||
0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
|
||||
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65,
|
||||
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73,
|
||||
0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
|
||||
0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64,
|
||||
0x22, 0x30, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
|
||||
0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75,
|
||||
0x6f, 0x75, 0x6e, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61,
|
||||
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61,
|
||||
0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22,
|
||||
0x31, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75,
|
||||
0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75,
|
||||
0x6e, 0x64, 0x22, 0x45, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x4d, 0x0a, 0x12, 0x56, 0x65, 0x72,
|
||||
0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
|
||||
0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
|
||||
0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
|
||||
0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0xc7, 0x05, 0x0a, 0x03, 0x44, 0x65, 0x78,
|
||||
0x12, 0x3d, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69,
|
||||
0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12,
|
||||
0x3d, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65,
|
||||
0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d,
|
||||
0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a,
|
||||
0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
|
||||
0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
|
||||
0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
||||
0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65,
|
||||
0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61,
|
||||
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0d,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
|
||||
0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61,
|
||||
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x0a,
|
||||
0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12,
|
||||
0x3a, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x13,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
|
||||
0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
|
||||
0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x52,
|
||||
0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x15, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
|
||||
0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65,
|
||||
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a,
|
||||
0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
|
||||
0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x65,
|
||||
0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
|
||||
0x22, 0x00, 0x42, 0x2f, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x6f, 0x73,
|
||||
0x2e, 0x64, 0x65, 0x78, 0x2e, 0x61, 0x70, 0x69, 0x5a, 0x19, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x78, 0x69, 0x64, 0x70, 0x2f, 0x64, 0x65, 0x78, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
|
||||
0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x09, 0x70, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x70, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x0c, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52,
|
||||
0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61,
|
||||
0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x7a, 0x0a,
|
||||
0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x66,
|
||||
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
|
||||
0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09,
|
||||
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x08, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75,
|
||||
0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
|
||||
0x65, 0x72, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72,
|
||||
0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65,
|
||||
0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b,
|
||||
0x65, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f,
|
||||
0x6b, 0x65, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65,
|
||||
0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
|
||||
0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x30,
|
||||
0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52,
|
||||
0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64,
|
||||
0x22, 0x45, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
|
||||
0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x4d, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x69, 0x66,
|
||||
0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||
0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x74,
|
||||
0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f,
|
||||
0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0xc7, 0x05, 0x0a, 0x03, 0x44, 0x65, 0x78, 0x12, 0x3d,
|
||||
0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a,
|
||||
0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||
0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0c,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43,
|
||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
|
||||
0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00,
|
||||
0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
|
||||
0x72, 0x64, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52,
|
||||
0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
|
||||
0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65,
|
||||
0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a,
|
||||
0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0d, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65,
|
||||
0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73,
|
||||
0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x0a, 0x47, 0x65,
|
||||
0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3a, 0x0a,
|
||||
0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x13, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65,
|
||||
0x71, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72,
|
||||
0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x52, 0x65, 0x76,
|
||||
0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65,
|
||||
0x71, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65,
|
||||
0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x56,
|
||||
0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
|
||||
0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x65, 0x72, 0x69,
|
||||
0x66, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00,
|
||||
0x42, 0x2f, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x6f, 0x73, 0x2e, 0x64,
|
||||
0x65, 0x78, 0x2e, 0x61, 0x70, 0x69, 0x5a, 0x19, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x78, 0x69, 0x64, 0x70, 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
})
|
||||
|
||||
var (
|
||||
|
||||
@@ -14,6 +14,7 @@ message Client {
|
||||
bool public = 5;
|
||||
string name = 6;
|
||||
string logo_url = 7;
|
||||
repeated string allowed_connectors = 8;
|
||||
}
|
||||
|
||||
// CreateClientReq is a request to make a client.
|
||||
@@ -45,6 +46,7 @@ message UpdateClientReq {
|
||||
repeated string trusted_peers = 3;
|
||||
string name = 4;
|
||||
string logo_url = 5;
|
||||
repeated string allowed_connectors = 6;
|
||||
}
|
||||
|
||||
// UpdateClientResp returns the response from updating a client.
|
||||
|
||||
+354
-321
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@ message Client {
|
||||
bool public = 5;
|
||||
string name = 6;
|
||||
string logo_url = 7;
|
||||
repeated string allowed_connectors = 8;
|
||||
}
|
||||
|
||||
// ClientInfo represents an OAuth2 client without sensitive information.
|
||||
@@ -24,6 +25,7 @@ message ClientInfo {
|
||||
bool public = 4;
|
||||
string name = 5;
|
||||
string logo_url = 6;
|
||||
repeated string allowed_connectors = 7;
|
||||
}
|
||||
|
||||
// GetClientReq is a request to retrieve client details.
|
||||
@@ -66,6 +68,7 @@ message UpdateClientReq {
|
||||
repeated string trusted_peers = 3;
|
||||
string name = 4;
|
||||
string logo_url = 5;
|
||||
repeated string allowed_connectors = 6;
|
||||
}
|
||||
|
||||
// UpdateClientResp returns the response from updating a client.
|
||||
|
||||
@@ -134,6 +134,16 @@ web:
|
||||
# - /device/callback
|
||||
# name: 'Static Client for Device Flow'
|
||||
# public: true
|
||||
#
|
||||
# # Example of a client restricted to specific connectors
|
||||
# - id: restricted-client
|
||||
# secret: restricted-client-secret
|
||||
# redirectURIs:
|
||||
# - 'https://app.example.com/callback'
|
||||
# name: 'Restricted Client'
|
||||
# allowedConnectors:
|
||||
# - github
|
||||
# - google
|
||||
|
||||
# Connectors are used to authenticate users against upstream identity providers.
|
||||
#
|
||||
|
||||
@@ -133,6 +133,10 @@ staticClients:
|
||||
- '/dex/device/callback'
|
||||
name: 'Example App'
|
||||
secret: ZXhhbXBsZS1hcHAtc2VjcmV0
|
||||
# Optional: restrict which connectors this client can use for authentication.
|
||||
# If omitted or empty, all connectors are allowed.
|
||||
# allowedConnectors:
|
||||
# - mock
|
||||
|
||||
# Example using environment variables
|
||||
# Set DEX_CLIENT_ID and DEX_SECURE_CLIENT_SECRET before starting Dex
|
||||
@@ -147,6 +151,7 @@ staticClients:
|
||||
# - /device/callback
|
||||
# name: 'Static Client for Device Flow'
|
||||
# public: true
|
||||
|
||||
connectors:
|
||||
- type: mockCallback
|
||||
id: mock
|
||||
|
||||
+26
-20
@@ -58,13 +58,14 @@ func (d dexAPI) GetClient(ctx context.Context, req *api.GetClientReq) (*api.GetC
|
||||
|
||||
return &api.GetClientResp{
|
||||
Client: &api.Client{
|
||||
Id: c.ID,
|
||||
Name: c.Name,
|
||||
Secret: c.Secret,
|
||||
RedirectUris: c.RedirectURIs,
|
||||
TrustedPeers: c.TrustedPeers,
|
||||
Public: c.Public,
|
||||
LogoUrl: c.LogoURL,
|
||||
Id: c.ID,
|
||||
Name: c.Name,
|
||||
Secret: c.Secret,
|
||||
RedirectUris: c.RedirectURIs,
|
||||
TrustedPeers: c.TrustedPeers,
|
||||
Public: c.Public,
|
||||
LogoUrl: c.LogoURL,
|
||||
AllowedConnectors: c.AllowedConnectors,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
@@ -82,13 +83,14 @@ func (d dexAPI) CreateClient(ctx context.Context, req *api.CreateClientReq) (*ap
|
||||
}
|
||||
|
||||
c := storage.Client{
|
||||
ID: req.Client.Id,
|
||||
Secret: req.Client.Secret,
|
||||
RedirectURIs: req.Client.RedirectUris,
|
||||
TrustedPeers: req.Client.TrustedPeers,
|
||||
Public: req.Client.Public,
|
||||
Name: req.Client.Name,
|
||||
LogoURL: req.Client.LogoUrl,
|
||||
ID: req.Client.Id,
|
||||
Secret: req.Client.Secret,
|
||||
RedirectURIs: req.Client.RedirectUris,
|
||||
TrustedPeers: req.Client.TrustedPeers,
|
||||
Public: req.Client.Public,
|
||||
Name: req.Client.Name,
|
||||
LogoURL: req.Client.LogoUrl,
|
||||
AllowedConnectors: req.Client.AllowedConnectors,
|
||||
}
|
||||
if err := d.s.CreateClient(ctx, c); err != nil {
|
||||
if err == storage.ErrAlreadyExists {
|
||||
@@ -121,6 +123,9 @@ func (d dexAPI) UpdateClient(ctx context.Context, req *api.UpdateClientReq) (*ap
|
||||
if req.LogoUrl != "" {
|
||||
old.LogoURL = req.LogoUrl
|
||||
}
|
||||
if req.AllowedConnectors != nil {
|
||||
old.AllowedConnectors = req.AllowedConnectors
|
||||
}
|
||||
return old, nil
|
||||
})
|
||||
if err != nil {
|
||||
@@ -155,12 +160,13 @@ func (d dexAPI) ListClients(ctx context.Context, req *api.ListClientReq) (*api.L
|
||||
clients := make([]*api.ClientInfo, 0, len(clientList))
|
||||
for _, client := range clientList {
|
||||
c := api.ClientInfo{
|
||||
Id: client.ID,
|
||||
Name: client.Name,
|
||||
RedirectUris: client.RedirectURIs,
|
||||
TrustedPeers: client.TrustedPeers,
|
||||
Public: client.Public,
|
||||
LogoUrl: client.LogoURL,
|
||||
Id: client.ID,
|
||||
Name: client.Name,
|
||||
RedirectUris: client.RedirectURIs,
|
||||
TrustedPeers: client.TrustedPeers,
|
||||
Public: client.Public,
|
||||
LogoUrl: client.LogoURL,
|
||||
AllowedConnectors: client.AllowedConnectors,
|
||||
}
|
||||
clients = append(clients, &c)
|
||||
}
|
||||
|
||||
+74
-1
@@ -185,8 +185,17 @@ func (s *Server) handleAuthorization(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
// Filter connectors based on the client's allowed connectors list.
|
||||
// client_id is required per RFC 6749 §4.1.1.
|
||||
client, authErr := s.getClientWithAuthError(ctx, r.Form.Get("client_id"))
|
||||
if authErr != nil {
|
||||
s.renderError(r, w, authErr.Status, authErr.Error())
|
||||
return
|
||||
}
|
||||
connectors = filterConnectors(connectors, client.AllowedConnectors)
|
||||
|
||||
if len(connectors) == 0 {
|
||||
s.renderError(r, w, http.StatusBadRequest, "No connectors available for the requested grant type.")
|
||||
s.renderError(r, w, http.StatusBadRequest, "No connectors available for this client.")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -232,6 +241,57 @@ func (s *Server) handleAuthorization(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
// filterConnectors filters the list of connectors by the allowed connector IDs.
|
||||
// If allowedConnectors is empty, all connectors are returned (no filtering).
|
||||
func filterConnectors(connectors []storage.Connector, allowedConnectors []string) []storage.Connector {
|
||||
if len(allowedConnectors) == 0 {
|
||||
return connectors
|
||||
}
|
||||
|
||||
allowed := make(map[string]bool, len(allowedConnectors))
|
||||
for _, id := range allowedConnectors {
|
||||
allowed[id] = true
|
||||
}
|
||||
|
||||
filtered := make([]storage.Connector, 0, len(connectors))
|
||||
for _, c := range connectors {
|
||||
if allowed[c.ID] {
|
||||
filtered = append(filtered, c)
|
||||
}
|
||||
}
|
||||
return filtered
|
||||
}
|
||||
|
||||
// isConnectorAllowed checks if a connector ID is in the client's allowed connectors list.
|
||||
// If allowedConnectors is empty, all connectors are allowed.
|
||||
func isConnectorAllowed(allowedConnectors []string, connectorID string) bool {
|
||||
if len(allowedConnectors) == 0 {
|
||||
return true
|
||||
}
|
||||
for _, id := range allowedConnectors {
|
||||
if id == connectorID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// getClientWithAuthError retrieves a client by ID and returns a displayedAuthErr on failure.
|
||||
// Invalid client_id is not treated as a redirect error per RFC 6749 §4.1.2.1.
|
||||
// https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2.1
|
||||
func (s *Server) getClientWithAuthError(ctx context.Context, clientID string) (storage.Client, *displayedAuthErr) {
|
||||
client, err := s.storage.GetClient(ctx, clientID)
|
||||
if err != nil {
|
||||
if err == storage.ErrNotFound {
|
||||
s.logger.ErrorContext(ctx, "invalid client_id provided", "client_id", clientID)
|
||||
return storage.Client{}, newDisplayedErr(http.StatusBadRequest, "Invalid client_id provided.")
|
||||
}
|
||||
s.logger.ErrorContext(ctx, "failed to get client", "client_id", clientID, "err", err)
|
||||
return storage.Client{}, newDisplayedErr(http.StatusInternalServerError, "Database error.")
|
||||
}
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func (s *Server) handleConnectorLogin(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
authReq, err := s.parseAuthorizationRequest(r)
|
||||
@@ -257,6 +317,19 @@ func (s *Server) handleConnectorLogin(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// Validate that the connector is allowed for this client.
|
||||
client, authErr := s.getClientWithAuthError(ctx, authReq.ClientID)
|
||||
if authErr != nil {
|
||||
s.renderError(r, w, authErr.Status, authErr.Error())
|
||||
return
|
||||
}
|
||||
if !isConnectorAllowed(client.AllowedConnectors, connID) {
|
||||
s.logger.ErrorContext(r.Context(), "connector not allowed for client",
|
||||
"connector_id", connID, "client_id", authReq.ClientID)
|
||||
s.renderError(r, w, http.StatusForbidden, "Connector not allowed for this client.")
|
||||
return
|
||||
}
|
||||
|
||||
conn, err := s.getConnector(ctx, connID)
|
||||
if err != nil {
|
||||
s.logger.ErrorContext(r.Context(), "Failed to get connector", "err", err)
|
||||
|
||||
+183
-1
@@ -1156,7 +1156,12 @@ func TestHandleAuthorizationConnectorGrantTypeFiltering(t *testing.T) {
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
httpServer, s := newTestServerMultipleConnectors(t, nil)
|
||||
httpServer, s := newTestServerMultipleConnectors(t, func(c *Config) {
|
||||
c.Storage.CreateClient(ctx, storage.Client{
|
||||
ID: "test",
|
||||
RedirectURIs: []string{"http://example.com/callback"},
|
||||
})
|
||||
})
|
||||
defer httpServer.Close()
|
||||
|
||||
for id, gts := range tc.connectorGrantTypes {
|
||||
@@ -1337,3 +1342,180 @@ func (m *mockSAMLRefreshConnector) HandlePOST(s connector.Scopes, samlResponse,
|
||||
func (m *mockSAMLRefreshConnector) Refresh(ctx context.Context, s connector.Scopes, ident connector.Identity) (connector.Identity, error) {
|
||||
return m.refreshIdentity, nil
|
||||
}
|
||||
|
||||
func TestFilterConnectors(t *testing.T) {
|
||||
connectors := []storage.Connector{
|
||||
{ID: "github", Type: "github", Name: "GitHub"},
|
||||
{ID: "google", Type: "oidc", Name: "Google"},
|
||||
{ID: "ldap", Type: "ldap", Name: "LDAP"},
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
allowedConnectors []string
|
||||
wantIDs []string
|
||||
}{
|
||||
{
|
||||
name: "No filter - all connectors returned",
|
||||
allowedConnectors: nil,
|
||||
wantIDs: []string{"github", "google", "ldap"},
|
||||
},
|
||||
{
|
||||
name: "Empty filter - all connectors returned",
|
||||
allowedConnectors: []string{},
|
||||
wantIDs: []string{"github", "google", "ldap"},
|
||||
},
|
||||
{
|
||||
name: "Filter to one connector",
|
||||
allowedConnectors: []string{"github"},
|
||||
wantIDs: []string{"github"},
|
||||
},
|
||||
{
|
||||
name: "Filter to two connectors",
|
||||
allowedConnectors: []string{"github", "ldap"},
|
||||
wantIDs: []string{"github", "ldap"},
|
||||
},
|
||||
{
|
||||
name: "Filter with non-existent connector ID",
|
||||
allowedConnectors: []string{"nonexistent"},
|
||||
wantIDs: []string{},
|
||||
},
|
||||
{
|
||||
name: "Filter with mix of valid and invalid IDs",
|
||||
allowedConnectors: []string{"google", "nonexistent"},
|
||||
wantIDs: []string{"google"},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
result := filterConnectors(connectors, tc.allowedConnectors)
|
||||
gotIDs := make([]string, len(result))
|
||||
for i, c := range result {
|
||||
gotIDs[i] = c.ID
|
||||
}
|
||||
require.Equal(t, tc.wantIDs, gotIDs)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsConnectorAllowed(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
allowedConnectors []string
|
||||
connectorID string
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
name: "No restrictions - all allowed",
|
||||
allowedConnectors: nil,
|
||||
connectorID: "any",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "Empty list - all allowed",
|
||||
allowedConnectors: []string{},
|
||||
connectorID: "any",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "Connector in allowed list",
|
||||
allowedConnectors: []string{"github", "google"},
|
||||
connectorID: "github",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "Connector not in allowed list",
|
||||
allowedConnectors: []string{"github", "google"},
|
||||
connectorID: "ldap",
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
got := isConnectorAllowed(tc.allowedConnectors, tc.connectorID)
|
||||
require.Equal(t, tc.want, got)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestHandleAuthorizationWithAllowedConnectors(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
|
||||
httpServer, s := newTestServerMultipleConnectors(t, nil)
|
||||
defer httpServer.Close()
|
||||
|
||||
// Create a client that only allows "mock" connector (not "mock2")
|
||||
client := storage.Client{
|
||||
ID: "filtered-client",
|
||||
Secret: "secret",
|
||||
RedirectURIs: []string{"https://example.com/callback"},
|
||||
Name: "Filtered Client",
|
||||
AllowedConnectors: []string{"mock"},
|
||||
}
|
||||
require.NoError(t, s.storage.CreateClient(ctx, client))
|
||||
|
||||
// Request the auth page with this client - should only show "mock" connector
|
||||
rr := httptest.NewRecorder()
|
||||
req := httptest.NewRequest("GET", fmt.Sprintf("/auth?client_id=%s&redirect_uri=%s&response_type=code&scope=openid",
|
||||
client.ID, url.QueryEscape("https://example.com/callback")), nil)
|
||||
s.ServeHTTP(rr, req)
|
||||
|
||||
// With only one allowed connector and alwaysShowLogin=false (default),
|
||||
// the server should redirect directly to the connector
|
||||
require.Equal(t, http.StatusFound, rr.Code)
|
||||
location := rr.Header().Get("Location")
|
||||
require.Contains(t, location, "/auth/mock")
|
||||
require.NotContains(t, location, "mock2")
|
||||
}
|
||||
|
||||
func TestHandleAuthorizationWithNoMatchingConnectors(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
|
||||
httpServer, s := newTestServerMultipleConnectors(t, nil)
|
||||
defer httpServer.Close()
|
||||
|
||||
// Create a client that only allows a non-existent connector
|
||||
client := storage.Client{
|
||||
ID: "no-connectors-client",
|
||||
Secret: "secret",
|
||||
RedirectURIs: []string{"https://example.com/callback"},
|
||||
Name: "No Connectors Client",
|
||||
AllowedConnectors: []string{"nonexistent"},
|
||||
}
|
||||
require.NoError(t, s.storage.CreateClient(ctx, client))
|
||||
|
||||
rr := httptest.NewRecorder()
|
||||
req := httptest.NewRequest("GET", fmt.Sprintf("/auth?client_id=%s&redirect_uri=%s&response_type=code&scope=openid",
|
||||
client.ID, url.QueryEscape("https://example.com/callback")), nil)
|
||||
s.ServeHTTP(rr, req)
|
||||
|
||||
// Should return an error, not an empty login page
|
||||
require.Equal(t, http.StatusBadRequest, rr.Code)
|
||||
}
|
||||
|
||||
func TestHandleAuthorizationWithoutAllowedConnectors(t *testing.T) {
|
||||
ctx := t.Context()
|
||||
|
||||
httpServer, s := newTestServerMultipleConnectors(t, nil)
|
||||
defer httpServer.Close()
|
||||
|
||||
// Create a client with no connector restrictions
|
||||
client := storage.Client{
|
||||
ID: "unfiltered-client",
|
||||
Secret: "secret",
|
||||
RedirectURIs: []string{"https://example.com/callback"},
|
||||
Name: "Unfiltered Client",
|
||||
}
|
||||
require.NoError(t, s.storage.CreateClient(ctx, client))
|
||||
|
||||
// Request the auth page - should show all connectors (rendered as HTML)
|
||||
rr := httptest.NewRecorder()
|
||||
req := httptest.NewRequest("GET", fmt.Sprintf("/auth?client_id=%s&redirect_uri=%s&response_type=code&scope=openid",
|
||||
client.ID, url.QueryEscape("https://example.com/callback")), nil)
|
||||
s.ServeHTTP(rr, req)
|
||||
|
||||
// With multiple connectors and no filter, the login page should be rendered (200 OK)
|
||||
require.Equal(t, http.StatusOK, rr.Code)
|
||||
}
|
||||
|
||||
@@ -475,6 +475,9 @@ func (s *Server) parseAuthorizationRequest(r *http.Request) (*storage.AuthReques
|
||||
if !validateConnectorID(connectors, connectorID) {
|
||||
return nil, newRedirectedErr(errInvalidRequest, "Invalid ConnectorID")
|
||||
}
|
||||
if !isConnectorAllowed(client.AllowedConnectors, connectorID) {
|
||||
return nil, newRedirectedErr(errInvalidRequest, "Connector not allowed for this client")
|
||||
}
|
||||
}
|
||||
|
||||
// dex doesn't support request parameter and must return request_not_supported error
|
||||
|
||||
@@ -262,11 +262,12 @@ func testClientCRUD(t *testing.T, s storage.Storage) {
|
||||
ctx := t.Context()
|
||||
id1 := storage.NewID()
|
||||
c1 := storage.Client{
|
||||
ID: id1,
|
||||
Secret: "foobar",
|
||||
RedirectURIs: []string{"foo://bar.com/", "https://auth.example.com"},
|
||||
Name: "dex client",
|
||||
LogoURL: "https://goo.gl/JIyzIC",
|
||||
ID: id1,
|
||||
Secret: "foobar",
|
||||
RedirectURIs: []string{"foo://bar.com/", "https://auth.example.com"},
|
||||
Name: "dex client",
|
||||
LogoURL: "https://goo.gl/JIyzIC",
|
||||
AllowedConnectors: []string{"github", "google"},
|
||||
}
|
||||
err := s.DeleteClient(ctx, id1)
|
||||
mustBeErrNotFound(t, "client", err)
|
||||
|
||||
@@ -16,6 +16,7 @@ func (d *Database) CreateClient(ctx context.Context, client storage.Client) erro
|
||||
SetLogoURL(client.LogoURL).
|
||||
SetRedirectUris(client.RedirectURIs).
|
||||
SetTrustedPeers(client.TrustedPeers).
|
||||
SetAllowedConnectors(client.AllowedConnectors).
|
||||
Save(ctx)
|
||||
if err != nil {
|
||||
return convertDBError("create oauth2 client: %w", err)
|
||||
@@ -79,6 +80,7 @@ func (d *Database) UpdateClient(ctx context.Context, id string, updater func(old
|
||||
SetLogoURL(newClient.LogoURL).
|
||||
SetRedirectUris(newClient.RedirectURIs).
|
||||
SetTrustedPeers(newClient.TrustedPeers).
|
||||
SetAllowedConnectors(newClient.AllowedConnectors).
|
||||
Save(ctx)
|
||||
if err != nil {
|
||||
return rollback(tx, "update client uploading: %w", err)
|
||||
|
||||
@@ -76,13 +76,14 @@ func toStorageAuthCode(a *db.AuthCode) storage.AuthCode {
|
||||
|
||||
func toStorageClient(c *db.OAuth2Client) storage.Client {
|
||||
return storage.Client{
|
||||
ID: c.ID,
|
||||
Secret: c.Secret,
|
||||
RedirectURIs: c.RedirectUris,
|
||||
TrustedPeers: c.TrustedPeers,
|
||||
Public: c.Public,
|
||||
Name: c.Name,
|
||||
LogoURL: c.LogoURL,
|
||||
ID: c.ID,
|
||||
Secret: c.Secret,
|
||||
RedirectURIs: c.RedirectUris,
|
||||
TrustedPeers: c.TrustedPeers,
|
||||
Public: c.Public,
|
||||
Name: c.Name,
|
||||
LogoURL: c.LogoURL,
|
||||
AllowedConnectors: c.AllowedConnectors,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ var (
|
||||
{Name: "public", Type: field.TypeBool},
|
||||
{Name: "name", Type: field.TypeString, Size: 2147483647, SchemaType: map[string]string{"mysql": "varchar(384)", "postgres": "text", "sqlite3": "text"}},
|
||||
{Name: "logo_url", Type: field.TypeString, Size: 2147483647, SchemaType: map[string]string{"mysql": "varchar(384)", "postgres": "text", "sqlite3": "text"}},
|
||||
{Name: "allowed_connectors", Type: field.TypeJSON, Nullable: true},
|
||||
}
|
||||
// Oauth2clientsTable holds the schema information for the "oauth2clients" table.
|
||||
Oauth2clientsTable = &schema.Table{
|
||||
|
||||
+106
-16
@@ -5214,21 +5214,23 @@ func (m *KeysMutation) ResetEdge(name string) error {
|
||||
// OAuth2ClientMutation represents an operation that mutates the OAuth2Client nodes in the graph.
|
||||
type OAuth2ClientMutation struct {
|
||||
config
|
||||
op Op
|
||||
typ string
|
||||
id *string
|
||||
secret *string
|
||||
redirect_uris *[]string
|
||||
appendredirect_uris []string
|
||||
trusted_peers *[]string
|
||||
appendtrusted_peers []string
|
||||
public *bool
|
||||
name *string
|
||||
logo_url *string
|
||||
clearedFields map[string]struct{}
|
||||
done bool
|
||||
oldValue func(context.Context) (*OAuth2Client, error)
|
||||
predicates []predicate.OAuth2Client
|
||||
op Op
|
||||
typ string
|
||||
id *string
|
||||
secret *string
|
||||
redirect_uris *[]string
|
||||
appendredirect_uris []string
|
||||
trusted_peers *[]string
|
||||
appendtrusted_peers []string
|
||||
public *bool
|
||||
name *string
|
||||
logo_url *string
|
||||
allowed_connectors *[]string
|
||||
appendallowed_connectors []string
|
||||
clearedFields map[string]struct{}
|
||||
done bool
|
||||
oldValue func(context.Context) (*OAuth2Client, error)
|
||||
predicates []predicate.OAuth2Client
|
||||
}
|
||||
|
||||
var _ ent.Mutation = (*OAuth2ClientMutation)(nil)
|
||||
@@ -5609,6 +5611,71 @@ func (m *OAuth2ClientMutation) ResetLogoURL() {
|
||||
m.logo_url = nil
|
||||
}
|
||||
|
||||
// SetAllowedConnectors sets the "allowed_connectors" field.
|
||||
func (m *OAuth2ClientMutation) SetAllowedConnectors(s []string) {
|
||||
m.allowed_connectors = &s
|
||||
m.appendallowed_connectors = nil
|
||||
}
|
||||
|
||||
// AllowedConnectors returns the value of the "allowed_connectors" field in the mutation.
|
||||
func (m *OAuth2ClientMutation) AllowedConnectors() (r []string, exists bool) {
|
||||
v := m.allowed_connectors
|
||||
if v == nil {
|
||||
return
|
||||
}
|
||||
return *v, true
|
||||
}
|
||||
|
||||
// OldAllowedConnectors returns the old "allowed_connectors" field's value of the OAuth2Client entity.
|
||||
// If the OAuth2Client object wasn't provided to the builder, the object is fetched from the database.
|
||||
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
||||
func (m *OAuth2ClientMutation) OldAllowedConnectors(ctx context.Context) (v []string, err error) {
|
||||
if !m.op.Is(OpUpdateOne) {
|
||||
return v, errors.New("OldAllowedConnectors is only allowed on UpdateOne operations")
|
||||
}
|
||||
if m.id == nil || m.oldValue == nil {
|
||||
return v, errors.New("OldAllowedConnectors requires an ID field in the mutation")
|
||||
}
|
||||
oldValue, err := m.oldValue(ctx)
|
||||
if err != nil {
|
||||
return v, fmt.Errorf("querying old value for OldAllowedConnectors: %w", err)
|
||||
}
|
||||
return oldValue.AllowedConnectors, nil
|
||||
}
|
||||
|
||||
// AppendAllowedConnectors adds s to the "allowed_connectors" field.
|
||||
func (m *OAuth2ClientMutation) AppendAllowedConnectors(s []string) {
|
||||
m.appendallowed_connectors = append(m.appendallowed_connectors, s...)
|
||||
}
|
||||
|
||||
// AppendedAllowedConnectors returns the list of values that were appended to the "allowed_connectors" field in this mutation.
|
||||
func (m *OAuth2ClientMutation) AppendedAllowedConnectors() ([]string, bool) {
|
||||
if len(m.appendallowed_connectors) == 0 {
|
||||
return nil, false
|
||||
}
|
||||
return m.appendallowed_connectors, true
|
||||
}
|
||||
|
||||
// ClearAllowedConnectors clears the value of the "allowed_connectors" field.
|
||||
func (m *OAuth2ClientMutation) ClearAllowedConnectors() {
|
||||
m.allowed_connectors = nil
|
||||
m.appendallowed_connectors = nil
|
||||
m.clearedFields[oauth2client.FieldAllowedConnectors] = struct{}{}
|
||||
}
|
||||
|
||||
// AllowedConnectorsCleared returns if the "allowed_connectors" field was cleared in this mutation.
|
||||
func (m *OAuth2ClientMutation) AllowedConnectorsCleared() bool {
|
||||
_, ok := m.clearedFields[oauth2client.FieldAllowedConnectors]
|
||||
return ok
|
||||
}
|
||||
|
||||
// ResetAllowedConnectors resets all changes to the "allowed_connectors" field.
|
||||
func (m *OAuth2ClientMutation) ResetAllowedConnectors() {
|
||||
m.allowed_connectors = nil
|
||||
m.appendallowed_connectors = nil
|
||||
delete(m.clearedFields, oauth2client.FieldAllowedConnectors)
|
||||
}
|
||||
|
||||
// Where appends a list predicates to the OAuth2ClientMutation builder.
|
||||
func (m *OAuth2ClientMutation) Where(ps ...predicate.OAuth2Client) {
|
||||
m.predicates = append(m.predicates, ps...)
|
||||
@@ -5643,7 +5710,7 @@ func (m *OAuth2ClientMutation) Type() string {
|
||||
// order to get all numeric fields that were incremented/decremented, call
|
||||
// AddedFields().
|
||||
func (m *OAuth2ClientMutation) Fields() []string {
|
||||
fields := make([]string, 0, 6)
|
||||
fields := make([]string, 0, 7)
|
||||
if m.secret != nil {
|
||||
fields = append(fields, oauth2client.FieldSecret)
|
||||
}
|
||||
@@ -5662,6 +5729,9 @@ func (m *OAuth2ClientMutation) Fields() []string {
|
||||
if m.logo_url != nil {
|
||||
fields = append(fields, oauth2client.FieldLogoURL)
|
||||
}
|
||||
if m.allowed_connectors != nil {
|
||||
fields = append(fields, oauth2client.FieldAllowedConnectors)
|
||||
}
|
||||
return fields
|
||||
}
|
||||
|
||||
@@ -5682,6 +5752,8 @@ func (m *OAuth2ClientMutation) Field(name string) (ent.Value, bool) {
|
||||
return m.Name()
|
||||
case oauth2client.FieldLogoURL:
|
||||
return m.LogoURL()
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
return m.AllowedConnectors()
|
||||
}
|
||||
return nil, false
|
||||
}
|
||||
@@ -5703,6 +5775,8 @@ func (m *OAuth2ClientMutation) OldField(ctx context.Context, name string) (ent.V
|
||||
return m.OldName(ctx)
|
||||
case oauth2client.FieldLogoURL:
|
||||
return m.OldLogoURL(ctx)
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
return m.OldAllowedConnectors(ctx)
|
||||
}
|
||||
return nil, fmt.Errorf("unknown OAuth2Client field %s", name)
|
||||
}
|
||||
@@ -5754,6 +5828,13 @@ func (m *OAuth2ClientMutation) SetField(name string, value ent.Value) error {
|
||||
}
|
||||
m.SetLogoURL(v)
|
||||
return nil
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
v, ok := value.([]string)
|
||||
if !ok {
|
||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||
}
|
||||
m.SetAllowedConnectors(v)
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unknown OAuth2Client field %s", name)
|
||||
}
|
||||
@@ -5790,6 +5871,9 @@ func (m *OAuth2ClientMutation) ClearedFields() []string {
|
||||
if m.FieldCleared(oauth2client.FieldTrustedPeers) {
|
||||
fields = append(fields, oauth2client.FieldTrustedPeers)
|
||||
}
|
||||
if m.FieldCleared(oauth2client.FieldAllowedConnectors) {
|
||||
fields = append(fields, oauth2client.FieldAllowedConnectors)
|
||||
}
|
||||
return fields
|
||||
}
|
||||
|
||||
@@ -5810,6 +5894,9 @@ func (m *OAuth2ClientMutation) ClearField(name string) error {
|
||||
case oauth2client.FieldTrustedPeers:
|
||||
m.ClearTrustedPeers()
|
||||
return nil
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
m.ClearAllowedConnectors()
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unknown OAuth2Client nullable field %s", name)
|
||||
}
|
||||
@@ -5836,6 +5923,9 @@ func (m *OAuth2ClientMutation) ResetField(name string) error {
|
||||
case oauth2client.FieldLogoURL:
|
||||
m.ResetLogoURL()
|
||||
return nil
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
m.ResetAllowedConnectors()
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unknown OAuth2Client field %s", name)
|
||||
}
|
||||
|
||||
@@ -28,8 +28,10 @@ type OAuth2Client struct {
|
||||
// Name holds the value of the "name" field.
|
||||
Name string `json:"name,omitempty"`
|
||||
// LogoURL holds the value of the "logo_url" field.
|
||||
LogoURL string `json:"logo_url,omitempty"`
|
||||
selectValues sql.SelectValues
|
||||
LogoURL string `json:"logo_url,omitempty"`
|
||||
// AllowedConnectors holds the value of the "allowed_connectors" field.
|
||||
AllowedConnectors []string `json:"allowed_connectors,omitempty"`
|
||||
selectValues sql.SelectValues
|
||||
}
|
||||
|
||||
// scanValues returns the types for scanning values from sql.Rows.
|
||||
@@ -37,7 +39,7 @@ func (*OAuth2Client) scanValues(columns []string) ([]any, error) {
|
||||
values := make([]any, len(columns))
|
||||
for i := range columns {
|
||||
switch columns[i] {
|
||||
case oauth2client.FieldRedirectUris, oauth2client.FieldTrustedPeers:
|
||||
case oauth2client.FieldRedirectUris, oauth2client.FieldTrustedPeers, oauth2client.FieldAllowedConnectors:
|
||||
values[i] = new([]byte)
|
||||
case oauth2client.FieldPublic:
|
||||
values[i] = new(sql.NullBool)
|
||||
@@ -104,6 +106,14 @@ func (_m *OAuth2Client) assignValues(columns []string, values []any) error {
|
||||
} else if value.Valid {
|
||||
_m.LogoURL = value.String
|
||||
}
|
||||
case oauth2client.FieldAllowedConnectors:
|
||||
if value, ok := values[i].(*[]byte); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field allowed_connectors", values[i])
|
||||
} else if value != nil && len(*value) > 0 {
|
||||
if err := json.Unmarshal(*value, &_m.AllowedConnectors); err != nil {
|
||||
return fmt.Errorf("unmarshal field allowed_connectors: %w", err)
|
||||
}
|
||||
}
|
||||
default:
|
||||
_m.selectValues.Set(columns[i], values[i])
|
||||
}
|
||||
@@ -157,6 +167,9 @@ func (_m *OAuth2Client) String() string {
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("logo_url=")
|
||||
builder.WriteString(_m.LogoURL)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("allowed_connectors=")
|
||||
builder.WriteString(fmt.Sprintf("%v", _m.AllowedConnectors))
|
||||
builder.WriteByte(')')
|
||||
return builder.String()
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ const (
|
||||
FieldName = "name"
|
||||
// FieldLogoURL holds the string denoting the logo_url field in the database.
|
||||
FieldLogoURL = "logo_url"
|
||||
// FieldAllowedConnectors holds the string denoting the allowed_connectors field in the database.
|
||||
FieldAllowedConnectors = "allowed_connectors"
|
||||
// Table holds the table name of the oauth2client in the database.
|
||||
Table = "oauth2clients"
|
||||
)
|
||||
@@ -36,6 +38,7 @@ var Columns = []string{
|
||||
FieldPublic,
|
||||
FieldName,
|
||||
FieldLogoURL,
|
||||
FieldAllowedConnectors,
|
||||
}
|
||||
|
||||
// ValidColumn reports if the column name is valid (part of the table columns).
|
||||
|
||||
@@ -307,6 +307,16 @@ func LogoURLContainsFold(v string) predicate.OAuth2Client {
|
||||
return predicate.OAuth2Client(sql.FieldContainsFold(FieldLogoURL, v))
|
||||
}
|
||||
|
||||
// AllowedConnectorsIsNil applies the IsNil predicate on the "allowed_connectors" field.
|
||||
func AllowedConnectorsIsNil() predicate.OAuth2Client {
|
||||
return predicate.OAuth2Client(sql.FieldIsNull(FieldAllowedConnectors))
|
||||
}
|
||||
|
||||
// AllowedConnectorsNotNil applies the NotNil predicate on the "allowed_connectors" field.
|
||||
func AllowedConnectorsNotNil() predicate.OAuth2Client {
|
||||
return predicate.OAuth2Client(sql.FieldNotNull(FieldAllowedConnectors))
|
||||
}
|
||||
|
||||
// And groups predicates with the AND operator between them.
|
||||
func And(predicates ...predicate.OAuth2Client) predicate.OAuth2Client {
|
||||
return predicate.OAuth2Client(sql.AndPredicates(predicates...))
|
||||
|
||||
@@ -55,6 +55,12 @@ func (_c *OAuth2ClientCreate) SetLogoURL(v string) *OAuth2ClientCreate {
|
||||
return _c
|
||||
}
|
||||
|
||||
// SetAllowedConnectors sets the "allowed_connectors" field.
|
||||
func (_c *OAuth2ClientCreate) SetAllowedConnectors(v []string) *OAuth2ClientCreate {
|
||||
_c.mutation.SetAllowedConnectors(v)
|
||||
return _c
|
||||
}
|
||||
|
||||
// SetID sets the "id" field.
|
||||
func (_c *OAuth2ClientCreate) SetID(v string) *OAuth2ClientCreate {
|
||||
_c.mutation.SetID(v)
|
||||
@@ -186,6 +192,10 @@ func (_c *OAuth2ClientCreate) createSpec() (*OAuth2Client, *sqlgraph.CreateSpec)
|
||||
_spec.SetField(oauth2client.FieldLogoURL, field.TypeString, value)
|
||||
_node.LogoURL = value
|
||||
}
|
||||
if value, ok := _c.mutation.AllowedConnectors(); ok {
|
||||
_spec.SetField(oauth2client.FieldAllowedConnectors, field.TypeJSON, value)
|
||||
_node.AllowedConnectors = value
|
||||
}
|
||||
return _node, _spec
|
||||
}
|
||||
|
||||
|
||||
@@ -120,6 +120,24 @@ func (_u *OAuth2ClientUpdate) SetNillableLogoURL(v *string) *OAuth2ClientUpdate
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetAllowedConnectors sets the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdate) SetAllowedConnectors(v []string) *OAuth2ClientUpdate {
|
||||
_u.mutation.SetAllowedConnectors(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// AppendAllowedConnectors appends value to the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdate) AppendAllowedConnectors(v []string) *OAuth2ClientUpdate {
|
||||
_u.mutation.AppendAllowedConnectors(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// ClearAllowedConnectors clears the value of the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdate) ClearAllowedConnectors() *OAuth2ClientUpdate {
|
||||
_u.mutation.ClearAllowedConnectors()
|
||||
return _u
|
||||
}
|
||||
|
||||
// Mutation returns the OAuth2ClientMutation object of the builder.
|
||||
func (_u *OAuth2ClientUpdate) Mutation() *OAuth2ClientMutation {
|
||||
return _u.mutation
|
||||
@@ -218,6 +236,17 @@ func (_u *OAuth2ClientUpdate) sqlSave(ctx context.Context) (_node int, err error
|
||||
if value, ok := _u.mutation.LogoURL(); ok {
|
||||
_spec.SetField(oauth2client.FieldLogoURL, field.TypeString, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AllowedConnectors(); ok {
|
||||
_spec.SetField(oauth2client.FieldAllowedConnectors, field.TypeJSON, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AppendedAllowedConnectors(); ok {
|
||||
_spec.AddModifier(func(u *sql.UpdateBuilder) {
|
||||
sqljson.Append(u, oauth2client.FieldAllowedConnectors, value)
|
||||
})
|
||||
}
|
||||
if _u.mutation.AllowedConnectorsCleared() {
|
||||
_spec.ClearField(oauth2client.FieldAllowedConnectors, field.TypeJSON)
|
||||
}
|
||||
if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil {
|
||||
if _, ok := err.(*sqlgraph.NotFoundError); ok {
|
||||
err = &NotFoundError{oauth2client.Label}
|
||||
@@ -330,6 +359,24 @@ func (_u *OAuth2ClientUpdateOne) SetNillableLogoURL(v *string) *OAuth2ClientUpda
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetAllowedConnectors sets the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdateOne) SetAllowedConnectors(v []string) *OAuth2ClientUpdateOne {
|
||||
_u.mutation.SetAllowedConnectors(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// AppendAllowedConnectors appends value to the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdateOne) AppendAllowedConnectors(v []string) *OAuth2ClientUpdateOne {
|
||||
_u.mutation.AppendAllowedConnectors(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// ClearAllowedConnectors clears the value of the "allowed_connectors" field.
|
||||
func (_u *OAuth2ClientUpdateOne) ClearAllowedConnectors() *OAuth2ClientUpdateOne {
|
||||
_u.mutation.ClearAllowedConnectors()
|
||||
return _u
|
||||
}
|
||||
|
||||
// Mutation returns the OAuth2ClientMutation object of the builder.
|
||||
func (_u *OAuth2ClientUpdateOne) Mutation() *OAuth2ClientMutation {
|
||||
return _u.mutation
|
||||
@@ -458,6 +505,17 @@ func (_u *OAuth2ClientUpdateOne) sqlSave(ctx context.Context) (_node *OAuth2Clie
|
||||
if value, ok := _u.mutation.LogoURL(); ok {
|
||||
_spec.SetField(oauth2client.FieldLogoURL, field.TypeString, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AllowedConnectors(); ok {
|
||||
_spec.SetField(oauth2client.FieldAllowedConnectors, field.TypeJSON, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AppendedAllowedConnectors(); ok {
|
||||
_spec.AddModifier(func(u *sql.UpdateBuilder) {
|
||||
sqljson.Append(u, oauth2client.FieldAllowedConnectors, value)
|
||||
})
|
||||
}
|
||||
if _u.mutation.AllowedConnectorsCleared() {
|
||||
_spec.ClearField(oauth2client.FieldAllowedConnectors, field.TypeJSON)
|
||||
}
|
||||
_node = &OAuth2Client{config: _u.config}
|
||||
_spec.Assign = _node.assignValues
|
||||
_spec.ScanValues = _node.scanValues
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user