mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
fix: warning message when too old agent for storage encryption
This commit is contained in:
@@ -98,7 +98,7 @@ export async function handleDatabases(body: Body, agent: Agent, lastContact: Dat
|
|||||||
const storages = await getDatabaseStorageChannels(databaseCreated.id)
|
const storages = await getDatabaseStorageChannels(databaseCreated.id)
|
||||||
|
|
||||||
const entry = formatDatabase(databaseCreated, backupAction, restoreAction, urlBackup, storages, null, null);
|
const entry = formatDatabase(databaseCreated, backupAction, restoreAction, urlBackup, storages, null, null);
|
||||||
applyStorageEncryption(entry, backupAction, body.version, masterKey);
|
applyStorageEncryption(entry, backupAction, body.version, masterKey, agent.id);
|
||||||
databasesResponse.push(entry);
|
databasesResponse.push(entry);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -220,7 +220,7 @@ export async function handleDatabases(body: Body, agent: Agent, lastContact: Dat
|
|||||||
}
|
}
|
||||||
const storages = await getDatabaseStorageChannels(databaseUpdated.id)
|
const storages = await getDatabaseStorageChannels(databaseUpdated.id)
|
||||||
const entry = formatDatabase(databaseUpdated, backupAction, restoreAction, urlBackup, storages, urlMeta, backupSize);
|
const entry = formatDatabase(databaseUpdated, backupAction, restoreAction, urlBackup, storages, urlMeta, backupSize);
|
||||||
applyStorageEncryption(entry, backupAction, body.version, masterKey);
|
applyStorageEncryption(entry, backupAction, body.version, masterKey, agent.id);
|
||||||
databasesResponse.push(entry);
|
databasesResponse.push(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -294,11 +294,27 @@ function applyStorageEncryption(
|
|||||||
backupAction: boolean,
|
backupAction: boolean,
|
||||||
version: string | undefined,
|
version: string | undefined,
|
||||||
masterKey: Buffer | null,
|
masterKey: Buffer | null,
|
||||||
|
agentId: string,
|
||||||
): void {
|
): void {
|
||||||
if (!masterKey) return;
|
if (!masterKey) return;
|
||||||
if (!backupAction) return;
|
if (!backupAction) return;
|
||||||
if (!Array.isArray(entry.storages) || entry.storages.length === 0) return;
|
if (!Array.isArray(entry.storages) || entry.storages.length === 0) return;
|
||||||
if (!isAgentVersionAtLeast(version, MIN_AGENT_VERSION_STORAGE_ENC)) return;
|
if (!isAgentVersionAtLeast(version, MIN_AGENT_VERSION_STORAGE_ENC)) {
|
||||||
|
log.warn(
|
||||||
|
{
|
||||||
|
name: "applyStorageEncryption",
|
||||||
|
agentId,
|
||||||
|
agentVersion: version ?? "unknown",
|
||||||
|
requiredVersion: MIN_AGENT_VERSION_STORAGE_ENC,
|
||||||
|
},
|
||||||
|
`\n============================================================\n` +
|
||||||
|
` ⚠️ OUTDATED AGENT — BACKUP STORAGE SENT UNENCRYPTED\n` +
|
||||||
|
` Agent ${agentId} reports v${version ?? "unknown"} (< required v${MIN_AGENT_VERSION_STORAGE_ENC}).\n` +
|
||||||
|
` Update this agent to v${MIN_AGENT_VERSION_STORAGE_ENC}+ to encrypt storage credentials in transit.\n` +
|
||||||
|
`============================================================`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const ciphertext = encryptStorages(entry.storages, masterKey);
|
const ciphertext = encryptStorages(entry.storages, masterKey);
|
||||||
|
|||||||
Reference in New Issue
Block a user