TenantBackupService
in package
Table of Contents
Constants
- BACKUP_TYPE : mixed = 'json'
- JOB_TYPE : mixed = 'tenant_backup'
- LEGACY_BACKUP_TYPE : mixed = 'kmpbackup_json'
Properties
- $dumper : TenantBackupDumperInterface
- $encryptor : TenantBackupEncryptor
- $platformConnection : Connection
- $secretStore : SecretStoreInterface
- $storage : TenantBackupStorageInterface
Methods
- __construct() : mixed
- backupTenant() : TenantBackupResult
- importArchiveAsBackup() : TenantBackupResult
- Record an existing logical archive (e.g. a decrypted legacy .kmpbackup) as a managed, envelope-encrypted tenant backup.
- assertSafeSlug() : void
- findTenant() : TenantMetadata
- insertBackup() : void
- kekVersion() : string
- now() : DateTime
- prepareJob() : void
- runManagedBackup() : TenantBackupResult
- Shared managed-backup pipeline: job + backup rows, payload production, envelope encryption, object storage, and status bookkeeping.
- scrubError() : string
Constants
BACKUP_TYPE
public
mixed
BACKUP_TYPE
= 'json'
JOB_TYPE
public
mixed
JOB_TYPE
= 'tenant_backup'
LEGACY_BACKUP_TYPE
public
mixed
LEGACY_BACKUP_TYPE
= 'kmpbackup_json'
Properties
$dumper read-only
private
TenantBackupDumperInterface
$dumper
$encryptor read-only
private
TenantBackupEncryptor
$encryptor
$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, TenantBackupDumperInterface $dumper, TenantBackupEncryptor $encryptor, TenantBackupStorageInterface $storage) : mixed
Parameters
- $platformConnection : Connection
- $secretStore : SecretStoreInterface
- $dumper : TenantBackupDumperInterface
- $encryptor : TenantBackupEncryptor
- $storage : TenantBackupStorageInterface
backupTenant()
public
backupTenant(string $slug[, int $retentionDays = 30 ][, string|null $platformJobId = null ]) : TenantBackupResult
Parameters
- $slug : string
- $retentionDays : int = 30
- $platformJobId : string|null = null
Return values
TenantBackupResultimportArchiveAsBackup()
Record an existing logical archive (e.g. a decrypted legacy .kmpbackup) as a managed, envelope-encrypted tenant backup.
public
importArchiveAsBackup(string $slug, string $logicalArchive, int $retentionDays[, array<string, mixed> $provenance = [] ]) : TenantBackupResult
The archive becomes a normal json backup row, so download, restore,
retention, and recovery-key export all work unchanged.
Parameters
- $slug : string
- $logicalArchive : string
- $retentionDays : int
- $provenance : array<string, mixed> = []
-
Extra retention_policy metadata
Return values
TenantBackupResultassertSafeSlug()
private
assertSafeSlug(string $slug) : void
Parameters
- $slug : string
findTenant()
private
findTenant(string $slug) : TenantMetadata
Parameters
- $slug : string
Return values
TenantMetadatainsertBackup()
private
insertBackup(string $backupId, string $jobId, TenantMetadata $tenant, string $kekName, string $kekVersion, int $retentionDays, DateTime $now[, array<string, mixed> $retentionPolicyExtra = [] ]) : void
Parameters
- $backupId : string
- $jobId : string
- $tenant : TenantMetadata
- $kekName : string
- $kekVersion : string
- $retentionDays : int
- $now : DateTime
- $retentionPolicyExtra : array<string, mixed> = []
-
Extra retention_policy metadata
kekVersion()
private
kekVersion(string $kekName) : string
Parameters
- $kekName : string
Return values
stringnow()
private
now() : DateTime
Return values
DateTimeprepareJob()
private
prepareJob(string $jobId, string $slug, DateTime $now, bool $existing) : void
Parameters
- $jobId : string
- $slug : string
- $now : DateTime
- $existing : bool
runManagedBackup()
Shared managed-backup pipeline: job + backup rows, payload production, envelope encryption, object storage, and status bookkeeping.
private
runManagedBackup(string $slug, int $retentionDays, string|null $platformJobId, callable(TenantMetadata, string): void $producePayload, array<string, mixed> $retentionPolicyExtra) : TenantBackupResult
Parameters
- $slug : string
- $retentionDays : int
- $platformJobId : string|null
- $producePayload : callable(TenantMetadata, string): void
-
Writes the raw archive to the given path
- $retentionPolicyExtra : array<string, mixed>
-
Extra retention_policy metadata
Return values
TenantBackupResultscrubError()
private
scrubError(string $message) : string
Parameters
- $message : string