From d46b60d92e7de8251e19f012b39da32dc06f477a Mon Sep 17 00:00:00 2001 From: Mert E Date: Fri, 19 Apr 2024 18:39:30 +0300 Subject: [PATCH] feat: extensions (#8303) * feat: extensions Signed-off-by: mertmit * chore: sync Signed-off-by: mertmit --------- Signed-off-by: mertmit --- .../settings/data-sources/EditBase.vue | 42 +- .../nc-gui/components/dlg/QuickImport.vue | 2 +- .../nc-gui/components/extensions/Details.vue | 110 +++ .../components/extensions/Extension.vue | 231 +++++ .../nc-gui/components/extensions/Market.vue | 72 ++ .../nc-gui/components/extensions/Pane.vue | 59 ++ .../nc-gui/components/extensions/Wrapper.vue | 18 + packages/nc-gui/components/general/Modal.vue | 4 +- .../components/smartsheet/Pagination.vue | 9 +- .../nc-gui/components/smartsheet/Topbar.vue | 13 + .../smartsheet/calendar/SideMenu.vue | 2 +- .../components/smartsheet/grid/index.vue | 2 +- .../nc-gui/components/tabs/Smartsheet.vue | 92 +- .../nc-gui/components/template/Editor.vue | 2 +- .../nc-gui/composables/useExtensionHelper.ts | 224 +++++ packages/nc-gui/composables/useExtensions.ts | 394 +++++++++ packages/nc-gui/lib/enums.ts | 1 + packages/nc-gui/store/workspace.ts | 29 +- packages/nc-gui/utils/baseCreateUtils.ts | 27 +- packages/nc-gui/utils/iconUtils.ts | 2 + packages/nocodb-sdk/src/lib/enums.ts | 4 + .../nocodb-sdk/src/lib/sqlUi/DatabricksUi.ts | 820 ++++++++++++++++++ .../nocodb-sdk/src/lib/sqlUi/SqlUiFactory.ts | 5 + .../controllers/extensions.controller.spec.ts | 21 + .../src/controllers/extensions.controller.ts | 80 ++ packages/nocodb/src/db/BaseModelSqlv2.ts | 18 +- .../src/db/formulav2/formulaQueryBuilderv2.ts | 26 + .../src/db/functionMappings/databricks.ts | 44 + packages/nocodb/src/db/mapFunctionName.ts | 4 + .../code/models/xc/ModelXcMetaDatabricks.ts | 509 +++++++++++ .../code/models/xc/ModelXcMetaFactory.ts | 3 + .../src/db/sql-migrator/lib/KnexMigratorv2.ts | 8 + packages/nocodb/src/helpers/PagedResponse.ts | 1 - packages/nocodb/src/helpers/columnHelpers.ts | 14 +- packages/nocodb/src/helpers/populateMeta.ts | 8 + packages/nocodb/src/helpers/syncMigration.ts | 3 +- packages/nocodb/src/meta/meta.service.ts | 3 + .../meta/migrations/XcMigrationSourcev2.ts | 4 + .../meta/migrations/v2/nc_045_extensions.ts | 30 + .../extract-ids/extract-ids.middleware.ts | 4 + packages/nocodb/src/models/Base.ts | 3 +- packages/nocodb/src/models/Extension.ts | 161 ++++ packages/nocodb/src/models/Source.ts | 10 +- packages/nocodb/src/models/index.ts | 1 + .../jobs/at-import/at-import.processor.ts | 7 +- .../jobs/jobs/export-import/import.service.ts | 3 +- .../source-create/source-create.processor.ts | 29 +- .../nocodb/src/modules/metas/metas.module.ts | 4 + packages/nocodb/src/schema/swagger-v2.json | 9 +- packages/nocodb/src/schema/swagger.json | 253 +++++- .../services/app-hooks/app-hooks.service.ts | 3 + .../nocodb/src/services/columns.service.ts | 10 +- .../src/services/extensions.service.spec.ts | 19 + .../nocodb/src/services/extensions.service.ts | 74 ++ .../nocodb/src/services/sources.service.ts | 39 +- .../nocodb/src/services/tables.service.ts | 13 + packages/nocodb/src/utils/acl.ts | 10 + packages/nocodb/src/utils/globals.ts | 3 + .../nocodb/src/utils/nc-config/constants.ts | 2 + 59 files changed, 3498 insertions(+), 99 deletions(-) create mode 100644 packages/nc-gui/components/extensions/Details.vue create mode 100644 packages/nc-gui/components/extensions/Extension.vue create mode 100644 packages/nc-gui/components/extensions/Market.vue create mode 100644 packages/nc-gui/components/extensions/Pane.vue create mode 100644 packages/nc-gui/components/extensions/Wrapper.vue create mode 100644 packages/nc-gui/composables/useExtensionHelper.ts create mode 100644 packages/nc-gui/composables/useExtensions.ts create mode 100644 packages/nocodb-sdk/src/lib/sqlUi/DatabricksUi.ts create mode 100644 packages/nocodb/src/controllers/extensions.controller.spec.ts create mode 100644 packages/nocodb/src/controllers/extensions.controller.ts create mode 100644 packages/nocodb/src/db/functionMappings/databricks.ts create mode 100644 packages/nocodb/src/db/sql-mgr/code/models/xc/ModelXcMetaDatabricks.ts create mode 100644 packages/nocodb/src/meta/migrations/v2/nc_045_extensions.ts create mode 100644 packages/nocodb/src/models/Extension.ts create mode 100644 packages/nocodb/src/services/extensions.service.spec.ts create mode 100644 packages/nocodb/src/services/extensions.service.ts diff --git a/packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue b/packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue index 0798a35964..89fd347e01 100644 --- a/packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue +++ b/packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue @@ -8,8 +8,8 @@ import { ClientType, ProjectIdInj, SSLUsage, + clientTypes as _clientTypes, baseTitleValidator, - clientTypes, computed, extractSdkResponseErrorMsg, fieldRequiredValidator, @@ -57,6 +57,12 @@ const { t } = useI18n() const editingSource = ref(false) +const clientTypes = computed(() => { + return _clientTypes.filter((type) => { + return ![ClientType.SNOWFLAKE, ClientType.DATABRICKS].includes(type.value) + }) +}) + const formState = ref({ title: '', dataSource: { ...getDefaultConnectionConfig(ClientType.MYSQL) }, @@ -437,6 +443,40 @@ onMounted(async () => { + +