79 lines
1.8 KiB
Go
Raw Normal View History

2025-03-09 12:06:14 +08:00
package secret
import (
"context"
"github.com/infraboard/mcube/v2/http/request"
"github.com/infraboard/mcube/v2/ioc"
"github.com/infraboard/mcube/v2/tools/pretty"
"github.com/infraboard/mcube/v2/types"
)
const (
AppName = "secret"
SECRET_KEY = "23gs6gxHrz1kNEvshRmunkXbwIiaEcYfh+EMu+e9ewA="
)
func GetService() Service {
return ioc.Controller().Get(AppName).(Service)
}
type Service interface {
// 用于Secret的管理(后台管理员配置)
// 创建secret
CreateSecret(context.Context, *CreateSecretRequest) (*Secret, error)
// 查询secret
QuerySecret(context.Context, *QuerySecretRequest) (*types.Set[*Secret], error)
// 查询详情, 已解密API层需要脱敏
DescribeSecret(context.Context, *DescribeSecretRequeset) (*Secret, error)
// 怎么API怎么设计
// 同步阿里云所有资源, 10分钟30分钟 ...
// 这个接口调用持续30分钟...
// Req ---> <---- Resp: 能快速响应的同步调用
// Stream API
SyncResource(context.Context, *SyncResourceRequest, SyncResourceHandleFunc) error
}
type SyncResourceHandleFunc func(ResourceResponse)
type ResourceResponse struct {
Success bool
InstanceId string `json:"instance_id"`
Message string `json:"message"`
}
func (t ResourceResponse) String() string {
return pretty.ToJSON(t)
}
func NewQuerySecretRequest() *QuerySecretRequest {
return &QuerySecretRequest{
PageRequest: request.NewDefaultPageRequest(),
}
}
type QuerySecretRequest struct {
// 分页请求
*request.PageRequest
}
func NewDescribeSecretRequeset(id string) *DescribeSecretRequeset {
return &DescribeSecretRequeset{
Id: id,
}
}
type DescribeSecretRequeset struct {
Id string `json:"id"`
}
func NewSyncResourceRequest() *SyncResourceRequest {
return &SyncResourceRequest{}
}
type SyncResourceRequest struct {
Id string `json:"id"`
}