ToolJet/server/migrations/1651056032052-CreatePlugins.ts

94 lines
2.2 KiB
TypeScript
Raw Normal View History

[Feature] Make plugins installable (#3069) * feat: add user avatar * update: @nest/platform-express from 8.0.0 to 8.4.4 * add avatar_id in login response * add user avatar upload in frontend * align cross divider with layout icons' * generate nest model - extensions * Add extensions module * Add extension to datasouce * add not implemented check * create extension * refactor * cleanup * fix tests * reduce the avatar size on homepage * poc: run js code from string * resolve conflicts * fix conflicts * add globals * add new route * add icon, manifest file upload * complete user flow * add flow for data queries * add dynamic manifest instead of local datasource types * add version attr * remove unused code * add version * rename extension(s) -> plugins(s) * add test connection method * feat: add marketplace listing page * Add install plugin cmd + missing attrs {name, repo, desc} to plugin * add missing icon * - Add npm workspaces for marketplace monorepo - Added cassandra datasource plugin - Created upload to s3 script - Created plugins.json entry file * install plugin from s3 bucket * cleanup * update pkg locks * fix icon render * cleanup * marketplace changes * ui changes * operations file load fix + revert vm2 * update module from string to 3.2.1 * load plugins.json from local file instead of remote * install plugin from local file if not production environment * add sqlite * feat: add plivo api plugin * exp: add heroku 22 stack * update assets include path * Revert "exp: add heroku 22 stack" This reverts commit a8926b36e116fb76cd3b6d0aa41778779c9273c8. * add integrations link * Add casl ability for plugin * load host from env else fallback to default * update imports * remove sqlite * typo * add marketplace flag to cli command * move ts and ncc to devDep * add hygen templates for marketplace * cli tree-node path fix * template indent fix * TOOLJET_URL -> MARKETPLACE_TOOLJET_URL * add tests * refactor: move to plugins.helper for get-service helper utility * fix; typo * update package-lock.json * review changes * remove a href * remove bg color + redirect issue due to href * add test url * fix crash on search * remove extra slash * feat: allow plugin to be installed from github repository * remove unwanted args from cli command * add repo attr while save * feat: add feature toggle for marketplace feature * fix: make default config as false * chore: remove hyperlink * fix: failing build * chore: update s3 url to point to prod * fix failing test * fix test * fix: test case * update module from string pkg * update env * fix test * fix test * add readme file * Update README.md Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2022-10-27 11:29:43 +00:00
import { MigrationInterface, QueryRunner, Table } from 'typeorm';
export class CreatePlugins1651056032052 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: 'plugins',
columns: [
{
name: 'id',
type: 'uuid',
isGenerated: true,
default: 'gen_random_uuid()',
isPrimary: true,
},
{
name: 'plugin_id',
type: 'varchar',
},
{
name: 'name',
type: 'varchar',
},
{
name: 'repo',
type: 'varchar',
},
{
name: 'description',
type: 'varchar',
},
{
name: 'version',
type: 'varchar',
},
{
name: 'index_file_id',
type: 'uuid',
},
{
name: 'operations_file_id',
type: 'uuid',
},
{
name: 'icon_file_id',
type: 'uuid',
},
{
name: 'manifest_file_id',
type: 'uuid',
},
{
name: 'created_at',
type: 'timestamp',
isNullable: true,
default: 'now()',
},
{
name: 'updated_at',
type: 'timestamp',
isNullable: true,
default: 'now()',
},
],
foreignKeys: [
{
referencedTableName: 'files',
referencedColumnNames: ['id'],
columnNames: ['index_file_id'],
},
{
referencedTableName: 'files',
referencedColumnNames: ['id'],
columnNames: ['operations_file_id'],
},
{
referencedTableName: 'files',
referencedColumnNames: ['id'],
columnNames: ['icon_file_id'],
},
{
referencedTableName: 'files',
referencedColumnNames: ['id'],
columnNames: ['manifest_file_id'],
},
],
}),
true
);
}
public async down(queryRunner: QueryRunner): Promise<void> {}
}