TenantRestoreService
in package
Table of Contents
Constants
- JOB_TYPE : mixed = 'tenant_restore'
- MODE_CROSS_TENANT : mixed = 'cross-tenant'
- MODE_SAME_TENANT : mixed = 'same-tenant'
Properties
- $encryptor : TenantBackupEncryptor
- $jsonRestorer : TenantBackupRestorerInterface
- $legacyPgDumpRestorer : TenantBackupRestorerInterface|null
- $platformConnection : Connection
- $secretStore : SecretStoreInterface
- $storage : TenantBackupStorageInterface
Methods
- __construct() : mixed
- restoreTenantBackup() : TenantRestoreResult
- assertCompleteBackup() : void
- assertExistingJob() : void
- assertMode() : void
- assertObjectUriMatchesSource() : void
- assertSafeSlug() : void
- assertSafeTenantDatabase() : void
- assertSafeUuid() : void
- assertTenantStillSuspended() : void
- findCompletedBackup() : array<string, mixed>
- findTenantById() : TenantMetadata
- findTenantBySlug() : TenantMetadata
- heartbeat() : void
- Keep long logical restores fresh in fleet-health monitoring.
- insertJob() : void
- lockBackupArchive() : bool
- markJobFailed() : void
- now() : DateTime
- restorerFor() : TenantBackupRestorerInterface
- Select the logical JSON restorer while retaining compatibility with encrypted pg_dump archives created before the managed format changed.
- scrubError() : string
- unlockBackupArchive() : void
Constants
JOB_TYPE
public
mixed
JOB_TYPE
= 'tenant_restore'
MODE_CROSS_TENANT
public
mixed
MODE_CROSS_TENANT
= 'cross-tenant'
MODE_SAME_TENANT
public
mixed
MODE_SAME_TENANT
= 'same-tenant'
Properties
$encryptor read-only
private
TenantBackupEncryptor
$encryptor
$jsonRestorer read-only
private
TenantBackupRestorerInterface
$jsonRestorer
$legacyPgDumpRestorer read-only
private
TenantBackupRestorerInterface|null
$legacyPgDumpRestorer
= null
$platformConnection read-only
private
Connection
$platformConnection
$secretStore read-only
private
SecretStoreInterface
$secretStore
$storage read-only
private
TenantBackupStorageInterface
$storage
Methods
__construct()
public
__construct(Connection $platformConnection, SecretStoreInterface $secretStore, TenantBackupStorageInterface $storage, TenantBackupEncryptor $encryptor, TenantBackupRestorerInterface $jsonRestorer[, TenantBackupRestorerInterface|null $legacyPgDumpRestorer = null ]) : mixed
Parameters
- $platformConnection : Connection
- $secretStore : SecretStoreInterface
- $storage : TenantBackupStorageInterface
- $encryptor : TenantBackupEncryptor
- $jsonRestorer : TenantBackupRestorerInterface
- $legacyPgDumpRestorer : TenantBackupRestorerInterface|null = null
restoreTenantBackup()
public
restoreTenantBackup(string $backupId, string $mode, string|null $targetTenantSlug, bool $confirmDestructive[, bool $dryRun = false ][, string|null $platformJobId = null ]) : TenantRestoreResult
Parameters
- $backupId : string
- $mode : string
- $targetTenantSlug : string|null
- $confirmDestructive : bool
- $dryRun : bool = false
- $platformJobId : string|null = null
Return values
TenantRestoreResultassertCompleteBackup()
private
assertCompleteBackup(array<string, mixed> $backup) : void
Parameters
- $backup : array<string, mixed>
-
Backup metadata row
assertExistingJob()
private
assertExistingJob(string $jobId) : void
Parameters
- $jobId : string
assertMode()
private
assertMode(string $mode) : void
Parameters
- $mode : string
assertObjectUriMatchesSource()
private
assertObjectUriMatchesSource(string $objectUri, TenantMetadata $sourceTenant) : void
Parameters
- $objectUri : string
- $sourceTenant : TenantMetadata
assertSafeSlug()
private
assertSafeSlug(string $slug) : void
Parameters
- $slug : string
assertSafeTenantDatabase()
private
assertSafeTenantDatabase(TenantMetadata $tenant, string $label) : void
Parameters
- $tenant : TenantMetadata
- $label : string
assertSafeUuid()
private
assertSafeUuid(string $value, string $label) : void
Parameters
- $value : string
- $label : string
assertTenantStillSuspended()
private
assertTenantStillSuspended(string $tenantId) : void
Parameters
- $tenantId : string
findCompletedBackup()
private
findCompletedBackup(string $backupId) : array<string, mixed>
Parameters
- $backupId : string
Return values
array<string, mixed>findTenantById()
private
findTenantById(string $tenantId) : TenantMetadata
Parameters
- $tenantId : string
Return values
TenantMetadatafindTenantBySlug()
private
findTenantBySlug(string $slug) : TenantMetadata
Parameters
- $slug : string
Return values
TenantMetadataheartbeat()
Keep long logical restores fresh in fleet-health monitoring.
private
heartbeat(string $jobId, array<string, mixed> $progress) : void
Parameters
- $jobId : string
- $progress : array<string, mixed>
insertJob()
private
insertJob(string $jobId, TenantMetadata $targetTenant, TenantMetadata $sourceTenant, string $backupId, string $mode, bool $dryRun, string $status) : void
Parameters
- $jobId : string
- $targetTenant : TenantMetadata
- $sourceTenant : TenantMetadata
- $backupId : string
- $mode : string
- $dryRun : bool
- $status : string
lockBackupArchive()
private
lockBackupArchive(string $backupId) : bool
Parameters
- $backupId : string
Return values
boolmarkJobFailed()
private
markJobFailed(string $jobId, Throwable $e) : void
Parameters
- $jobId : string
- $e : Throwable
now()
private
now() : DateTime
Return values
DateTimerestorerFor()
Select the logical JSON restorer while retaining compatibility with encrypted pg_dump archives created before the managed format changed.
private
restorerFor(array<string, mixed> $backup) : TenantBackupRestorerInterface
Parameters
- $backup : array<string, mixed>
Return values
TenantBackupRestorerInterfacescrubError()
private
scrubError(string $message) : string
Parameters
- $message : string
Return values
stringunlockBackupArchive()
private
unlockBackupArchive(string $backupId) : void
Parameters
- $backupId : string