Documentation ¶
Index ¶
- Constants
- Variables
- func UnwrapObject(ifc any) any
- type ApiInputProject
- type ApiOutputProject
- type BaseMetric
- type BaseProject
- type BaseProjectMetricSetting
- type Blueprint
- func (bp *Blueprint) GetConnections() ([]*plugin.BlueprintConnectionV200, errors.Error)
- func (bp *Blueprint) GetScopes(connectionId uint64, pluginName string) ([]*plugin.BlueprintScopeV200, errors.Error)
- func (Blueprint) TableName() string
- func (bp *Blueprint) UnmarshalPlan() (plugin.PipelinePlan, errors.Error)
- func (bp *Blueprint) UnmarshalSettings() (BlueprintSettings, errors.Error)
- func (bp *Blueprint) UpdateSettings(settings *BlueprintSettings) errors.Error
- type BlueprintSettings
- type CollectorLatestState
- type DbBlueprintLabel
- type DbPipelineLabel
- type DynamicTabler
- type DynamicTablerImpl
- func (d *DynamicTablerImpl) From(src any) errors.Error
- func (d *DynamicTablerImpl) MarshalJSON() ([]byte, error)
- func (d *DynamicTablerImpl) New() DynamicTabler
- func (d *DynamicTablerImpl) NewSlice() DynamicTabler
- func (d *DynamicTablerImpl) NewValue() any
- func (d *DynamicTablerImpl) TableName() string
- func (d *DynamicTablerImpl) To(target any) errors.Error
- func (d *DynamicTablerImpl) UnmarshalJSON(b []byte) error
- func (d *DynamicTablerImpl) Unwrap() any
- func (d *DynamicTablerImpl) UnwrapPtr() *any
- func (d *DynamicTablerImpl) UnwrapSlice() []any
- type LockingHistory
- type LockingStub
- type NewPipeline
- type NewTask
- type Notification
- type NotificationType
- type Pipeline
- type Project
- type ProjectMetricSetting
- type Subtask
- type Task
- type TaskProgressDetail
Constants ¶
const ( BLUEPRINT_MODE_NORMAL = "NORMAL" BLUEPRINT_MODE_ADVANCED = "ADVANCED" )
const ( TASK_CREATED = "TASK_CREATED" TASK_RERUN = "TASK_RERUN" TASK_RUNNING = "TASK_RUNNING" TASK_COMPLETED = "TASK_COMPLETED" TASK_FAILED = "TASK_FAILED" TASK_CANCELLED = "TASK_CANCELLED" TASK_PARTIAL = "TASK_PARTIAL" )
Variables ¶
var PendingTaskStatus = []string{TASK_CREATED, TASK_RERUN, TASK_RUNNING}
Functions ¶
func UnwrapObject ¶
UnwrapObject if the actual object is wrapped in some proxy, it unwinds and returns it, otherwise this is idempotent
Types ¶
type ApiInputProject ¶
type ApiInputProject struct { BaseProject `mapstructure:",squash"` Enable *bool `json:"enable" mapstructure:"enable"` Metrics *[]BaseMetric `json:"metrics" mapstructure:"metrics"` }
type ApiOutputProject ¶
type ApiOutputProject struct { BaseProject `mapstructure:",squash"` Metrics *[]BaseMetric `json:"metrics" mapstructure:"metrics"` Blueprint *Blueprint `json:"blueprint" mapstructure:"blueprint"` }
type BaseMetric ¶
type BaseMetric struct { PluginName string `json:"pluginName" mapstructure:"pluginName" gorm:"primaryKey;type:varchar(255)" validate:"required"` PluginOption string `json:"pluginOption" mapstructure:"pluginOption" gorm:"type:text"` Enable bool `json:"enable" mapstructure:"enable" gorm:"type:boolean"` }
type BaseProject ¶
type BaseProjectMetricSetting ¶
type BaseProjectMetricSetting struct { ProjectName string `json:"projectName" mapstructure:"projectName" gorm:"primaryKey;type:varchar(255)"` BaseMetric `mapstructure:",squash"` }
type Blueprint ¶
type Blueprint struct { Name string `json:"name" validate:"required"` ProjectName string `json:"projectName" gorm:"type:varchar(255)"` Mode string `json:"mode" gorm:"varchar(20)" validate:"required,oneof=NORMAL ADVANCED"` Plan json.RawMessage `json:"plan" gorm:"serializer:encdec"` Enable bool `json:"enable"` //please check this https://crontab.guru/ for detail CronConfig string `json:"cronConfig" format:"* * * * *" example:"0 0 * * 1"` IsManual bool `json:"isManual"` SkipOnFail bool `json:"skipOnFail"` Labels []string `json:"labels" gorm:"-"` Settings json.RawMessage `` /* 139-byte string literal not displayed */ common.Model `swaggerignore:"true"` }
@Description CronConfig
func (*Blueprint) GetConnections ¶
func (bp *Blueprint) GetConnections() ([]*plugin.BlueprintConnectionV200, errors.Error)
GetConnections Gets all the blueprint connections for this blueprint
func (*Blueprint) GetScopes ¶
func (bp *Blueprint) GetScopes(connectionId uint64, pluginName string) ([]*plugin.BlueprintScopeV200, errors.Error)
GetScopes Gets all the scopes for a given connection for this blueprint. Returns an empty slice if none found.
func (*Blueprint) UnmarshalPlan ¶
func (bp *Blueprint) UnmarshalPlan() (plugin.PipelinePlan, errors.Error)
UnmarshalPlan unmarshals Plan in JSON to strong-typed plugin.PipelinePlan
func (*Blueprint) UnmarshalSettings ¶
func (bp *Blueprint) UnmarshalSettings() (BlueprintSettings, errors.Error)
UnmarshalSettings unmarshals the BlueprintSettings on the Blueprint
func (*Blueprint) UpdateSettings ¶
func (bp *Blueprint) UpdateSettings(settings *BlueprintSettings) errors.Error
UpdateSettings updates the blueprint instance with this settings reference
type BlueprintSettings ¶
type BlueprintSettings struct { Version string `json:"version" validate:"required,semver,oneof=1.0.0"` TimeAfter *time.Time `json:"timeAfter"` Connections json.RawMessage `json:"connections" validate:"required"` BeforePlan json.RawMessage `json:"before_plan"` AfterPlan json.RawMessage `json:"after_plan"` }
func (*BlueprintSettings) UnmarshalConnections ¶
func (bps *BlueprintSettings) UnmarshalConnections() ([]*plugin.BlueprintConnectionV200, errors.Error)
UnmarshalConnections unmarshals the connections on this BlueprintSettings reference
func (*BlueprintSettings) UpdateConnections ¶
func (bps *BlueprintSettings) UpdateConnections(updater func(c *plugin.BlueprintConnectionV200) errors.Error) errors.Error
UpdateConnections updates the connections on this BlueprintSettings reference according to the updater function
type CollectorLatestState ¶
type CollectorLatestState struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` RawDataParams string `gorm:"primaryKey;column:raw_data_params;type:varchar(255);index" json:"raw_data_params"` RawDataTable string `gorm:"primaryKey;column:raw_data_table;type:varchar(255)" json:"raw_data_table"` TimeAfter *time.Time LatestSuccessStart *time.Time }
func (CollectorLatestState) TableName ¶
func (CollectorLatestState) TableName() string
type DbBlueprintLabel ¶
type DbBlueprintLabel struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` BlueprintId uint64 `json:"blueprint_id" gorm:"primaryKey"` Name string `json:"name" gorm:"primaryKey;index"` }
func (DbBlueprintLabel) TableName ¶
func (DbBlueprintLabel) TableName() string
type DbPipelineLabel ¶
type DbPipelineLabel struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` PipelineId uint64 `json:"pipeline_id" gorm:"primaryKey"` Name string `json:"name" gorm:"primaryKey;index"` }
func (DbPipelineLabel) TableName ¶
func (DbPipelineLabel) TableName() string
type DynamicTabler ¶
type DynamicTabler interface { dal.Tabler json.Marshaler json.Unmarshaler NewValue() any New() DynamicTabler NewSlice() DynamicTabler From(src any) errors.Error To(target any) errors.Error Unwrap() any UnwrapPtr() *any UnwrapSlice() []any }
DynamicTabler is a core.Tabler that wraps a runtime (anonymously) generated data-model. Due to limitations of reflection in Go and the GORM framework, the underlying model and the table have to be explicitly passed into dal.Dal's API via Unwrap() and TableName()
func NewDynamicTabler ¶
func NewDynamicTabler(tableName string, objType reflect.Type) DynamicTabler
type DynamicTablerImpl ¶
type DynamicTablerImpl struct {
// contains filtered or unexported fields
}
DynamicTablerImpl the implementation of DynamicTabler
func (*DynamicTablerImpl) MarshalJSON ¶
func (d *DynamicTablerImpl) MarshalJSON() ([]byte, error)
func (*DynamicTablerImpl) New ¶
func (d *DynamicTablerImpl) New() DynamicTabler
func (*DynamicTablerImpl) NewSlice ¶
func (d *DynamicTablerImpl) NewSlice() DynamicTabler
func (*DynamicTablerImpl) NewValue ¶
func (d *DynamicTablerImpl) NewValue() any
func (*DynamicTablerImpl) TableName ¶
func (d *DynamicTablerImpl) TableName() string
func (*DynamicTablerImpl) UnmarshalJSON ¶
func (d *DynamicTablerImpl) UnmarshalJSON(b []byte) error
func (*DynamicTablerImpl) Unwrap ¶
func (d *DynamicTablerImpl) Unwrap() any
func (*DynamicTablerImpl) UnwrapPtr ¶
func (d *DynamicTablerImpl) UnwrapPtr() *any
func (*DynamicTablerImpl) UnwrapSlice ¶
func (d *DynamicTablerImpl) UnwrapSlice() []any
type LockingHistory ¶
type LockingHistory struct { ID uint64 `gorm:"primaryKey" json:"id"` HostName string Version string Succeeded bool CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
LockingHistory is desgned for preventing mutiple delake instances from sharing the same database which may cause problems like #3537, #3466. It works by the following step:
1. Each devlake insert a record to this table whie `Succeeded=false` 2. Then it should try to lock the LockingStub table 3. Update the record with `Succeeded=true` if it had obtained the lock successfully
NOTE: it works IFF all devlake instances obey the principle described above, in other words, this mechanism can not prevent older versions from sharing the same database
func (LockingHistory) TableName ¶
func (LockingHistory) TableName() string
type LockingStub ¶
type LockingStub struct {
Stub string
}
LockingStub does nothing but offer a locking target
func (LockingStub) TableName ¶
func (LockingStub) TableName() string
type NewPipeline ¶
type NewPipeline struct { Name string `json:"name"` Plan plugin.PipelinePlan `json:"plan" swaggertype:"array,string" example:"please check api /pipelines/<PLUGIN_NAME>/pipeline-plan"` Labels []string `json:"labels"` SkipOnFail bool `json:"skipOnFail"` BlueprintId uint64 }
We use a 2D array because the request body must be an array of a set of tasks to be executed concurrently, while each set is to be executed sequentially.
type Notification ¶
type Notification struct { common.Model Type NotificationType Endpoint string Nonce string ResponseCode int Response string Data string }
Notification records notifications sent by lake
func (Notification) TableName ¶
func (Notification) TableName() string
type NotificationType ¶
type NotificationType string
const (
NotificationPipelineStatusChanged NotificationType = "PipelineStatusChanged"
)
type Pipeline ¶
type Pipeline struct { common.Model Name string `json:"name" gorm:"index"` BlueprintId uint64 `json:"blueprintId"` Plan json.RawMessage `json:"plan" gorm:"serializer:encdec"` TotalTasks int `json:"totalTasks"` FinishedTasks int `json:"finishedTasks"` BeganAt *time.Time `json:"beganAt"` FinishedAt *time.Time `json:"finishedAt" gorm:"index"` Status string `json:"status"` Message string `json:"message"` ErrorName string `json:"errorName"` SpentSeconds int `json:"spentSeconds"` Stage int `json:"stage"` Labels []string `json:"labels" gorm:"-"` SkipOnFail bool `json:"skipOnFail"` }
type Project ¶
type Project struct { BaseProject `mapstructure:",squash"` common.NoPKModel }
type ProjectMetricSetting ¶
type ProjectMetricSetting struct { BaseProjectMetricSetting `mapstructure:",squash"` common.NoPKModel }
func (ProjectMetricSetting) TableName ¶
func (ProjectMetricSetting) TableName() string
type Subtask ¶
type Task ¶
type Task struct { common.Model Plugin string `json:"plugin" gorm:"index"` Subtasks datatypes.JSON `json:"subtasks"` Options string `json:"options" gorm:"serializer:encdec"` Status string `json:"status"` Message string `json:"message"` ErrorName string `json:"errorName"` Progress float32 `json:"progress"` ProgressDetail *TaskProgressDetail `json:"progressDetail" gorm:"-"` FailedSubTask string `json:"failedSubTask"` PipelineId uint64 `json:"pipelineId" gorm:"index"` PipelineRow int `json:"pipelineRow"` PipelineCol int `json:"pipelineCol"` BeganAt *time.Time `json:"beganAt"` FinishedAt *time.Time `json:"finishedAt" gorm:"index"` SpentSeconds int `json:"spentSeconds"` }