Documentation
¶
Index ¶
- Variables
- func CancelMigration(c echo.Context) error
- func CreateMigration(c echo.Context) error
- func DeleteMigration(c echo.Context) error
- func GetMigration(c echo.Context) error
- func GetTargetPlan(c echo.Context) error
- func GetValidation(c echo.Context) error
- func ListAllMigration(c echo.Context) error
- func ListMigration(c echo.Context) error
- func ListMigrationLogs(c echo.Context) error
- func Readyz(c echo.Context) error
- func RetryMigration(c echo.Context) error
- func StartValidation(c echo.Context) error
- type ReadyzResponse
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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.
Click to show internal directories.
Click to hide internal directories.