MATIH Platform is in active MVP development. Documentation reflects current implementation status.
7. Tenant Lifecycle
Migrations
Overview

Tier Migrations

Tier migrations allow tenants to upgrade from one service tier to another. The migration process involves payment validation, infrastructure provisioning (for dedicated tier upgrades), data migration, verification, and optional rollback. The TierMigrationController at /api/v1/migrations orchestrates the full lifecycle.


Supported Migration Paths

FromToInfrastructure ChangeRequires SP Credentials
FREESTARTERShared clusterNo
FREEPROFESSIONALDedicated infrastructureYes
FREEENTERPRISEDedicated infrastructureYes
STARTERPROFESSIONALShared to dedicatedYes
STARTERENTERPRISEShared to dedicatedYes
PROFESSIONALENTERPRISEDedicated to dedicatedNo

Migration Lifecycle

INITIATED --> PAYMENT_VALIDATED --> CREDENTIALS_SUBMITTED --> PROVISIONING
     |                                                            |
     v                                                            v
  CANCELLED                                                  VERIFYING
                                                                  |
                                                          +-------+-------+
                                                          |               |
                                                     COMPLETED      ROLLING_BACK
                                                                         |
                                                                    ROLLED_BACK

Key Concepts

  • Migration Job: A TierMigrationJob entity tracks the full lifecycle of a tier change
  • Payment Validation: Platform admins confirm payment before provisioning begins
  • Service Principal Credentials: Required for dedicated-tier upgrades (Azure subscription access)
  • Verification Period: After provisioning completes, tenants verify functionality before finalizing
  • Rollback: During the verification period, tenants can roll back to the previous tier

Endpoints Summary

MethodPathDescription
POST/migrations/tenants/{tenantId}/upgrade-tierInitiate tier migration
GET/migrations/{jobId}Get migration job details
GET/migrations/tenants/{tenantId}/statusGet active migration status
GET/migrations/tenants/{tenantId}/historyGet migration history
POST/migrations/{jobId}/validate-paymentValidate payment (admin)
POST/migrations/{jobId}/submit-credentialsSubmit SP credentials
POST/migrations/{jobId}/complete-verificationFinalize migration
POST/migrations/{jobId}/rollbackRollback migration
POST/migrations/{jobId}/cancelCancel migration
GET/migrationsList active migrations (admin)
GET/migrations/statsMigration statistics (admin)

Source Files

FilePath
Controllercontrol-plane/tenant-service/src/main/java/com/matih/tenant/controller/TierMigrationController.java
Servicecontrol-plane/tenant-service/src/main/java/com/matih/tenant/service/migration/TierMigrationService.java
Entitycontrol-plane/tenant-service/src/main/java/com/matih/tenant/entity/TierMigrationJob.java