diff --git a/admin/admin/admin.pb.go b/admin/admin/admin.pb.go index 061fe5f..672addb 100644 --- a/admin/admin/admin.pb.go +++ b/admin/admin/admin.pb.go @@ -590,6 +590,50 @@ func (x *InfoRequest) GetId() int64 { return 0 } +type RoutesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceId int64 `protobuf:"varint,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RoutesRequest) Reset() { + *x = RoutesRequest{} + mi := &file_proto_admin_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutesRequest) ProtoMessage() {} + +func (x *RoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_admin_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoutesRequest.ProtoReflect.Descriptor instead. +func (*RoutesRequest) Descriptor() ([]byte, []int) { + return file_proto_admin_proto_rawDescGZIP(), []int{10} +} + +func (x *RoutesRequest) GetServiceId() int64 { + if x != nil { + return x.ServiceId + } + return 0 +} + type ServiceEditRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` @@ -601,7 +645,7 @@ type ServiceEditRequest struct { func (x *ServiceEditRequest) Reset() { *x = ServiceEditRequest{} - mi := &file_proto_admin_proto_msgTypes[10] + mi := &file_proto_admin_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -613,7 +657,7 @@ func (x *ServiceEditRequest) String() string { func (*ServiceEditRequest) ProtoMessage() {} func (x *ServiceEditRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[10] + mi := &file_proto_admin_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -626,7 +670,7 @@ func (x *ServiceEditRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceEditRequest.ProtoReflect.Descriptor instead. func (*ServiceEditRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{10} + return file_proto_admin_proto_rawDescGZIP(), []int{11} } func (x *ServiceEditRequest) GetId() int64 { @@ -660,7 +704,7 @@ type ServiceItemsRequest struct { func (x *ServiceItemsRequest) Reset() { *x = ServiceItemsRequest{} - mi := &file_proto_admin_proto_msgTypes[11] + mi := &file_proto_admin_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -672,7 +716,7 @@ func (x *ServiceItemsRequest) String() string { func (*ServiceItemsRequest) ProtoMessage() {} func (x *ServiceItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[11] + mi := &file_proto_admin_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -685,7 +729,7 @@ func (x *ServiceItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceItemsRequest.ProtoReflect.Descriptor instead. func (*ServiceItemsRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{11} + return file_proto_admin_proto_rawDescGZIP(), []int{12} } func (x *ServiceItemsRequest) GetName() string { @@ -711,7 +755,7 @@ type ServiceNameRequest struct { func (x *ServiceNameRequest) Reset() { *x = ServiceNameRequest{} - mi := &file_proto_admin_proto_msgTypes[12] + mi := &file_proto_admin_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -723,7 +767,7 @@ func (x *ServiceNameRequest) String() string { func (*ServiceNameRequest) ProtoMessage() {} func (x *ServiceNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[12] + mi := &file_proto_admin_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -736,7 +780,7 @@ func (x *ServiceNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceNameRequest.ProtoReflect.Descriptor instead. func (*ServiceNameRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{12} + return file_proto_admin_proto_rawDescGZIP(), []int{13} } func (x *ServiceNameRequest) GetName() string { @@ -756,7 +800,7 @@ type AuthoritySortRequest struct { func (x *AuthoritySortRequest) Reset() { *x = AuthoritySortRequest{} - mi := &file_proto_admin_proto_msgTypes[13] + mi := &file_proto_admin_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -768,7 +812,7 @@ func (x *AuthoritySortRequest) String() string { func (*AuthoritySortRequest) ProtoMessage() {} func (x *AuthoritySortRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[13] + mi := &file_proto_admin_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -781,7 +825,7 @@ func (x *AuthoritySortRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthoritySortRequest.ProtoReflect.Descriptor instead. func (*AuthoritySortRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{13} + return file_proto_admin_proto_rawDescGZIP(), []int{14} } func (x *AuthoritySortRequest) GetId() int64 { @@ -808,7 +852,7 @@ type AuthorityNameRequest struct { func (x *AuthorityNameRequest) Reset() { *x = AuthorityNameRequest{} - mi := &file_proto_admin_proto_msgTypes[14] + mi := &file_proto_admin_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -820,7 +864,7 @@ func (x *AuthorityNameRequest) String() string { func (*AuthorityNameRequest) ProtoMessage() {} func (x *AuthorityNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[14] + mi := &file_proto_admin_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -833,7 +877,7 @@ func (x *AuthorityNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorityNameRequest.ProtoReflect.Descriptor instead. func (*AuthorityNameRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{14} + return file_proto_admin_proto_rawDescGZIP(), []int{15} } func (x *AuthorityNameRequest) GetServiceId() int64 { @@ -859,7 +903,7 @@ type AuthorityItemsRequest struct { func (x *AuthorityItemsRequest) Reset() { *x = AuthorityItemsRequest{} - mi := &file_proto_admin_proto_msgTypes[15] + mi := &file_proto_admin_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -871,7 +915,7 @@ func (x *AuthorityItemsRequest) String() string { func (*AuthorityItemsRequest) ProtoMessage() {} func (x *AuthorityItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[15] + mi := &file_proto_admin_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -884,7 +928,7 @@ func (x *AuthorityItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorityItemsRequest.ProtoReflect.Descriptor instead. func (*AuthorityItemsRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{15} + return file_proto_admin_proto_rawDescGZIP(), []int{16} } func (x *AuthorityItemsRequest) GetServiceId() int64 { @@ -921,7 +965,7 @@ type AuthorityEditRequest struct { func (x *AuthorityEditRequest) Reset() { *x = AuthorityEditRequest{} - mi := &file_proto_admin_proto_msgTypes[16] + mi := &file_proto_admin_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -933,7 +977,7 @@ func (x *AuthorityEditRequest) String() string { func (*AuthorityEditRequest) ProtoMessage() {} func (x *AuthorityEditRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[16] + mi := &file_proto_admin_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -946,7 +990,7 @@ func (x *AuthorityEditRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorityEditRequest.ProtoReflect.Descriptor instead. func (*AuthorityEditRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{16} + return file_proto_admin_proto_rawDescGZIP(), []int{17} } func (x *AuthorityEditRequest) GetId() int64 { @@ -1092,7 +1136,7 @@ type RoleRuleRequest struct { func (x *RoleRuleRequest) Reset() { *x = RoleRuleRequest{} - mi := &file_proto_admin_proto_msgTypes[17] + mi := &file_proto_admin_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1104,7 +1148,7 @@ func (x *RoleRuleRequest) String() string { func (*RoleRuleRequest) ProtoMessage() {} func (x *RoleRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[17] + mi := &file_proto_admin_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1117,7 +1161,7 @@ func (x *RoleRuleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleRuleRequest.ProtoReflect.Descriptor instead. func (*RoleRuleRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{17} + return file_proto_admin_proto_rawDescGZIP(), []int{18} } func (x *RoleRuleRequest) GetId() int64 { @@ -1144,7 +1188,7 @@ type RoleNameRequest struct { func (x *RoleNameRequest) Reset() { *x = RoleNameRequest{} - mi := &file_proto_admin_proto_msgTypes[18] + mi := &file_proto_admin_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1156,7 +1200,7 @@ func (x *RoleNameRequest) String() string { func (*RoleNameRequest) ProtoMessage() {} func (x *RoleNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[18] + mi := &file_proto_admin_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1169,7 +1213,7 @@ func (x *RoleNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleNameRequest.ProtoReflect.Descriptor instead. func (*RoleNameRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{18} + return file_proto_admin_proto_rawDescGZIP(), []int{19} } func (x *RoleNameRequest) GetName() string { @@ -1198,7 +1242,7 @@ type RoleEditRequest struct { func (x *RoleEditRequest) Reset() { *x = RoleEditRequest{} - mi := &file_proto_admin_proto_msgTypes[19] + mi := &file_proto_admin_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1210,7 +1254,7 @@ func (x *RoleEditRequest) String() string { func (*RoleEditRequest) ProtoMessage() {} func (x *RoleEditRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[19] + mi := &file_proto_admin_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1223,7 +1267,7 @@ func (x *RoleEditRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleEditRequest.ProtoReflect.Descriptor instead. func (*RoleEditRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{19} + return file_proto_admin_proto_rawDescGZIP(), []int{20} } func (x *RoleEditRequest) GetId() int64 { @@ -1267,7 +1311,7 @@ type RoleItemsRequest struct { func (x *RoleItemsRequest) Reset() { *x = RoleItemsRequest{} - mi := &file_proto_admin_proto_msgTypes[20] + mi := &file_proto_admin_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1323,7 @@ func (x *RoleItemsRequest) String() string { func (*RoleItemsRequest) ProtoMessage() {} func (x *RoleItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_admin_proto_msgTypes[20] + mi := &file_proto_admin_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1336,7 @@ func (x *RoleItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleItemsRequest.ProtoReflect.Descriptor instead. func (*RoleItemsRequest) Descriptor() ([]byte, []int) { - return file_proto_admin_proto_rawDescGZIP(), []int{20} + return file_proto_admin_proto_rawDescGZIP(), []int{21} } func (x *RoleItemsRequest) GetPage() int32 { @@ -1370,7 +1414,10 @@ const file_proto_admin_proto_rawDesc = "" + "\bpassword\x18\x02 \x01(\tR\bpassword\"\x13\n" + "\x11AdminEmptyRequest\"\x1d\n" + "\vInfoRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x03R\x02id\"Z\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\".\n" + + "\rRoutesRequest\x12\x1d\n" + + "\n" + + "service_id\x18\x01 \x01(\x03R\tserviceId\"Z\n" + "\x12ServiceEditRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12 \n" + @@ -1431,7 +1478,7 @@ const file_proto_admin_proto_rawDesc = "" + "\n" + "service_id\x18\x03 \x01(\x03R\tserviceId\x12\x12\n" + "\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n" + - "\x06status\x18\x05 \x01(\x05R\x06status2\xa6\x13\n" + + "\x06status\x18\x05 \x01(\x05R\x06status2\xa2\x13\n" + "\x05Admin\x12V\n" + "\tAdminEdit\x12\x17.admin.AdminEditRequest\x1a\x0f.admin.Response\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/admin/v3/admin/edit\x12W\n" + "\vAdminStatus\x12\x14.admin.StatusRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/admin/status\x12X\n" + @@ -1443,8 +1490,8 @@ const file_proto_admin_proto_rawDesc = "" + "\n" + "AdminLogin\x12\x18.admin.AdminLoginRequest\x1a\x0f.admin.Response\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/admin/v3/login\x12W\n" + "\fAdminRefresh\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/admin/v3/refresh\x12Q\n" + - "\tLoginInfo\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/admin/v3/info\x12U\n" + - "\vLoginRoutes\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/admin/v3/routes\x12U\n" + + "\tLoginInfo\x12\x18.admin.AdminEmptyRequest\x1a\x0f.admin.Response\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/admin/v3/info\x12Q\n" + + "\vLoginRoutes\x12\x14.admin.RoutesRequest\x1a\x0f.admin.Response\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\x12\x10/admin/v3/routes\x12U\n" + "\vServiceInfo\x12\x12.admin.InfoRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\x12\x16/admin/v3/service/info\x12\\\n" + "\vServiceEdit\x12\x19.admin.ServiceEditRequest\x1a\x0f.admin.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/admin/v3/service/edit\x12_\n" + "\fServiceItems\x12\x1a.admin.ServiceItemsRequest\x1a\x0f.admin.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/service/items\x12[\n" + @@ -1476,7 +1523,7 @@ func file_proto_admin_proto_rawDescGZIP() []byte { return file_proto_admin_proto_rawDescData } -var file_proto_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_proto_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_proto_admin_proto_goTypes = []any{ (*AdminEditRequest)(nil), // 0: admin.AdminEditRequest (*StatusRequest)(nil), // 1: admin.StatusRequest @@ -1488,17 +1535,18 @@ var file_proto_admin_proto_goTypes = []any{ (*AdminLoginRequest)(nil), // 7: admin.AdminLoginRequest (*AdminEmptyRequest)(nil), // 8: admin.AdminEmptyRequest (*InfoRequest)(nil), // 9: admin.InfoRequest - (*ServiceEditRequest)(nil), // 10: admin.ServiceEditRequest - (*ServiceItemsRequest)(nil), // 11: admin.ServiceItemsRequest - (*ServiceNameRequest)(nil), // 12: admin.ServiceNameRequest - (*AuthoritySortRequest)(nil), // 13: admin.AuthoritySortRequest - (*AuthorityNameRequest)(nil), // 14: admin.AuthorityNameRequest - (*AuthorityItemsRequest)(nil), // 15: admin.AuthorityItemsRequest - (*AuthorityEditRequest)(nil), // 16: admin.AuthorityEditRequest - (*RoleRuleRequest)(nil), // 17: admin.RoleRuleRequest - (*RoleNameRequest)(nil), // 18: admin.RoleNameRequest - (*RoleEditRequest)(nil), // 19: admin.RoleEditRequest - (*RoleItemsRequest)(nil), // 20: admin.RoleItemsRequest + (*RoutesRequest)(nil), // 10: admin.RoutesRequest + (*ServiceEditRequest)(nil), // 11: admin.ServiceEditRequest + (*ServiceItemsRequest)(nil), // 12: admin.ServiceItemsRequest + (*ServiceNameRequest)(nil), // 13: admin.ServiceNameRequest + (*AuthoritySortRequest)(nil), // 14: admin.AuthoritySortRequest + (*AuthorityNameRequest)(nil), // 15: admin.AuthorityNameRequest + (*AuthorityItemsRequest)(nil), // 16: admin.AuthorityItemsRequest + (*AuthorityEditRequest)(nil), // 17: admin.AuthorityEditRequest + (*RoleRuleRequest)(nil), // 18: admin.RoleRuleRequest + (*RoleNameRequest)(nil), // 19: admin.RoleNameRequest + (*RoleEditRequest)(nil), // 20: admin.RoleEditRequest + (*RoleItemsRequest)(nil), // 21: admin.RoleItemsRequest } var file_proto_admin_proto_depIdxs = []int32{ 0, // 0: admin.Admin.AdminEdit:input_type -> admin.AdminEditRequest @@ -1510,24 +1558,24 @@ var file_proto_admin_proto_depIdxs = []int32{ 7, // 6: admin.Admin.AdminLogin:input_type -> admin.AdminLoginRequest 8, // 7: admin.Admin.AdminRefresh:input_type -> admin.AdminEmptyRequest 8, // 8: admin.Admin.LoginInfo:input_type -> admin.AdminEmptyRequest - 8, // 9: admin.Admin.LoginRoutes:input_type -> admin.AdminEmptyRequest + 10, // 9: admin.Admin.LoginRoutes:input_type -> admin.RoutesRequest 9, // 10: admin.Admin.ServiceInfo:input_type -> admin.InfoRequest - 10, // 11: admin.Admin.ServiceEdit:input_type -> admin.ServiceEditRequest - 11, // 12: admin.Admin.ServiceItems:input_type -> admin.ServiceItemsRequest + 11, // 11: admin.Admin.ServiceEdit:input_type -> admin.ServiceEditRequest + 12, // 12: admin.Admin.ServiceItems:input_type -> admin.ServiceItemsRequest 1, // 13: admin.Admin.ServiceStatus:input_type -> admin.StatusRequest - 12, // 14: admin.Admin.ServiceNames:input_type -> admin.ServiceNameRequest + 13, // 14: admin.Admin.ServiceNames:input_type -> admin.ServiceNameRequest 9, // 15: admin.Admin.AuthorityInfo:input_type -> admin.InfoRequest - 16, // 16: admin.Admin.AuthorityEdit:input_type -> admin.AuthorityEditRequest - 15, // 17: admin.Admin.AuthorityItems:input_type -> admin.AuthorityItemsRequest + 17, // 16: admin.Admin.AuthorityEdit:input_type -> admin.AuthorityEditRequest + 16, // 17: admin.Admin.AuthorityItems:input_type -> admin.AuthorityItemsRequest 1, // 18: admin.Admin.AuthorityStatus:input_type -> admin.StatusRequest - 14, // 19: admin.Admin.AuthorityNames:input_type -> admin.AuthorityNameRequest - 13, // 20: admin.Admin.AuthoritySort:input_type -> admin.AuthoritySortRequest - 18, // 21: admin.Admin.RoleNames:input_type -> admin.RoleNameRequest + 15, // 19: admin.Admin.AuthorityNames:input_type -> admin.AuthorityNameRequest + 14, // 20: admin.Admin.AuthoritySort:input_type -> admin.AuthoritySortRequest + 19, // 21: admin.Admin.RoleNames:input_type -> admin.RoleNameRequest 9, // 22: admin.Admin.RoleInfo:input_type -> admin.InfoRequest - 19, // 23: admin.Admin.RoleEdit:input_type -> admin.RoleEditRequest - 20, // 24: admin.Admin.RoleItems:input_type -> admin.RoleItemsRequest + 20, // 23: admin.Admin.RoleEdit:input_type -> admin.RoleEditRequest + 21, // 24: admin.Admin.RoleItems:input_type -> admin.RoleItemsRequest 1, // 25: admin.Admin.RoleStatus:input_type -> admin.StatusRequest - 17, // 26: admin.Admin.RoleRule:input_type -> admin.RoleRuleRequest + 18, // 26: admin.Admin.RoleRule:input_type -> admin.RoleRuleRequest 2, // 27: admin.Admin.AdminEdit:output_type -> admin.Response 2, // 28: admin.Admin.AdminStatus:output_type -> admin.Response 2, // 29: admin.Admin.Password:output_type -> admin.Response @@ -1573,7 +1621,7 @@ func file_proto_admin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_admin_proto_rawDesc), len(file_proto_admin_proto_rawDesc)), NumEnums: 0, - NumMessages: 21, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/admin/admin/admin_grpc.pb.go b/admin/admin/admin_grpc.pb.go index 7cbe987..d931996 100644 --- a/admin/admin/admin_grpc.pb.go +++ b/admin/admin/admin_grpc.pb.go @@ -61,7 +61,7 @@ type AdminClient interface { AdminLogin(ctx context.Context, in *AdminLoginRequest, opts ...grpc.CallOption) (*Response, error) AdminRefresh(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) LoginInfo(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) - LoginRoutes(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) + LoginRoutes(ctx context.Context, in *RoutesRequest, opts ...grpc.CallOption) (*Response, error) ServiceInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) ServiceEdit(ctx context.Context, in *ServiceEditRequest, opts ...grpc.CallOption) (*Response, error) ServiceItems(ctx context.Context, in *ServiceItemsRequest, opts ...grpc.CallOption) (*Response, error) @@ -179,7 +179,7 @@ func (c *adminClient) LoginInfo(ctx context.Context, in *AdminEmptyRequest, opts return out, nil } -func (c *adminClient) LoginRoutes(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) { +func (c *adminClient) LoginRoutes(ctx context.Context, in *RoutesRequest, opts ...grpc.CallOption) (*Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Response) err := c.cc.Invoke(ctx, Admin_LoginRoutes_FullMethodName, in, out, cOpts...) @@ -372,7 +372,7 @@ type AdminServer interface { AdminLogin(context.Context, *AdminLoginRequest) (*Response, error) AdminRefresh(context.Context, *AdminEmptyRequest) (*Response, error) LoginInfo(context.Context, *AdminEmptyRequest) (*Response, error) - LoginRoutes(context.Context, *AdminEmptyRequest) (*Response, error) + LoginRoutes(context.Context, *RoutesRequest) (*Response, error) ServiceInfo(context.Context, *InfoRequest) (*Response, error) ServiceEdit(context.Context, *ServiceEditRequest) (*Response, error) ServiceItems(context.Context, *ServiceItemsRequest) (*Response, error) @@ -427,7 +427,7 @@ func (UnimplementedAdminServer) AdminRefresh(context.Context, *AdminEmptyRequest func (UnimplementedAdminServer) LoginInfo(context.Context, *AdminEmptyRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method LoginInfo not implemented") } -func (UnimplementedAdminServer) LoginRoutes(context.Context, *AdminEmptyRequest) (*Response, error) { +func (UnimplementedAdminServer) LoginRoutes(context.Context, *RoutesRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method LoginRoutes not implemented") } func (UnimplementedAdminServer) ServiceInfo(context.Context, *InfoRequest) (*Response, error) { @@ -665,7 +665,7 @@ func _Admin_LoginInfo_Handler(srv interface{}, ctx context.Context, dec func(int } func _Admin_LoginRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AdminEmptyRequest) + in := new(RoutesRequest) if err := dec(in); err != nil { return nil, err } @@ -677,7 +677,7 @@ func _Admin_LoginRoutes_Handler(srv interface{}, ctx context.Context, dec func(i FullMethod: Admin_LoginRoutes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AdminServer).LoginRoutes(ctx, req.(*AdminEmptyRequest)) + return srv.(AdminServer).LoginRoutes(ctx, req.(*RoutesRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/admin/adminclient/admin.go b/admin/adminclient/admin.go index 0999f42..e63bbda 100644 --- a/admin/adminclient/admin.go +++ b/admin/adminclient/admin.go @@ -31,6 +31,7 @@ type ( RoleItemsRequest = admin.RoleItemsRequest RoleNameRequest = admin.RoleNameRequest RoleRuleRequest = admin.RoleRuleRequest + RoutesRequest = admin.RoutesRequest ServiceEditRequest = admin.ServiceEditRequest ServiceItemsRequest = admin.ServiceItemsRequest ServiceNameRequest = admin.ServiceNameRequest @@ -46,7 +47,7 @@ type ( AdminLogin(ctx context.Context, in *AdminLoginRequest, opts ...grpc.CallOption) (*Response, error) AdminRefresh(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) LoginInfo(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) - LoginRoutes(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) + LoginRoutes(ctx context.Context, in *RoutesRequest, opts ...grpc.CallOption) (*Response, error) ServiceInfo(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*Response, error) ServiceEdit(ctx context.Context, in *ServiceEditRequest, opts ...grpc.CallOption) (*Response, error) ServiceItems(ctx context.Context, in *ServiceItemsRequest, opts ...grpc.CallOption) (*Response, error) @@ -122,7 +123,7 @@ func (m *defaultAdmin) LoginInfo(ctx context.Context, in *AdminEmptyRequest, opt return client.LoginInfo(ctx, in, opts...) } -func (m *defaultAdmin) LoginRoutes(ctx context.Context, in *AdminEmptyRequest, opts ...grpc.CallOption) (*Response, error) { +func (m *defaultAdmin) LoginRoutes(ctx context.Context, in *RoutesRequest, opts ...grpc.CallOption) (*Response, error) { client := admin.NewAdminClient(m.cli.Conn()) return client.LoginRoutes(ctx, in, opts...) } diff --git a/admin/internal/dao/routes.go b/admin/internal/dao/routes.go index 8f894ff..9a02e0e 100644 --- a/admin/internal/dao/routes.go +++ b/admin/internal/dao/routes.go @@ -1,9 +1,9 @@ package dao type RoutesMenu struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - ParentId int `json:"parent_id"` + ParentId int64 `json:"parent_id"` Level uint8 `json:"level"` Type uint8 `json:"type"` Path string `json:"path"` @@ -13,12 +13,12 @@ type RoutesMenu struct { Icon string `json:"icon"` Sort uint8 `json:"sort"` IsShow uint8 `json:"is_show"` - Remarks string `json:"remarks"` + Description string `json:"description"` Children []RoutesMenu `json:"children"` } type RoutesAuth struct { - Id int `json:"id"` + Id int64 `json:"id"` Type uint8 `json:"type"` Identification string `json:"identification"` } diff --git a/admin/internal/logic/adminloginlogic.go b/admin/internal/logic/adminloginlogic.go index c61a8fe..c3b5bd3 100644 --- a/admin/internal/logic/adminloginlogic.go +++ b/admin/internal/logic/adminloginlogic.go @@ -67,10 +67,12 @@ func (l *AdminLoginLogic) AdminLogin(in *admin.AdminLoginRequest) (*admin.Respon Id: info.Id, Name: info.Name, Email: info.Email, - Phone: info.Phone, Avatar: info.Avatar, LastTime: utils.Now(), } + + data.Phone, _ = utils.DecryptPhone(info.Phone) + retData := dao.Token{ Token: utils.MD5Encrypt(data.Phone + utils.Now().String()), Info: data, diff --git a/admin/internal/logic/loginrouteslogic.go b/admin/internal/logic/loginrouteslogic.go index f8270a6..bc3a005 100644 --- a/admin/internal/logic/loginrouteslogic.go +++ b/admin/internal/logic/loginrouteslogic.go @@ -1,18 +1,25 @@ package logic import ( - "context" - "admin/admin" + "admin/internal/dao" + "admin/internal/model" "admin/internal/svc" + "admin/validator" + "context" + "strconv" + "strings" "github.com/zeromicro/go-zero/core/logx" + "pkg.local/modelbase" + "pkg.local/utils" ) type LoginRoutesLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger + BaseLogic } func NewLoginRoutesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *LoginRoutesLogic { @@ -23,8 +30,159 @@ func NewLoginRoutesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Login } } -func (l *LoginRoutesLogic) LoginRoutes(in *admin.AdminEmptyRequest) (*admin.Response, error) { - // todo: add your logic here and delete this line +func (l *LoginRoutesLogic) LoginRoutes(in *admin.RoutesRequest) (*admin.Response, error) { + var v validator.LoginRoutesValidator + l.Logger.Errorf("LoginRoutes in: %v", in.ServiceId) + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo), nil + } - return &admin.Response{}, nil + var items = dao.Routes{} + var rules []string + var rErr utils.Status + rules, rErr = l.getIds(adminInfo.ID, in.ServiceId) + if rErr != utils.Ok { + return l.fail(rErr), nil + } + if len(rules) == utils.NumberZero { + return l.ok(items), nil + } + + items, rErr = l.userAuthority(rules, in.ServiceId) + if rErr != utils.Ok { + return l.fail(rErr), nil + } + + return l.ok(items), nil +} + +func (l *LoginRoutesLogic) getIds(adminId, serviceId int64) ([]string, utils.Status) { + ids, uErr := l.userRoles(adminId) + if uErr != utils.Ok { + return nil, uErr + } + + if len(ids) < utils.NumberOne { + return nil, uErr + } + + rules, rErr := l.userRules(ids, serviceId) + if rErr != utils.Ok { + return nil, rErr + } + + if len(rules) < utils.NumberOne { + return nil, rErr + } + + return rules, utils.Ok +} + +func (l *LoginRoutesLogic) userRules(idsString string, serviceId int64) ([]string, utils.Status) { + idsArray := strings.Split(idsString, utils.DecollatorComma) + var rules []string + w := modelbase.Params{ + Eq: map[string]string{"status": utils.StringStatusOk, "service_id": strconv.FormatInt(serviceId, utils.NumberTen)}, + In: map[string][]string{"id in ?": idsArray}, + } + var info []dao.RoleRulesItems + err := model.RoleModel{}.Init().Items(w, &info) + if err != nil { + return nil, utils.Fail + } + if len(info) < utils.NumberOne { + return rules, utils.Ok + } + + for _, role := range info { + if len(role.Rules) > utils.NumberZero { + tmp := strings.Split(role.Rules, utils.DecollatorComma) + rules = append(rules, tmp...) + } + } + var ruleArray []string + keys := make(map[string]bool) + for _, rule := range rules { + if _, value := keys[rule]; !value { + keys[rule] = true + ruleArray = append(ruleArray, rule) + } + } + + return ruleArray, utils.Ok +} + +func (l *LoginRoutesLogic) userAuthority(idsArray []string, serviceId int64) (dao.Routes, utils.Status) { + var items = dao.Routes{} + w := modelbase.Params{ + Eq: map[string]string{"status": utils.StringStatusOk, "service_id": strconv.FormatInt(serviceId, utils.NumberTen)}, + In: map[string][]string{"id in ?": idsArray}, + } + w.Order = "level ASC, parent_id ASC, sort ASC" + var info []dao.Authority + err := model.AuthorityModel{}.Init().Items(w, &info) + if err != nil { + return items, utils.Fail + } + + items.Menu = l.getList(info, utils.NumberZero) + for _, item := range info { + items.Auth = append(items.Auth, dao.RoutesAuth{ + Id: item.Id, + Type: item.Type, + Identification: item.Identification, + }) + } + + return items, utils.Ok + +} + +func (l *LoginRoutesLogic) getList(data []dao.Authority, pid int64) []dao.RoutesMenu { + var dataArr []dao.RoutesMenu + for _, v := range data { + if v.ParentId == pid { + if v.Type == dao.TypeDir || v.Type == dao.TypeWeb || v.Type == dao.TypeUrl { + // 这里可以理解为每次都从最原始的数据里面找出相对就的ID进行匹配,直到找不到就返回 + children := l.getList(data, v.Id) + node := dao.RoutesMenu{ + Id: v.Id, + Name: v.Name, + Sort: v.Sort, + ParentId: v.ParentId, + Description: v.Description, + Level: v.Level, + Children: children, + Api: v.Api, + Path: v.Path, + ViewPath: v.ViewPath, + Identification: v.Identification, + Type: v.Type, + IsShow: v.IsShow, + Icon: v.Icon, + } + dataArr = append(dataArr, node) + } + } + } + return dataArr +} + +func (l *LoginRoutesLogic) userRoles(adminId int64) (string, utils.Status) { + w := modelbase.Params{Or: []map[string]string{{"id": strconv.FormatInt(adminId, utils.NumberTen)}}} + var info dao.AdminInfo + err := model.AdminModel{}.Init().GetOne(w, &info) + if err != nil { + l.Logger.Error(err) + return utils.StringEmpty, utils.Fail + } + if info.Id < utils.NumberOne { + return utils.StringEmpty, utils.ErrorNotFund + } + + return info.Roles, utils.Ok } diff --git a/admin/internal/logic/roleinfologic.go b/admin/internal/logic/roleinfologic.go index d6ab493..b1156ba 100644 --- a/admin/internal/logic/roleinfologic.go +++ b/admin/internal/logic/roleinfologic.go @@ -33,7 +33,6 @@ func NewRoleInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RoleInfo func (l *RoleInfoLogic) RoleInfo(in *admin.InfoRequest) (*admin.Response, error) { var v validator.RoleInfoValidator - l.Logger.Error(in.Id) if fail := l.checkParams(in, &v); fail != nil { return fail, nil } diff --git a/admin/internal/server/adminserver.go b/admin/internal/server/adminserver.go index a587a0e..6bf487b 100644 --- a/admin/internal/server/adminserver.go +++ b/admin/internal/server/adminserver.go @@ -68,7 +68,7 @@ func (s *AdminServer) LoginInfo(ctx context.Context, in *admin.AdminEmptyRequest return l.LoginInfo(in) } -func (s *AdminServer) LoginRoutes(ctx context.Context, in *admin.AdminEmptyRequest) (*admin.Response, error) { +func (s *AdminServer) LoginRoutes(ctx context.Context, in *admin.RoutesRequest) (*admin.Response, error) { l := logic.NewLoginRoutesLogic(ctx, s.svcCtx) return l.LoginRoutes(in) } diff --git a/admin/proto/admin.proto b/admin/proto/admin.proto index e23cb3d..0cb0975 100644 --- a/admin/proto/admin.proto +++ b/admin/proto/admin.proto @@ -25,7 +25,7 @@ message StatusRequest { message Response { int32 code = 1; string msg = 2; - string data = 3; + string data = 3; } message PasswordRequest { @@ -91,6 +91,10 @@ message AuthorityItemsRequest { int64 service_id = 1; } +message RoutesRequest { + int64 service_id = 1; +} + message AuthorityEditRequest { int64 id = 1; string name = 2; @@ -192,9 +196,9 @@ service Admin { body: "*" }; }; - rpc LoginRoutes(AdminEmptyRequest) returns(Response){ + rpc LoginRoutes(RoutesRequest) returns(Response){ option (google.api.http) = { - post: "/admin/v3/routes" + get: "/admin/v3/routes" body: "*" }; }; diff --git a/admin/validator/admin.go b/admin/validator/admin.go index afc8bd5..746bd42 100644 --- a/admin/validator/admin.go +++ b/admin/validator/admin.go @@ -111,7 +111,7 @@ func (p LoginValidator) GetMessage() validate.ValidatorMessages { } type LoginRoutesValidator struct { - ServiceId int `validate:"required"` + ServiceId int64 `validate:"required"` } // GetMessage 提示消息 diff --git a/bff/.gitignore b/bff/.gitignore index 3355522..badc4de 100644 --- a/bff/.gitignore +++ b/bff/.gitignore @@ -1 +1,2 @@ -etc/bff.yaml \ No newline at end of file +etc/bff.yaml +run.toml \ No newline at end of file diff --git a/bff/bff.go b/bff/bff.go index d542d8f..05bc741 100644 --- a/bff/bff.go +++ b/bff/bff.go @@ -10,6 +10,7 @@ import ( "bff/internal/response" "pkg.local/discovery" + "pkg.local/utils" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/gateway" @@ -23,8 +24,14 @@ func main() { var c config.Config conf.MustLoad(*configFile, &c) - response.Init(c.Response.IsDebug, c.Response.EncryptKey) - + // Nacos配置拉取初始化 + nacosParam := utils.NacosConfig{ + Hosts: c.Nacos.Hosts, + NamespaceId: c.Nacos.NamespaceId, + Group: c.Nacos.Group, + ConfigID: c.Nacos.ConfigID, + } + utils.InitConfig(nacosParam) if err := discovery.Init(discovery.Config{ Hosts: c.Nacos.Hosts, NamespaceId: c.Nacos.NamespaceId, diff --git a/bff/etc/admin.pb b/bff/etc/admin.pb index 72b9ffb..0db6b46 100644 Binary files a/bff/etc/admin.pb and b/bff/etc/admin.pb differ diff --git a/bff/go.mod b/bff/go.mod index eafc3bc..dab1af4 100644 --- a/bff/go.mod +++ b/bff/go.mod @@ -12,8 +12,12 @@ replace pkg.local => ../pkg require ( github.com/beorn7/perks v1.0.1 // indirect + github.com/bytedance/gopkg v0.1.3 // indirect + github.com/bytedance/sonic v1.15.0 // indirect + github.com/bytedance/sonic/loader v0.5.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 // indirect github.com/coreos/go-semver v0.3.1 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect @@ -22,14 +26,24 @@ require ( github.com/envoyproxy/go-control-plane/envoy v1.36.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.3.0 // indirect github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.10.1 // indirect github.com/fullstorydev/grpcurl v1.9.3 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.13 // indirect + github.com/gin-contrib/sse v1.1.0 // indirect + github.com/gin-gonic/gin v1.12.0 // indirect github.com/go-jose/go-jose/v4 v4.1.3 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.30.3 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/goccy/go-json v0.10.5 // indirect + github.com/goccy/go-yaml v1.19.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -41,9 +55,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect github.com/jhump/protoreflect v1.18.0 // indirect github.com/jhump/protoreflect/v2 v2.0.0-beta.1 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.18.6 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -60,14 +78,32 @@ require ( github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.66.1 // indirect github.com/prometheus/procfs v0.16.1 // indirect + github.com/quic-go/qpack v0.6.0 // indirect + github.com/quic-go/quic-go v0.59.0 // indirect github.com/redis/go-redis/v9 v9.21.0 // indirect + github.com/richardlehane/mscfb v1.0.7 // indirect + github.com/richardlehane/msoleps v1.0.6 // indirect + github.com/sagikazarmark/locafero v0.11.0 // indirect + github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect + github.com/spf13/afero v1.15.0 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/spf13/viper v1.21.0 // indirect github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/tiendc/go-deepcopy v1.7.2 // indirect github.com/titanous/json5 v1.0.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.3.1 // indirect github.com/x448/float16 v0.8.4 // indirect + github.com/xuri/efp v0.0.1 // indirect + github.com/xuri/excelize/v2 v2.11.0 // indirect + github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 // indirect go.etcd.io/etcd/api/v3 v3.5.21 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.21 // indirect go.etcd.io/etcd/client/v3 v3.5.21 // indirect + go.mongodb.org/mongo-driver/v2 v2.8.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/otel v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect @@ -86,6 +122,8 @@ require ( go.uber.org/zap v1.24.0 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/arch v0.22.0 // indirect + golang.org/x/crypto v0.53.0 // indirect golang.org/x/net v0.56.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sync v0.21.0 // indirect @@ -98,8 +136,10 @@ require ( google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + gorm.io/gorm v1.30.0 // indirect k8s.io/api v0.34.3 // indirect k8s.io/apimachinery v0.34.3 // indirect k8s.io/client-go v0.34.3 // indirect diff --git a/bff/go.sum b/bff/go.sum index fff85ed..cafb0d4 100644 --- a/bff/go.sum +++ b/bff/go.sum @@ -10,10 +10,18 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= +github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= +github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= +github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= +github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k= +github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE= +github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= +github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w= github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= @@ -32,10 +40,20 @@ github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.10.1 h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho= +github.com/fsnotify/fsnotify v1.10.1/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo= github.com/fullstorydev/grpcurl v1.9.3 h1:PC1Xi3w+JAvEE2Tg2Gf2RfVgPbf9+tbuQr1ZkyVU3jk= github.com/fullstorydev/grpcurl v1.9.3/go.mod h1:/b4Wxe8bG6ndAjlfSUjwseQReUDUvBJiFEB7UllOlUE= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= +github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= +github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= +github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= +github.com/gin-gonic/gin v1.12.0/go.mod h1:VxccKfsSllpKshkBWgVgRniFFAzFb9csfngsqANjnLc= github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -51,9 +69,23 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.30.3 h1:4MU6YkEwx7GbcPJOZxrtbu+QfF3pJLJuaYTeAH0DYy8= +github.com/go-playground/validator/v10 v10.30.3/go.mod h1:4Axh7oCNGcoGkqLoE4YWt6n20mcEIsPRlB7vPk3lpyc= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -82,6 +114,10 @@ github.com/jhump/protoreflect v1.18.0 h1:TOz0MSR/0JOZ5kECB/0ufGnC2jdsgZ123Rd/k4Z github.com/jhump/protoreflect v1.18.0/go.mod h1:ezWcltJIVF4zYdIFM+D/sHV4Oh5LNU08ORzCGfwvTz8= github.com/jhump/protoreflect/v2 v2.0.0-beta.1 h1:Dw1rslK/VotaUGYsv53XVWITr+5RCPXfvvlGrM/+B6w= github.com/jhump/protoreflect/v2 v2.0.0-beta.1/go.mod h1:D9LBEowZyv8/iSu97FU2zmXG3JxVTmNw21mu63niFzU= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -101,6 +137,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -144,18 +182,36 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= +github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= +github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw= +github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU= github.com/redis/go-redis/v9 v9.21.0 h1:FPBE4hhbAke+TLmcY3WkpbDffJEomdqPn3HYiqAtL9E= github.com/redis/go-redis/v9 v9.21.0/go.mod h1:v/M13XI1PVCDcm01VtPFOADfZtHf8YW3baQf57KlIkA= +github.com/richardlehane/mscfb v1.0.7 h1:oeoiM0WE79vHwE8RpIYYvIAc8ajTH2mb6UZm55/+EB0= +github.com/richardlehane/mscfb v1.0.7/go.mod h1:pe0+IUIc0AHh0+teNzBlJCtSyZdFOGgV4ZK9bsoV+Jo= +github.com/richardlehane/msoleps v1.0.6 h1:9BvkpjvD+iUBalUY4esMwv6uBkfOip/Lzvd93jvR9gg= +github.com/richardlehane/msoleps v1.0.6/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robertkrimen/otto v0.2.1 h1:FVP0PJ0AHIjC+N4pKCG9yCDz6LHNPCwi/GKID5pGGF0= github.com/robertkrimen/otto v0.2.1/go.mod h1:UPwtJ1Xu7JrLcZjNWN8orJaM5n5YEtqL//farB5FlRY= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -167,12 +223,28 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/tiendc/go-deepcopy v1.7.2 h1:Ut2yYR7W9tWjTQitganoIue4UGxZwCcJy3orjrrIj44= +github.com/tiendc/go-deepcopy v1.7.2/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ= github.com/titanous/json5 v1.0.0 h1:hJf8Su1d9NuI/ffpxgxQfxh/UiBFZX7bMPid0rIL/7s= github.com/titanous/json5 v1.0.0/go.mod h1:7JH1M8/LHKc6cyP5o5g3CSaRj+mBrIimTxzpvmckH8c= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= +github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xuri/efp v0.0.1 h1:fws5Rv3myXyYni8uwj2qKjVaRP30PdjeYe2Y6FDsCL8= +github.com/xuri/efp v0.0.1/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI= +github.com/xuri/excelize/v2 v2.11.0 h1:HxaEFl6sRN2+8J5a8HaKq+0M4FsjBGMnWWtjOCPSG88= +github.com/xuri/excelize/v2 v2.11.0/go.mod h1:jxFLbzaIwGQ5ufFNvYfUOHqXhfPaNmP14KWfmNz2Uak= +github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 h1:+C0TIdyyYmzadGaL/HBLbf3WdLgC29pgyhTjAT/0nuE= +github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= @@ -187,6 +259,8 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.21 h1:lPBu71Y7osQmzlflM9OfeIV2JlmpBjqBNlLtcoB go.etcd.io/etcd/client/pkg/v3 v3.5.21/go.mod h1:BgqT/IXPjK9NkeSDjbzwsHySX3yIle2+ndz28nVsjUs= go.etcd.io/etcd/client/v3 v3.5.21 h1:T6b1Ow6fNjOLOtM0xSoKNQt1ASPCLWrF9XMHcH9pEyY= go.etcd.io/etcd/client/v3 v3.5.21/go.mod h1:mFYy67IOqmbRf/kRUvsHixzo3iG+1OF2W2+jVIQRAnU= +go.mongodb.org/mongo-driver/v2 v2.8.0 h1:CxWDGQYY8QQwNjAl/aq2sfWakdnWZynnqJ9F4DhHbP8= +go.mongodb.org/mongo-driver/v2 v2.8.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= @@ -227,9 +301,15 @@ go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/arch v0.22.0 h1:c/Zle32i5ttqRXjdLyyHZESLD/bB90DCU1g9l/0YBDI= +golang.org/x/arch v0.22.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/image v0.38.0 h1:5l+q+Y9JDC7mBOMjo4/aPhMDcxEptsX+Tt3GgRQRPuE= +golang.org/x/image v0.38.0/go.mod h1:/3f6vaXC+6CEanU4KJxbcUZyEePbyKbaLoDOe4ehFYY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -291,6 +371,8 @@ gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY= gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/sourcemap.v1 v1.0.5 h1:inv58fC9f9J3TK2Y2R1NPntXEn3/wjWHkonhIUODNTI= gopkg.in/sourcemap.v1 v1.0.5/go.mod h1:2RlvNNSMglmRrcvhfuzp4hQHwOtjxlbjX7UPY/GXb78= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -298,6 +380,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= +gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= k8s.io/api v0.34.3 h1:D12sTP257/jSH2vHV2EDYrb16bS7ULlHpdNdNhEw2S4= k8s.io/api v0.34.3/go.mod h1:PyVQBF886Q5RSQZOim7DybQjAbVs8g7gwJNhGtY5MBk= k8s.io/apimachinery v0.34.3 h1:/TB+SFEiQvN9HPldtlWOTp0hWbJ+fjU+wkxysf/aQnE= diff --git a/bff/internal/config/config.go b/bff/internal/config/config.go index 99e450c..b04265f 100644 --- a/bff/internal/config/config.go +++ b/bff/internal/config/config.go @@ -6,8 +6,7 @@ import ( type Config struct { gateway.GatewayConf - Nacos NacosConf - Response ResponseConf `json:",optional"` + Nacos NacosConf } type NacosConf struct { diff --git a/bff/internal/response/crypto.go b/bff/internal/response/crypto.go index 01b84a7..a2fcb18 100644 --- a/bff/internal/response/crypto.go +++ b/bff/internal/response/crypto.go @@ -5,9 +5,8 @@ import ( "crypto/aes" "crypto/cipher" "encoding/base64" - "math/rand" - "strings" - "time" + + "pkg.local/utils" ) var ( @@ -21,47 +20,6 @@ func Init(debug bool, key string) { encryptKey = key } -func GetConfigBool(key string) bool { - if key == "base.is_debug" { - return isDebug - } - return false -} - -func GetConfigString(key string) string { - if key == "encrypt.encrypt_key" { - return encryptKey - } - return "" -} - -func GetEncrypt(key string, nums ...int8) string { - original := GetConfigString(key) - str := original - //TODO 后台切换到新版时开启 - //for _, num := range nums { - // str = str[num:] + str[:num] - //} - return str -} - -// GetRandString 取得随机字符串:使用字符串拼接 -func GetRandString(length int) string { - if length < 1 { - return "" - } - char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - charArr := strings.Split(char, "") - charlen := len(charArr) - ran := rand.New(rand.NewSource(time.Now().Unix())) - - var rchar string = "" - for i := 1; i <= length; i++ { - rchar = rchar + charArr[ran.Intn(charlen)] - } - return rchar -} - type Crypto struct{} // EncryptKey 加密 @@ -76,7 +34,7 @@ func (c Crypto) EncryptKey(data []byte, key string) (map[string]string, Error) { func (c Crypto) aesCBCEncryptKey(data []byte, key string) (map[string]string, Error) { k := []byte(key) - iv := GetRandString(NumberSixteen) + iv := utils.GetRandString(NumberSixteen) // 分组密钥 block, err := aes.NewCipher(k) diff --git a/bff/internal/response/middleware.go b/bff/internal/response/middleware.go index 4be30a6..410323a 100644 --- a/bff/internal/response/middleware.go +++ b/bff/internal/response/middleware.go @@ -3,7 +3,6 @@ package response import ( "bytes" "encoding/json" - "log" "net/http" "strings" @@ -35,7 +34,6 @@ func Wrap(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { bw := &bodyWriter{ResponseWriter: w, status: http.StatusOK} next(bw, r) - log.Printf("raw json: %s", bw.status) ctrl := BaseController{} if bw.status != http.StatusOK { ctrl.Error(w, mapHTTPError(bw.status, bw.buf.String())) diff --git a/bff/internal/response/response.go b/bff/internal/response/response.go index ae8b6bf..c655d93 100644 --- a/bff/internal/response/response.go +++ b/bff/internal/response/response.go @@ -2,37 +2,14 @@ package response import ( "encoding/json" + "fmt" "net/http" + + "pkg.local/utils" ) type BaseController struct{} -// Ok 成功输出结果 加密 -func (b *BaseController) Ok(w http.ResponseWriter, data any) { - isDebug := GetConfigBool("base.is_debug") - if !isDebug { - jsonData, err := json.Marshal(data) - if err != nil { - b.Fail(w) - return - } - encryptKey := GetEncrypt("encrypt.encrypt_key", 15, 28, 18) - res, enErr := Crypto{}.EncryptKey(jsonData, encryptKey) - if enErr != nil { - b.Fail(w) - return - } - b.Out(w, res, OK) - return - } - b.Out(w, data, OK) -} - -// Ok2 成功输出结果 不加密 -func (b *BaseController) Ok2(w http.ResponseWriter, data any) { - b.Out(w, data, OK) -} - // Fail 基础错误的输出结果 func (b *BaseController) Fail(w http.ResponseWriter) { b.Out(w, nil, Fail) @@ -54,6 +31,23 @@ func (b *BaseController) Out(w http.ResponseWriter, data any, cm Error) { } func (b *BaseController) OutPut(w http.ResponseWriter, code int32, data any, msg string) { + if code == utils.Ok.Code && !utils.GetConfigBool("encrypt.debug") { + jsonData, err := json.Marshal(data) + if err != nil { + msg = utils.ErrorEncryptAesError.Msg + code = utils.ErrorEncryptAesError.Code + } else { + res, enErr := utils.Crypto{}.Encrypt(jsonData) + fmt.Printf("res: %v\n", res) + if enErr != nil { + msg = utils.ErrorEncryptAesError.Msg + code = utils.ErrorEncryptAesError.Code + } else { + data = res + } + } + } + // 复制一份,避免并发请求改到包级 OK/Fail 单例 out := NewError(int(code), msg).WithData(data)