Documentation
¶
Overview ¶
Package imageupdate owns image update checks, persistence, and HTTP routes.
Index ¶
- Constants
- func RegisterImageUpdates(api huma.API, imageUpdateSvc *ImageUpdateService, ...)
- type CheckAllImagesInput
- type CheckAllImagesOutput
- type CheckImageUpdateByIDInput
- type CheckImageUpdateByIDOutput
- type CheckImageUpdateInput
- type CheckImageUpdateOutput
- type CheckMultipleImagesInput
- type CheckMultipleImagesOutput
- type Dependencies
- type GetUpdateInfoByRefsInput
- type GetUpdateInfoByRefsOutput
- type GetUpdateSummaryInput
- type GetUpdateSummaryOutput
- type ImageParts
- type ImageUpdate
- type ImageUpdateHandler
- func (h *ImageUpdateHandler) CheckAllImages(ctx context.Context, input *CheckAllImagesInput) (*CheckAllImagesOutput, error)
- func (h *ImageUpdateHandler) CheckImageUpdate(ctx context.Context, input *CheckImageUpdateInput) (*CheckImageUpdateOutput, error)
- func (h *ImageUpdateHandler) CheckImageUpdateByID(ctx context.Context, input *CheckImageUpdateByIDInput) (*CheckImageUpdateByIDOutput, error)
- func (h *ImageUpdateHandler) CheckMultipleImages(ctx context.Context, input *CheckMultipleImagesInput) (*CheckMultipleImagesOutput, error)
- func (h *ImageUpdateHandler) GetUpdateInfoByRefs(ctx context.Context, input *GetUpdateInfoByRefsInput) (*GetUpdateInfoByRefsOutput, error)
- func (h *ImageUpdateHandler) GetUpdateSummary(ctx context.Context, input *GetUpdateSummaryInput) (*GetUpdateSummaryOutput, error)
- type ImageUpdateRecord
- type ImageUpdateService
- func (s *ImageUpdateService) CheckAllImages(ctx context.Context, limit int, externalCreds []containerregistry.Credential) (map[string]*imageupdate.Response, error)
- func (s *ImageUpdateService) CheckImageUpdate(ctx context.Context, imageRef string) (*imageupdate.Response, error)
- func (s *ImageUpdateService) CheckImageUpdateByID(ctx context.Context, imageID string) (*imageupdate.Response, error)
- func (s *ImageUpdateService) CheckMultipleImages(ctx context.Context, imageRefs []string, ...) (results map[string]*imageupdate.Response, err error)
- func (s *ImageUpdateService) CleanupOrphanedRecords(ctx context.Context) error
- func (s *ImageUpdateService) GetUnnotifiedUpdates(ctx context.Context) (map[string]*ImageUpdateRecord, error)
- func (s *ImageUpdateService) GetUpdateSummary(ctx context.Context) (*imageupdate.Summary, error)
- func (s *ImageUpdateService) MarkImageRefUpToDateAfterPull(ctx context.Context, imageRef string) error
- func (s *ImageUpdateService) MarkUpdatesAsNotified(ctx context.Context, imageIDs []string) error
- func (s *ImageUpdateService) SendBatchUpdateNotifications(ctx context.Context)
- func (s *ImageUpdateService) StoredUpdateByImageID(ctx context.Context, imageID string) (*ImageUpdateRecord, bool, error)
- type Module
Constants ¶
View Source
const ( UpdateTypeDigest = "digest" UpdateTypeTag = "tag" UpdateTypeLocal = "local" UpdateTypeNotPulled = "not_pulled" )
Variables ¶
This section is empty.
Functions ¶
func RegisterImageUpdates ¶
func RegisterImageUpdates(api huma.API, imageUpdateSvc *ImageUpdateService, getUpdateInfoByImageRefs func(context.Context, []string) (map[string]*imagetypes.UpdateInfo, error), appCtx handlerutil.ActivityAppContext)
RegisterImageUpdates registers image update endpoints.
Types ¶
type CheckAllImagesInput ¶
type CheckAllImagesInput struct {
EnvironmentID string `path:"id" doc:"Environment ID"`
Body imageupdate.CheckAllImagesRequest
}
type CheckAllImagesOutput ¶
type CheckAllImagesOutput struct {
Body base.ApiResponse[imageupdate.BatchResponse]
}
type CheckImageUpdateByIDOutput ¶
type CheckImageUpdateByIDOutput struct {
Body base.ApiResponse[imageupdate.Response]
}
type CheckImageUpdateInput ¶
type CheckImageUpdateOutput ¶
type CheckImageUpdateOutput struct {
Body base.ApiResponse[imageupdate.Response]
}
type CheckMultipleImagesInput ¶
type CheckMultipleImagesInput struct {
EnvironmentID string `path:"id" doc:"Environment ID"`
Body imageupdate.BatchImageUpdateRequest
}
type CheckMultipleImagesOutput ¶
type CheckMultipleImagesOutput struct {
Body base.ApiResponse[imageupdate.BatchResponse]
}
type Dependencies ¶
type Dependencies struct {
GetUpdateInfoByImageRefs func(context.Context, []string) (map[string]*imagetypes.UpdateInfo, error)
}
type GetUpdateInfoByRefsOutput ¶
type GetUpdateInfoByRefsOutput struct {
Body base.ApiResponse[map[string]*imagetypes.UpdateInfo]
}
type GetUpdateSummaryInput ¶
type GetUpdateSummaryInput struct {
EnvironmentID string `path:"id" doc:"Environment ID"`
}
type GetUpdateSummaryOutput ¶
type GetUpdateSummaryOutput struct {
Body base.ApiResponse[imageupdate.Summary]
}
type ImageParts ¶
type ImageUpdate ¶ added in v2.8.1
type ImageUpdateHandler ¶
type ImageUpdateHandler struct {
// contains filtered or unexported fields
}
func (*ImageUpdateHandler) CheckAllImages ¶
func (h *ImageUpdateHandler) CheckAllImages(ctx context.Context, input *CheckAllImagesInput) (*CheckAllImagesOutput, error)
func (*ImageUpdateHandler) CheckImageUpdate ¶
func (h *ImageUpdateHandler) CheckImageUpdate(ctx context.Context, input *CheckImageUpdateInput) (*CheckImageUpdateOutput, error)
func (*ImageUpdateHandler) CheckImageUpdateByID ¶
func (h *ImageUpdateHandler) CheckImageUpdateByID(ctx context.Context, input *CheckImageUpdateByIDInput) (*CheckImageUpdateByIDOutput, error)
func (*ImageUpdateHandler) CheckMultipleImages ¶
func (h *ImageUpdateHandler) CheckMultipleImages(ctx context.Context, input *CheckMultipleImagesInput) (*CheckMultipleImagesOutput, error)
func (*ImageUpdateHandler) GetUpdateInfoByRefs ¶
func (h *ImageUpdateHandler) GetUpdateInfoByRefs(ctx context.Context, input *GetUpdateInfoByRefsInput) (*GetUpdateInfoByRefsOutput, error)
func (*ImageUpdateHandler) GetUpdateSummary ¶
func (h *ImageUpdateHandler) GetUpdateSummary(ctx context.Context, input *GetUpdateSummaryInput) (*GetUpdateSummaryOutput, error)
type ImageUpdateRecord ¶ added in v2.8.1
type ImageUpdateRecord struct {
database.BaseModel
CheckTime time.Time `json:"checkTime" gorm:"column:check_time"`
LatestVersion *string `json:"latestVersion,omitempty" gorm:"column:latest_version"`
CurrentDigest *string `json:"currentDigest,omitempty" gorm:"column:current_digest"`
LatestDigest *string `json:"latestDigest,omitempty" gorm:"column:latest_digest"`
LastError *string `json:"lastError,omitempty" gorm:"column:last_error"`
AuthMethod *string `json:"authMethod,omitempty" gorm:"column:auth_method"`
AuthUsername *string `json:"authUsername,omitempty" gorm:"column:auth_username"`
AuthRegistry *string `json:"authRegistry,omitempty" gorm:"column:auth_registry"`
ID string `json:"id" gorm:"primaryKey;type:text"`
Repository string `json:"repository"`
Tag string `json:"tag"`
UpdateType string `json:"updateType" gorm:"column:update_type"`
CurrentVersion string `json:"currentVersion" gorm:"column:current_version"`
ResponseTimeMs int `json:"responseTimeMs" gorm:"column:response_time_ms"`
HasUpdate bool `json:"hasUpdate" gorm:"column:has_update"`
UsedCredential bool `json:"usedCredential,omitempty" gorm:"column:used_credential"`
NotificationSent bool `json:"notificationSent" gorm:"column:notification_sent;default:false"`
}
func (*ImageUpdateRecord) IsDigestUpdate ¶ added in v2.8.1
func (i *ImageUpdateRecord) IsDigestUpdate() bool
func (*ImageUpdateRecord) IsTagUpdate ¶ added in v2.8.1
func (i *ImageUpdateRecord) IsTagUpdate() bool
func (*ImageUpdateRecord) NeedsUpdate ¶ added in v2.8.1
func (i *ImageUpdateRecord) NeedsUpdate() bool
func (*ImageUpdateRecord) TableName ¶ added in v2.8.1
func (i *ImageUpdateRecord) TableName() string
type ImageUpdateService ¶
type ImageUpdateService struct {
// contains filtered or unexported fields
}
func NewImageUpdateService ¶
func NewImageUpdateService(db *database.DB, settingsService *settings.SettingsService, registryService *registry.ContainerRegistryService, dockerService *docker.DockerClientService, eventService *event.EventService, notificationService *notification.NotificationService, activityService *activity.ActivityService) *ImageUpdateService
func (*ImageUpdateService) CheckAllImages ¶
func (s *ImageUpdateService) CheckAllImages(ctx context.Context, limit int, externalCreds []containerregistry.Credential) (map[string]*imageupdate.Response, error)
func (*ImageUpdateService) CheckImageUpdate ¶
func (s *ImageUpdateService) CheckImageUpdate(ctx context.Context, imageRef string) (*imageupdate.Response, error)
func (*ImageUpdateService) CheckImageUpdateByID ¶
func (s *ImageUpdateService) CheckImageUpdateByID(ctx context.Context, imageID string) (*imageupdate.Response, error)
func (*ImageUpdateService) CheckMultipleImages ¶
func (s *ImageUpdateService) CheckMultipleImages(ctx context.Context, imageRefs []string, externalCreds []containerregistry.Credential) (results map[string]*imageupdate.Response, err error)
func (*ImageUpdateService) CleanupOrphanedRecords ¶
func (s *ImageUpdateService) CleanupOrphanedRecords(ctx context.Context) error
func (*ImageUpdateService) GetUnnotifiedUpdates ¶
func (s *ImageUpdateService) GetUnnotifiedUpdates(ctx context.Context) (map[string]*ImageUpdateRecord, error)
GetUnnotifiedUpdates returns a map of image IDs that have updates but haven't been notified yet
func (*ImageUpdateService) GetUpdateSummary ¶
func (s *ImageUpdateService) GetUpdateSummary(ctx context.Context) (*imageupdate.Summary, error)
func (*ImageUpdateService) MarkImageRefUpToDateAfterPull ¶
func (s *ImageUpdateService) MarkImageRefUpToDateAfterPull(ctx context.Context, imageRef string) error
func (*ImageUpdateService) MarkUpdatesAsNotified ¶
func (s *ImageUpdateService) MarkUpdatesAsNotified(ctx context.Context, imageIDs []string) error
MarkUpdatesAsNotified marks the given image IDs as having been notified
func (*ImageUpdateService) SendBatchUpdateNotifications ¶
func (s *ImageUpdateService) SendBatchUpdateNotifications(ctx context.Context)
func (*ImageUpdateService) StoredUpdateByImageID ¶
func (s *ImageUpdateService) StoredUpdateByImageID(ctx context.Context, imageID string) (*ImageUpdateRecord, bool, error)
type Module ¶
type Module struct {
// contains filtered or unexported fields
}
func New ¶
func New(service *ImageUpdateService, deps Dependencies) *Module
func (*Module) RegisterRoutes ¶
func (m *Module) RegisterRoutes(api huma.API, appCtx handlerutil.ActivityAppContext)
func (*Module) Service ¶
func (m *Module) Service() *ImageUpdateService
Click to show internal directories.
Click to hide internal directories.