Documentation ¶
Index ¶
- Constants
- Variables
- type ApiInputProject
- type ApiOutputProject
- type BaseMetric
- type BaseProject
- type BaseProjectMetricSetting
- type Blueprint
- type BlueprintSettings
- type CollectorLatestState
- type DbBlueprint
- type DbBlueprintLabel
- type DbPipeline
- type DbPipelineLabel
- 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 ¶
This section is empty.
Types ¶
type ApiInputProject ¶ added in v0.15.0
type ApiInputProject struct { BaseProject `mapstructure:",squash"` Enable *bool `json:"enable" mapstructure:"enable"` Metrics *[]BaseMetric `json:"metrics" mapstructure:"metrics"` }
type ApiOutputProject ¶ added in v0.15.0
type ApiOutputProject struct { BaseProject `mapstructure:",squash"` Metrics *[]BaseMetric `json:"metrics" mapstructure:"metrics"` Blueprint *Blueprint `json:"blueprint" mapstructure:"blueprint"` }
type BaseMetric ¶ added in v0.15.0
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 ¶ added in v0.15.0
type BaseProjectMetricSetting ¶ added in v0.15.0
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"` 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"` Settings json.RawMessage `json:"settings" swaggertype:"array,string" example:"please check api: /blueprints/<PLUGIN_NAME>/blueprint-setting"` common.Model `swaggerignore:"true"` }
@Description CronConfig
func (*Blueprint) UnmarshalPlan ¶ added in v0.12.0
func (bp *Blueprint) UnmarshalPlan() (core.PipelinePlan, errors.Error)
UnmarshalPlan unmarshals Plan in JSON to strong-typed core.PipelinePlan
type BlueprintSettings ¶ added in v0.12.0
type BlueprintSettings struct { Version string `json:"version" validate:"required,semver,oneof=1.0.0"` CreatedDateAfter *time.Time `json:"createdDateAfter"` Connections json.RawMessage `json:"connections" validate:"required"` BeforePlan json.RawMessage `json:"before_plan"` AfterPlan json.RawMessage `json:"after_plan"` }
type CollectorLatestState ¶ added in v0.15.0
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"` CreatedDateAfter *time.Time LatestSuccessStart *time.Time }
func (CollectorLatestState) TableName ¶ added in v0.15.0
func (CollectorLatestState) TableName() string
type DbBlueprint ¶ added in v0.14.0
type DbBlueprint 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 string `json:"plan" encrypt:"yes"` 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"` Settings string `` /* 128-byte string literal not displayed */ common.Model `swaggerignore:"true"` Labels []DbBlueprintLabel `json:"-" gorm:"-"` }
@Description CronConfig
func (DbBlueprint) TableName ¶ added in v0.14.0
func (DbBlueprint) TableName() string
type DbBlueprintLabel ¶ added in v0.15.0
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 ¶ added in v0.15.0
func (DbBlueprintLabel) TableName() string
type DbPipeline ¶ added in v0.14.0
type DbPipeline struct { common.Model Name string `json:"name" gorm:"index"` BlueprintId uint64 `json:"blueprintId"` Plan string `json:"plan" encrypt:"yes"` 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"` SkipOnFail bool `json:"skipOnFail"` Labels []DbPipelineLabel `json:"-" gorm:"-"` }
func (DbPipeline) TableName ¶ added in v0.14.0
func (DbPipeline) TableName() string
type DbPipelineLabel ¶ added in v0.15.0
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 ¶ added in v0.15.0
func (DbPipelineLabel) TableName() string
type LockingHistory ¶ added in v0.15.0
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 ¶ added in v0.15.0
func (LockingHistory) TableName() string
type LockingStub ¶ added in v0.15.0
type LockingStub struct {
Stub string
}
LockingStub does nothing but offer a locking target
func (LockingStub) TableName ¶ added in v0.15.0
func (LockingStub) TableName() string
type NewPipeline ¶
type NewPipeline struct { Name string `json:"name"` Plan core.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 datatypes.JSON `json:"plan"` 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"` SkipOnFail bool `json:"skipOnFail"` }
type Project ¶ added in v0.15.0
type Project struct { BaseProject `mapstructure:",squash"` common.NoPKModel }
type ProjectMetricSetting ¶ added in v0.15.0
type ProjectMetricSetting struct { BaseProjectMetricSetting `mapstructure:",squash"` common.NoPKModel }
func (ProjectMetricSetting) TableName ¶ added in v0.15.0
func (ProjectMetricSetting) TableName() string
type Subtask ¶ added in v0.13.0
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"` }