mostly because code is being autogenerated by all the AI stuff using this prefix. it's also used in the stack trace.
28 lines
1.1 KiB
JavaScript
28 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const async = require('async'),
|
|
mail = require('../src/mail.js'),
|
|
safe = require('safetydance'),
|
|
util = require('node:util');
|
|
|
|
// it seems some mail domains do not have dkimKey in the database for some reason because of some previous bad migration
|
|
exports.up = function(db, callback) {
|
|
db.all('SELECT * FROM mail', [ ], function (error, mailDomains) {
|
|
if (error) return callback(error);
|
|
|
|
async.eachSeries(mailDomains, function (mailDomain, iteratorDone) {
|
|
let dkimKey = safe.JSON.parse(mailDomain.dkimKeyJson);
|
|
if (dkimKey && dkimKey.publicKey && dkimKey.privateKey) return iteratorDone();
|
|
console.log(`${mailDomain.domain} has no dkim key in the database. generating a new one`);
|
|
util.callbackify(mail.generateDkimKey)(function (error, dkimKey) {
|
|
if (error) return iteratorDone(error);
|
|
db.runSql('UPDATE mail SET dkimKeyJson=? WHERE domain=?', [ JSON.stringify(dkimKey), mailDomain.domain ], iteratorDone);
|
|
});
|
|
}, callback);
|
|
});
|
|
};
|
|
|
|
exports.down = function(db, callback) {
|
|
callback();
|
|
};
|