Files
cloudron-box/migrations/20250716070056-fixup-linode-objectstorage-settings.js
Girish Ramakrishnan 3dcc9ad844 print the region
2025-07-16 09:15:05 +02:00

36 lines
1.6 KiB
JavaScript

'use strict';
function s3like(provider) {
return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat'
|| provider === 'exoscale-sos' || provider === 'digitalocean-spaces' || provider === 'hetzner-objectstorage'
|| provider === 'scaleway-objectstorage' || provider === 'wasabi' || provider === 'backblaze-b2' || provider === 'cloudflare-r2'
|| provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'ionos-objectstorage'
|| provider === 'vultr-objectstorage' || provider === 'upcloud-objectstorage' || provider === 'idrive-e2'
|| provider === 'contabo-objectstorage';
}
exports.up = async function (db) {
const result = await db.runSql('SELECT * FROM settings WHERE name=?', [ 'backup_storage' ]);
if (!result.length) return;
const storageConfig = JSON.parse(result[0].value);
if (!s3like(storageConfig.provider)) return;
if (storageConfig.endpoint && !storageConfig.endpoint.match(/^(http:|https:)\/\//)) {
console.log('migrating backup provider endpoint to https');
storageConfig.endpoint = `https://${storageConfig.endpoint}`;
}
if (storageConfig.provider === 'linode-objectstorage') { // in some old release, we didn't set the region correctly
const match = storageConfig.endpoint.match(/^https:\/\/(.*).linodeobjects.com$/);
storageConfig.region = match ? match[1] : storageConfig.region;
console.log('migrating backup region to', storageConfig.region);
}
await db.runSql('UPDATE settings SET value=? WHERE name=?', [ JSON.stringify(storageConfig), 'backup_storage']);
};
exports.down = async function (db) {
};