admin

package
v0.33.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActionLog

type ActionLog struct {
	LogID                  string               `json:"logId"`
	Action                 string               `json:"action"`
	NodeID                 *string              `json:"nodeId,omitempty"`
	OperatorID             string               `json:"operatorId"`
	OperatorName           string               `json:"operatorName"`
	OperatorDepartmentName *string              `json:"operatorDepartmentName,omitempty"`
	TransferToID           *string              `json:"transferToId,omitempty"`
	TransferToName         *string              `json:"transferToName,omitempty"`
	RollbackToNodeID       *string              `json:"rollbackToNodeId,omitempty"`
	AddedAssignees         []approval.UserBrief `json:"addedAssignees,omitempty"`
	RemovedAssignees       []approval.UserBrief `json:"removedAssignees,omitempty"`
	CCUsers                []approval.UserBrief `json:"ccUsers,omitempty"`
	Opinion                *string              `json:"opinion,omitempty"`
	Attachments            []string             `json:"attachments,omitempty"`
	CreatedAt              timex.DateTime       `json:"createdAt"`
}

ActionLog represents an action log entry in the admin view.

type Instance

type Instance struct {
	InstanceID      string          `json:"instanceId"`
	InstanceNo      string          `json:"instanceNo"`
	Title           string          `json:"title"`
	TenantID        string          `json:"tenantId"`
	FlowID          string          `json:"flowId"`
	FlowName        string          `json:"flowName"`
	ApplicantID     string          `json:"applicantId"`
	ApplicantName   string          `json:"applicantName"`
	Status          string          `json:"status"`
	CurrentNodeName *string         `json:"currentNodeName,omitempty"`
	CreatedAt       timex.DateTime  `json:"createdAt"`
	FinishedAt      *timex.DateTime `json:"finishedAt,omitempty"`
}

Instance represents an approval instance in the admin view.

type InstanceDetail

type InstanceDetail struct {
	Instance   InstanceDetailInfo         `json:"instance"`
	Tasks      []TaskDetailInfo           `json:"tasks"`
	ActionLogs []ActionLog                `json:"actionLogs"`
	FlowGraph  approval.InstanceFlowGraph `json:"flowGraph"`
}

InstanceDetail represents the full admin detail view of an approval instance.

type InstanceDetailInfo

type InstanceDetailInfo struct {
	InstanceID              string                   `json:"instanceId"`
	InstanceNo              string                   `json:"instanceNo"`
	Title                   string                   `json:"title"`
	TenantID                string                   `json:"tenantId"`
	FlowID                  string                   `json:"flowId"`
	FlowName                string                   `json:"flowName"`
	FlowVersionID           string                   `json:"flowVersionId"`
	ApplicantID             string                   `json:"applicantId"`
	ApplicantName           string                   `json:"applicantName"`
	ApplicantDepartmentName *string                  `json:"applicantDepartmentName,omitempty"`
	Status                  string                   `json:"status"`
	CurrentNodeID           *string                  `json:"currentNodeId,omitempty"`
	CurrentNodeName         *string                  `json:"currentNodeName,omitempty"`
	BusinessRecordID        *string                  `json:"businessRecordId,omitempty"`
	FormData                map[string]any           `json:"formData,omitempty"`
	FormSchema              *approval.FormDefinition `json:"formSchema,omitempty"`
	CreatedAt               timex.DateTime           `json:"createdAt"`
	FinishedAt              *timex.DateTime          `json:"finishedAt,omitempty"`
}

InstanceDetailInfo carries the instance portion of an admin detail view.

type Metrics added in v0.24.0

type Metrics struct {
	// TenantID is the tenant scope of the snapshot. Empty when the
	// snapshot is cross-tenant (super-admin only).
	TenantID string `json:"tenantId"`
	// CapturedAt is the moment the metrics were materialized.
	CapturedAt timex.DateTime `json:"capturedAt"`
	// InstanceCounts reports running/approved/rejected/withdrawn/returned/
	// terminated instance counts. Keys are the InstanceStatus string values.
	InstanceCounts map[string]int `json:"instanceCounts"`
	// TaskCounts reports task counts indexed by TaskStatus string.
	TaskCounts map[string]int `json:"taskCounts"`
	// TimeoutTaskCount is the number of pending tasks past their deadline.
	TimeoutTaskCount int `json:"timeoutTaskCount"`
	// AvgCompletionSeconds is the average end-to-end duration (created_at →
	// finished_at) for instances that reached a final status in the
	// reporting window. -1 indicates "no completed instances yet".
	AvgCompletionSeconds float64 `json:"avgCompletionSeconds"`
	// PendingBindingFailures is a best-effort count of unresolved
	// business-binding failure events in the outbox. It counts outbox rows,
	// not distinct instances: a single instance whose binding keeps failing
	// is re-published on each retry, so this value may exceed the number of
	// distinct failing instances.
	PendingBindingFailures int `json:"pendingBindingFailures"`
}

Metrics aggregates approval engine health and throughput indicators. It is shaped for admin dashboards and ops alerting, not for fine-grained APM. All counts are tenant-scoped when TenantID is set on the query; super- admin callers can request a cross-tenant view.

type Task

type Task struct {
	TaskID        string          `json:"taskId"`
	InstanceID    string          `json:"instanceId"`
	InstanceTitle string          `json:"instanceTitle"`
	FlowName      string          `json:"flowName"`
	NodeName      string          `json:"nodeName"`
	AssigneeID    string          `json:"assigneeId"`
	AssigneeName  string          `json:"assigneeName"`
	Status        string          `json:"status"`
	CreatedAt     timex.DateTime  `json:"createdAt"`
	Deadline      *timex.DateTime `json:"deadline,omitempty"`
	FinishedAt    *timex.DateTime `json:"finishedAt,omitempty"`
}

Task represents an approval task in the admin view.

type TaskDetailInfo

type TaskDetailInfo struct {
	TaskID        string          `json:"taskId"`
	NodeID        string          `json:"nodeId"`
	NodeName      string          `json:"nodeName"`
	AssigneeID    string          `json:"assigneeId"`
	AssigneeName  string          `json:"assigneeName"`
	DelegatorID   *string         `json:"delegatorId,omitempty"`
	DelegatorName *string         `json:"delegatorName,omitempty"`
	Status        string          `json:"status"`
	SortOrder     int             `json:"sortOrder"`
	Deadline      *timex.DateTime `json:"deadline,omitempty"`
	IsTimeout     bool            `json:"isTimeout"`
	CreatedAt     timex.DateTime  `json:"createdAt"`
	FinishedAt    *timex.DateTime `json:"finishedAt,omitempty"`
}

TaskDetailInfo represents a task entry within the admin instance detail view.

Jump to

Keyboard shortcuts

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