controller

package
v0.0.0-...-59d38ae Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2026 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var IsReady bool

IsReady is set to true after all initialisation steps complete. The /readyz handler returns 503 until this flag is set.

Functions

func CancelMigration

func CancelMigration(c echo.Context) error

CancelMigration godoc

@Summary		Cancel a running migration
@Description	Signals the running migration to stop after the current item finishes. Returns 404 if the migration is not currently running.
@Tags			migration
@Produce		json
@Param			migrationId	path		string	true	"Migration ID"
@Success		200			{object}	model.ApiResponse[model.Migration]
@Failure		404			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId}/cancel [post]

func CreateMigration

func CreateMigration(c echo.Context) error

CreateMigration godoc

@Summary		Create and start a migration
@Description	Creates a Migration record from the given plan and immediately starts execution asynchronously.
@Tags			migration
@Accept			json
@Produce		json
@Param			body	body		model.CreateMigrationReq				true	"Migration creation request"
@Success		201		{object}	model.ApiResponse[model.Migration]
@Failure		400		{object}	model.ApiResponse[any]
@Failure		500		{object}	model.ApiResponse[any]
@Router			/centipede/migration [post]

func DeleteMigration

func DeleteMigration(c echo.Context) error

DeleteMigration godoc

@Summary		Delete a migration
@Description	Deletes a migration record. Returns 409 if the migration is currently running — cancel it first.
@Tags			migration
@Produce		json
@Param			migrationId	path	string	true	"Migration ID"
@Success		204
@Failure		404	{object}	model.ApiResponse[any]
@Failure		409	{object}	model.ApiResponse[any]
@Failure		500	{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId} [delete]

func GetMigration

func GetMigration(c echo.Context) error

GetMigration godoc

@Summary		Get a single migration
@Description	Returns the Migration record for the given ID.
@Tags			migration
@Produce		json
@Param			migrationId	path		string	true	"Migration ID"
@Success		200			{object}	model.ApiResponse[model.Migration]
@Failure		404			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId} [get]

func GetTargetPlan

func GetTargetPlan(c echo.Context) error

GetTargetPlan godoc

@Summary		Analyse target migration plan
@Description	Validates source/destination connections, checks DBMS compatibility and version, and returns a TargetDataMigrationModel ready for CreateMigration.
@Tags			plan
@Accept			json
@Produce		json
@Param			body	body		model.TargetPlanReq									true	"Target plan request"
@Success		200		{object}	model.ApiResponse[targetmodel.TargetDataMigrationModel]
@Failure		400		{object}	model.ApiResponse[any]
@Failure		500		{object}	model.ApiResponse[any]
@Router			/centipede/plans/target [post]

func GetValidation

func GetValidation(c echo.Context) error

GetValidation godoc

@Summary		Get validation result for a migration
@Description	Returns the current validation status, summary message, and per-item detail list for the given migration.
@Tags			validation
@Produce		json
@Param			migrationId	path		string	true	"Migration ID"
@Success		200			{object}	model.ApiResponse[model.ValidationResultResponse]
@Failure		404			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId}/validation [get]

func ListAllMigration

func ListAllMigration(c echo.Context) error

ListAllMigration godoc

@Summary		List all migrations without pagination
@Description	Returns every matching migration summary ordered by created_at DESC.
@Description	The response carries planSummary (unit counts per category) in place of the plan itself.
@Description	When none of dateFrom, dateTo and lastDays is given, the last 7 calendar days are applied and the response message says so; pass lastDays=0 to lift the limit.
@Description	Date filters compare against created_at and are interpreted in the server's local time zone.
@Tags			migration
@Produce		json
@Param			status		query		string	false	"Filter by status (pending|running|completed|failed|cancelled)"
@Param			dateFrom	query		string	false	"Inclusive lower bound on created_at (yyyy-mm-dd)"
@Param			dateTo		query		string	false	"Inclusive upper bound on created_at (yyyy-mm-dd)"
@Param			lastDays	query		int		false	"Last N calendar days including today (0-3650; 0 means no limit, default 7). Cannot be combined with dateFrom or dateTo"
@Success		200			{object}	model.ApiResponse[[]model.MigrationSummary]
@Failure		400			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/all [get]

func ListMigration

func ListMigration(c echo.Context) error

ListMigration godoc

@Summary		List migrations (paginated)
@Description	Returns a paginated list of migration summaries ordered by created_at DESC.
@Description	The response carries planSummary (unit counts per category) in place of the plan itself.
@Description	Date filters compare against created_at and are interpreted in the server's local time zone.
@Description	dateFrom and dateTo may each be used alone for an open-ended range; dateTo includes its own day.
@Tags			migration
@Produce		json
@Param			status		query		string	false	"Filter by status (pending|running|completed|failed|cancelled)"
@Param			dateFrom	query		string	false	"Inclusive lower bound on created_at (yyyy-mm-dd)"
@Param			dateTo		query		string	false	"Inclusive upper bound on created_at (yyyy-mm-dd)"
@Param			lastDays	query		int		false	"Last N calendar days including today (0-3650; 0 means no limit). Cannot be combined with dateFrom or dateTo"
@Param			page		query		int		false	"Page number (default 1)"
@Param			pageSize	query		int		false	"Page size (default 20, max 100)"
@Success		200			{object}	model.ApiResponse[model.ListResponse[model.MigrationSummary]]
@Failure		400			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration [get]

func ListMigrationLogs

func ListMigrationLogs(c echo.Context) error

ListMigrationLogs godoc

@Summary		List logs for a migration
@Description	Returns paginated MigrationLog entries for the given migration ID, optionally filtered by status.
@Tags			migration
@Produce		json
@Param			migrationId	path		string	true	"Migration ID"
@Param			status		query		string	false	"Filter by status (success|failed|skipped)"
@Param			page		query		int		false	"Page number (default 1)"
@Param			pageSize	query		int		false	"Page size (default 20, max 100)"
@Success		200			{object}	model.ApiResponse[model.ListResponse[model.MigrationLog]]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId}/logs [get]

func Readyz

func Readyz(c echo.Context) error

Readyz godoc

@Summary	Server readiness check
@Tags		utility
@Produce	json
@Success	200	{object}	model.ApiResponse[ReadyzResponse]
@Failure	503	{object}	model.ApiResponse[any]
@Router		/centipede/readyz [get]

func RetryMigration

func RetryMigration(c echo.Context) error

RetryMigration godoc

@Summary		Retry a failed or cancelled migration
@Description	Creates a new Migration that re-runs items from the original according to retryMode. DBMS destination tables are DROP-ped before re-execution.
@Tags			migration
@Accept			json
@Produce		json
@Param			migrationId	path		string			true	"Original Migration ID"
@Param			body		body		model.RetryReq	false	"Retry options (retryMode: partial|full, default: partial)"
@Success		201			{object}	model.ApiResponse[model.RetryResponse]
@Failure		400			{object}	model.ApiResponse[any]
@Failure		404			{object}	model.ApiResponse[any]
@Failure		409			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId}/retry [post]

func StartValidation

func StartValidation(c echo.Context) error

StartValidation godoc

@Summary		Start validation for a completed migration
@Description	Validates that the destination data matches the source after a completed migration. Returns 400 if migration is not completed or the mode is unknown, 409 if validation is already running.
@Description	The optional body's mode decides how filesystem items are compared: "quick" (default) compares size and modification time only, "checksum" hashes every migrated file on both hosts. Object storage, databases and cross-storage items (path and size) are compared one way whatever it says. While the validation runs, GET reports its progress in validationMessage.
@Tags			validation
@Accept			json
@Produce		json
@Param			migrationId	path		string							true	"Migration ID"
@Param			request		body		model.StartValidationRequest	false	"Validation options"
@Success		202			{object}	model.ApiResponse[model.SimpleMessageResponse]
@Failure		400			{object}	model.ApiResponse[any]
@Failure		404			{object}	model.ApiResponse[any]
@Failure		409			{object}	model.ApiResponse[any]
@Failure		500			{object}	model.ApiResponse[any]
@Router			/centipede/migration/{migrationId}/validation [post]

Types

type ReadyzResponse

type ReadyzResponse struct {
	Status string `json:"status"`
}

ReadyzResponse is the data payload of the /readyz response.

Jump to

Keyboard shortcuts

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