fix: migration to fix apps in invalid state (#29210)

pull/29229/head
Douglas Gubert 3 years ago committed by GitHub
parent 3343d2cf62
commit ba4b55a54d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      apps/meteor/server/startup/migrations/index.ts
  2. 35
      apps/meteor/server/startup/migrations/v294.ts

@ -27,4 +27,5 @@ import './v290';
import './v291';
import './v292';
import './v293';
import './v294';
import './xrun';

@ -0,0 +1,35 @@
import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage';
import type { AppSignatureManager } from '@rocket.chat/apps-engine/server/managers/AppSignatureManager';
import { Apps } from '../../../ee/server/apps';
import type { AppRealStorage } from '../../../ee/server/apps/storage';
import { addMigration } from '../../lib/migrations';
addMigration({
version: 294,
async up() {
Apps.initialize();
const sigMan = Apps.getManager()?.getSignatureManager() as AppSignatureManager;
const appsStorage = Apps.getStorage() as AppRealStorage;
const apps = await appsStorage.retrieveAll();
for await (const app of apps.values()) {
if (app.installationSource && app.signature) {
continue;
}
const updatedApp = {
...app,
migrated: true,
installationSource: 'marketplaceInfo' in app ? 'marketplace' : 'private',
} as IAppStorageItem;
await appsStorage.update({
...updatedApp,
signature: await sigMan.signApp(updatedApp),
});
}
},
});
Loading…
Cancel
Save