This commit is contained in:
+12
-2
@@ -156,7 +156,7 @@ function onlineBackupExpiration(exportedAt, retention) {
|
||||
return new Date(created.getTime() + seconds * 1000).toISOString();
|
||||
}
|
||||
|
||||
function createOnlineBackup(settings, appVersion, exportedAt = new Date().toISOString(), retention = DEFAULT_ONLINE_BACKUP_RETENTION) {
|
||||
function createOnlineBackup(settings, appVersion, exportedAt = new Date().toISOString(), retention = DEFAULT_ONLINE_BACKUP_RETENTION, recoveryPublicKey = null) {
|
||||
const normalizedRetention = normalizeOnlineBackupRetention(retention);
|
||||
const expiresInSeconds = ONLINE_BACKUP_RETENTION_SECONDS[normalizedRetention];
|
||||
const expiresAt = onlineBackupExpiration(exportedAt, normalizedRetention);
|
||||
@@ -192,7 +192,8 @@ function createOnlineBackup(settings, appVersion, exportedAt = new Date().toISOS
|
||||
id: parsed.id,
|
||||
blob: blobBytes.toString('base64url'),
|
||||
deleteVerifier,
|
||||
expiresInSeconds
|
||||
expiresInSeconds,
|
||||
...(recoveryPublicKey ? { recovery: require('./online-backup-recovery').wrapBackupKey(key, parsed.id, recoveryPublicKey) } : {})
|
||||
},
|
||||
expiresAt
|
||||
};
|
||||
@@ -228,6 +229,14 @@ function restoreOnlineBackup(key, blob) {
|
||||
}
|
||||
}
|
||||
|
||||
async function downloadRecoveryPublicKey(baseUrl = ONLINE_BACKUP_API_URL, options) {
|
||||
const { response, body } = await requestText(endpoint(baseUrl, '/v1/recovery-key'), { method: 'GET', headers: { accept: 'application/json' } }, options);
|
||||
if (response.status !== 200) throw new Error('Wiederherstellungsschlüssel des Sicherungsdienstes ist nicht verfügbar');
|
||||
const value = JSON.parse(body);
|
||||
require('./online-backup-recovery').recoveryPublicKey(value.publicKey);
|
||||
return value.publicKey;
|
||||
}
|
||||
|
||||
async function uploadOnlineBackup(record, baseUrl = ONLINE_BACKUP_API_URL, options) {
|
||||
const { response } = await requestText(endpoint(baseUrl, '/v1/backups'), {
|
||||
method: 'POST',
|
||||
@@ -277,6 +286,7 @@ module.exports = {
|
||||
createOnlineBackup,
|
||||
deleteOnlineBackup,
|
||||
downloadOnlineBackup,
|
||||
downloadRecoveryPublicKey,
|
||||
normalizeOnlineBackupRetention,
|
||||
onlineBackupExpiration,
|
||||
parseOnlineBackupKey,
|
||||
|
||||
Reference in New Issue
Block a user