repository

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package repository 定义控制面持久化接口和通用仓储错误。

service 层依赖这些接口;具体内存或 Gorm 实现放在子包中。

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound      = errors.New("resource not found")
	ErrAlreadyExists = errors.New("resource already exists")
	ErrConflict      = errors.New("resource state conflict")
	ErrPersistence   = errors.New("persistence operation failed")
)

Functions

This section is empty.

Types

type ApprovalQuery

type ApprovalQuery struct {
	Workspace   string
	RequesterID string
	ApproverID  string
	ObjectType  admin.ApprovalObjectType
	Status      admin.ApprovalStatus
	Keyword     string
	Offset      int
	Limit       int
}

ApprovalQuery 是审批单列表查询条件。

type ApprovalRepository

type ApprovalRepository interface {
	Create(ctx context.Context, request *admin.ApprovalRequest) error
	Decide(ctx context.Context, request *admin.ApprovalRequest) error
	Get(ctx context.Context, workspace string, requestID string) (*admin.ApprovalRequest, error)
	List(ctx context.Context, query *ApprovalQuery) ([]*admin.ApprovalRequest, int64, error)
}

ApprovalRepository 定义单行审批记录的持久化能力。

type AuditAction

type AuditAction string

AuditAction 表示审计日志动作类型。

const (
	AuditActionCreate   AuditAction = "create"
	AuditActionUpdate   AuditAction = "update"
	AuditActionDelete   AuditAction = "delete"
	AuditActionPublish  AuditAction = "publish"
	AuditActionDisable  AuditAction = "disable"
	AuditActionEnable   AuditAction = "enable"
	AuditActionLogin    AuditAction = "login"
	AuditActionExecute  AuditAction = "execute"
	AuditActionRollback AuditAction = "rollback"
	AuditActionReset    AuditAction = "reset"
)

type AuditLog

type AuditLog struct {
	ID         string                 `json:"id"`
	Kind       OperationKind          `json:"kind"`
	Workspace  string                 `json:"workspace"`
	UserID     string                 `json:"userId"`
	Username   string                 `json:"username"`
	Resource   string                 `json:"resource"`
	ResourceID string                 `json:"resourceId"`
	Action     AuditAction            `json:"action"`
	Success    bool                   `json:"success"`
	Message    string                 `json:"message"`
	Attrs      map[string]interface{} `json:"attrs"`
	Status     admin.ApprovalStatus   `json:"status,omitempty"`
	ReviewerID string                 `json:"reviewerId,omitempty"`
	Reviewer   string                 `json:"reviewer,omitempty"`
	Comment    string                 `json:"comment,omitempty"`
	CreatedAt  time.Time              `json:"createdAt"`
	UpdatedAt  time.Time              `json:"updatedAt"`
}

AuditLog 是控制面审计日志领域记录。

type AuditLogRepository

type AuditLogRepository interface {
	Append(ctx context.Context, log *AuditLog) error
	List(ctx context.Context, workspace string, resource string, resourceID string, offset int, limit int) ([]*AuditLog, int64, error)
}

AuditLogRepository 定义审计日志持久化能力。

type NodeCapabilityQuery added in v0.2.0

type NodeCapabilityQuery struct {
	Workspace string
	Env       string
	Service   string
}

NodeCapabilityQuery 描述节点能力快照查询范围。

type NodeCapabilityRepository added in v0.2.0

type NodeCapabilityRepository interface {
	Upsert(ctx context.Context, snapshot *workercapability.Snapshot) error
	ListLatest(ctx context.Context, query *NodeCapabilityQuery) ([]*workercapability.Snapshot, error)
	Latest(ctx context.Context, workspace string, env string, service string) (*workercapability.Snapshot, error)
}

NodeCapabilityRepository 保存 Worker 按版本上报的节点能力快照。

type OperationKind

type OperationKind string

OperationKind 区分普通操作记录和审批记录。

const (
	OperationKindAudit    OperationKind = "audit"
	OperationKindApproval OperationKind = "approval"
)

type PermissionQuery

type PermissionQuery struct {
	Workspace string
	Keyword   string
	Offset    int
	Limit     int
}

PermissionQuery 是权限列表查询条件。

type PermissionRepository

type PermissionRepository interface {
	Create(ctx context.Context, permission *admin.Permission) error
	Update(ctx context.Context, permission *admin.Permission) error
	Get(ctx context.Context, workspace string, permissionID string) (*admin.Permission, error)
	List(ctx context.Context, query *PermissionQuery) ([]*admin.Permission, int64, error)
	Delete(ctx context.Context, workspace string, permissionID string) error
}

PermissionRepository 定义权限持久化能力。

type RoleQuery

type RoleQuery struct {
	Workspace string
	Keyword   string
	Offset    int
	Limit     int
}

RoleQuery 是角色列表查询条件。

type RoleRepository

type RoleRepository interface {
	Create(ctx context.Context, role *admin.Role) error
	Update(ctx context.Context, role *admin.Role) error
	Get(ctx context.Context, workspace string, roleID string) (*admin.Role, error)
	List(ctx context.Context, query *RoleQuery) ([]*admin.Role, int64, error)
	Delete(ctx context.Context, workspace string, roleID string) error
}

RoleRepository 定义角色持久化能力。

type TraceEventQuery

type TraceEventQuery struct {
	Workspace string
	TraceID   string
	Offset    int
	Limit     int
}

TraceEventQuery 是单条 trace 的事件分页查询条件。

type TraceQuery

type TraceQuery struct {
	Env       string
	Workspace string
	TraceID   string
	Status    string
	Attrs     map[string]interface{}
	StartTime time.Time
	EndTime   time.Time
	Offset    int
	Limit     int
}

TraceQuery 是 trace 摘要列表查询条件。

type TraceRepository

type TraceRepository interface {
	Search(ctx context.Context, query *TraceQuery) ([]*TraceSummary, int64, error)
	GetEvents(ctx context.Context, query *TraceEventQuery) ([]*event.Event, int64, error)
}

TraceRepository 定义 trace 事件查询能力。

type TraceSummary

type TraceSummary struct {
	TraceID      string                 `json:"traceId"`
	Env          string                 `json:"env"`
	Workspace    string                 `json:"workspace"`
	Attrs        map[string]interface{} `json:"attrs,omitempty"`
	FirstTime    time.Time              `json:"firstTime"`
	LastTime     time.Time              `json:"lastTime"`
	FinalStatus  string                 `json:"finalStatus"`
	ErrorCode    string                 `json:"errorCode"`
	ErrorMessage string                 `json:"errorMessage"`
	RunCount     int                    `json:"runCount"`
	NodeCount    int                    `json:"nodeCount"`
}

TraceSummary 是按 traceId 聚合后的客服/研发查询摘要。

type UserQuery

type UserQuery struct {
	Workspace       string
	UserIDs         []string
	FilterByUserIDs bool
	Keyword         string
	Offset          int
	Limit           int
}

UserQuery 是用户列表查询条件。

type UserRepository

type UserRepository interface {
	Create(ctx context.Context, user *admin.User) error
	Update(ctx context.Context, user *admin.User) error
	Get(ctx context.Context, userID string) (*admin.User, error)
	GetByUsername(ctx context.Context, username string) (*admin.User, error)
	List(ctx context.Context, query *UserQuery) ([]*admin.User, int64, error)
}

UserRepository 定义用户持久化能力。

type WorkflowProgressRepository

type WorkflowProgressRepository interface {
	Reset(ctx context.Context, workspace string, workflowID string, version string, operator string) error
	MarkPending(ctx context.Context, workspace string, workflowID string, version string, pendingEnv string, operator string) error
	MarkApproved(ctx context.Context, workspace string, workflowID string, version string, pendingEnv string, operator string) error
	MarkPublished(ctx context.Context, workspace string, workflowID string, version string, currentEnv string, operator string) error
	ClearPending(ctx context.Context, workspace string, workflowID string, version string, operator string) error
	Get(ctx context.Context, workspace string, workflowID string, version string) (*admin.WorkflowProgress, error)
}

WorkflowProgressRepository 定义 workflow 环境推进状态的持久化能力。

type WorkflowQuery

type WorkflowQuery struct {
	Env        string
	Workspace  string
	Service    string
	WorkflowID string
	Keyword    string
	Status     core.WorkflowStatus
	Offset     int
	Limit      int
}

WorkflowQuery 是 workflow 版本列表查询条件。

type WorkflowRepository

type WorkflowRepository interface {
	Save(ctx context.Context, workflow *core.Workflow) error
	Delete(ctx context.Context, env string, workspace string, workflowID string, version string) error
	Publish(ctx context.Context, env string, workspace string, workflowID string, version string, remark string, publishedBy string) (*core.WorkflowVersion, error)
	Promote(ctx context.Context, sourceEnv string, targetEnv string, workspace string, workflowID string, version string, remark string, publishedBy string) (*core.WorkflowVersion, error)
	GetVersion(ctx context.Context, env string, workspace string, workflowID string, version string) (*core.WorkflowVersion, error)
	GetPublished(ctx context.Context, env string, workspace string, workflowID string, version string) (*core.Workflow, error)
	List(ctx context.Context, query *WorkflowQuery) ([]*core.WorkflowVersion, int64, error)
	Disable(ctx context.Context, env string, workspace string, workflowID string, version string) error
}

WorkflowRepository 定义 workflow 新增编辑、发布和停用的持久化能力。

type WorkspaceEnvironmentQuery

type WorkspaceEnvironmentQuery struct {
	Workspace string
	Keyword   string
	Enabled   *bool
	Offset    int
	Limit     int
}

WorkspaceEnvironmentQuery 是工作空间环境列表查询条件。

type WorkspaceEnvironmentReferenceRepository

type WorkspaceEnvironmentReferenceRepository interface {
	Count(ctx context.Context, workspace string, env string) (*WorkspaceEnvironmentReferences, error)
}

WorkspaceEnvironmentReferenceRepository 查询一个环境是否仍被流程生命周期引用。

type WorkspaceEnvironmentReferences

type WorkspaceEnvironmentReferences struct {
	WorkflowVersions int64 `json:"workflowVersions"`
	WorkflowProgress int64 `json:"workflowProgress"`
	Approvals        int64 `json:"approvals"`
}

WorkspaceEnvironmentReferences 汇总阻止环境删除的领域引用。

func (*WorkspaceEnvironmentReferences) Total

type WorkspaceEnvironmentRepository

type WorkspaceEnvironmentRepository interface {
	Save(ctx context.Context, env *admin.WorkspaceEnvironment) error
	Get(ctx context.Context, workspace string, env string) (*admin.WorkspaceEnvironment, error)
	List(ctx context.Context, query *WorkspaceEnvironmentQuery) ([]*admin.WorkspaceEnvironment, int64, error)
	Delete(ctx context.Context, workspace string, env string) error
}

WorkspaceEnvironmentRepository 定义工作空间环境的持久化能力。

type WorkspaceMemberRepository

type WorkspaceMemberRepository interface {
	Add(ctx context.Context, member *admin.WorkspaceMember) error
	UpdateRoles(ctx context.Context, workspace string, userID string, roleIDs []string) error
	Get(ctx context.Context, workspace string, userID string) (*admin.WorkspaceMember, error)
	List(ctx context.Context, workspace string, offset int, limit int) ([]*admin.WorkspaceMember, int64, error)
	Remove(ctx context.Context, workspace string, userID string) error
}

WorkspaceMemberRepository 定义工作空间成员持久化能力。

type WorkspaceQuery

type WorkspaceQuery struct {
	Workspace string
	Keyword   string
	Offset    int
	Limit     int
}

WorkspaceQuery 是工作空间列表查询条件。

type WorkspaceRepository

type WorkspaceRepository interface {
	Create(ctx context.Context, workspace *admin.Workspace) error
	Update(ctx context.Context, workspace *admin.Workspace) error
	Get(ctx context.Context, workspace string) (*admin.Workspace, error)
	List(ctx context.Context, query *WorkspaceQuery) ([]*admin.Workspace, int64, error)
	Delete(ctx context.Context, workspace string) error
}

WorkspaceRepository 定义工作空间持久化能力。

Directories

Path Synopsis
Package gormmodel 定义 Gorm 持久化模型和结构化 JSON 转换工具。
Package gormmodel 定义 Gorm 持久化模型和结构化 JSON 转换工具。
Package gormrepo 使用 Gorm 实现控制面的 repository 接口。
Package gormrepo 使用 Gorm 实现控制面的 repository 接口。
Package memory 提供控制面 repository 接口的内存实现。
Package memory 提供控制面 repository 接口的内存实现。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL