Files
cloudron-box/migrations/20190503170326-settings-get-license.js
T

46 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-05-03 10:26:24 -07:00
'use strict';
2025-08-14 11:17:38 +05:30
const fs = require('node:fs'),
2025-07-10 10:55:52 +02:00
superagent = require('@cloudron/superagent');
2019-05-03 10:26:24 -07:00
exports.up = async function(db) {
2019-05-03 10:26:24 -07:00
if (!fs.existsSync('/etc/cloudron/cloudron.conf')) {
console.log('Unable to locate cloudron.conf');
return;
2019-05-03 10:26:24 -07:00
}
const config = JSON.parse(fs.readFileSync('/etc/cloudron/cloudron.conf', 'utf8'));
const results = await db.all('SELECT * FROM settings WHERE name="appstore_config"');
2019-05-03 10:26:24 -07:00
if (results.length === 0) {
console.log('No appstore config, skipping license migration');
return;
}
2019-05-03 10:26:24 -07:00
console.log('Downloading license');
2019-05-03 10:26:24 -07:00
const appstoreConfig = JSON.parse(results[0].value);
2019-05-06 02:18:34 -07:00
const response = await superagent.get(`${config.apiServerOrigin}/api/v1/cloudron_license`)
2019-05-07 21:04:09 -07:00
.query({ accessToken: appstoreConfig.token, cloudronId: appstoreConfig.cloudronId, provider: config.provider })
.timeout(30 * 1000);
if (response.status !== 200) throw new Error(`Bad status getting license: ${response.status} ${response.text}`);
if (!response.body.cloudronId || !response.body.licenseKey || !response.body.cloudronToken) throw new Error(`Bad response getting license: ${response.text}`);
console.log('Adding license', response.body);
await db.runSql('START TRANSACTION;');
await db.runSql('INSERT settings (name, value) VALUES(?, ?)', [ 'cloudron_id', response.body.cloudronId ]);
await db.runSql('INSERT settings (name, value) VALUES(?, ?)', [ 'license_key', response.body.licenseKey ]);
await db.runSql('INSERT settings (name, value) VALUES(?, ?)', [ 'cloudron_token', response.body.cloudronToken ]);
await db.runSql('DELETE FROM settings WHERE name=?', [ 'appstore_config' ]);
await db.runSql('COMMIT');
2019-05-03 10:26:24 -07:00
};
exports.down = function(db, callback) {
callback();
};