The definition of a transport that handles sending and retrieving backup data.

interface BackupTransportInterface {
    deleteData: (
        backup: BackupEntity,
        resource: BackupResourceEntity,
    ) => void | Promise<void>;
    name: string;
    resolveBackups: (
        existingEntities: BackupEntity[],
    ) => BackupEntity[] | Promise<BackupEntity[]>;
    retrieveData: (
        backup: BackupEntity,
        resource: BackupResourceEntity,
    ) => Readable | Promise<Readable>;
    storeData: (
        data: Readable,
        backup: BackupEntity,
        resource: BackupResourceEntity,
    ) => void | Promise<void>;
}

Implemented by

Properties

deleteData: (
    backup: BackupEntity,
    resource: BackupResourceEntity,
) => void | Promise<void>

Deletes the backup data of the given resource.

name: string

The name of the transport. Is used to resolve the transport when restoring backups, so this should not change.

resolveBackups: (
    existingEntities: BackupEntity[],
) => BackupEntity[] | Promise<BackupEntity[]>

Resolves all backups that have data stored over this transport.

retrieveData: (
    backup: BackupEntity,
    resource: BackupResourceEntity,
) => Readable | Promise<Readable>

Retrieves the backup data for the given resource.

storeData: (
    data: Readable,
    backup: BackupEntity,
    resource: BackupResourceEntity,
) => void | Promise<void>

Stores the given data somewhere.