diff --git a/server/bundles/io.cloudbeaver.server/schema/service.navigator.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.navigator.graphqls index 9843bc6373..94d57bdc49 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.navigator.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.navigator.graphqls @@ -83,9 +83,16 @@ type NavigatorNodeInfo { navigable: Boolean } +type DatabaseCatalog { + catalog: NavigatorNodeInfo! + schemaList: [ NavigatorNodeInfo! ]! +} + type DatabaseStructContainers { - catalogList: [ DatabaseObjectInfo! ]! - schemaList: [ DatabaseObjectInfo! ]! + catalogList: [ DatabaseCatalog! ]! + schemaList: [ NavigatorNodeInfo! ]! + supportsCatalogChange: Boolean! + supportsSchemaChange: Boolean! } #################################################### diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebCatalog.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebCatalog.java new file mode 100644 index 0000000000..f763be9e81 --- /dev/null +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebCatalog.java @@ -0,0 +1,52 @@ +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2021 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.cloudbeaver.service.navigator; + +import org.jkiss.code.NotNull; +import org.jkiss.dbeaver.Log; + +import java.util.ArrayList; +import java.util.List; + + +/** + * WebCatalog + */ +public class WebCatalog { + + private static final Log log = Log.getLog(WebCatalog.class); + + private WebNavigatorNodeInfo catalog; + private List schemaList = new ArrayList<>(); + + public WebCatalog(@NotNull WebNavigatorNodeInfo catalog) { + this.catalog = catalog; + } + + @NotNull + public WebNavigatorNodeInfo getCatalog() { + return catalog; + } + + public List getSchemaList() { + return schemaList; + } + + public void setSchemaList(List schemaList) { + this.schemaList = schemaList; + } +} diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebStructContainers.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebStructContainers.java index 7adf88c705..8737fdcc52 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebStructContainers.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebStructContainers.java @@ -21,6 +21,7 @@ import org.jkiss.dbeaver.Log; import java.util.ArrayList; import java.util.List; + /** * WebStructContainers */ @@ -28,22 +29,29 @@ public class WebStructContainers { private static final Log log = Log.getLog(WebStructContainers.class); - private List catalogList = new ArrayList<>(); - private List schemaList = new ArrayList<>(); + private List catalogList = new ArrayList<>(); + private List schemaList = new ArrayList<>(); + private boolean supportsCatalogChange = false; + private boolean supportsSchemaChange = false; - public List getCatalogList() { + public List getCatalogList() { return catalogList; } - - public void setCatalogList(List catalogList) { - this.catalogList = catalogList; - } - - public List getSchemaList() { + public List getSchemaList() { return schemaList; } - public void setSchemaList(List schemaList) { + public void setCatalogList(List catalogList) { + this.catalogList = catalogList; + } + public void setSchemaList(List schemaList) { this.schemaList = schemaList; } + + public void setSupportsCatalogChange(boolean support) { + this.supportsCatalogChange = support; + } + public void setSupportsSchemaChange(boolean support) { + this.supportsSchemaChange = support; + } } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java index 9082e0f98d..7f948c489a 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/impl/WebServiceNavigator.java @@ -21,11 +21,9 @@ import io.cloudbeaver.DBWebException; import io.cloudbeaver.model.WebCommandContext; import io.cloudbeaver.model.WebConnectionInfo; import io.cloudbeaver.model.session.WebSession; -import io.cloudbeaver.service.navigator.DBWServiceNavigator; -import io.cloudbeaver.service.navigator.WebDatabaseObjectInfo; -import io.cloudbeaver.service.navigator.WebNavigatorNodeInfo; -import io.cloudbeaver.service.navigator.WebStructContainers; +import io.cloudbeaver.service.navigator.*; import org.jkiss.code.NotNull; +import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.DBPDataSource; import org.jkiss.dbeaver.model.DBUtils; @@ -33,16 +31,17 @@ import org.jkiss.dbeaver.model.edit.DBECommandContext; import org.jkiss.dbeaver.model.edit.DBEObjectMaker; import org.jkiss.dbeaver.model.edit.DBEObjectRenamer; import org.jkiss.dbeaver.model.exec.DBCExecutionContext; -import org.jkiss.dbeaver.model.impl.struct.ContextDefaultObjectsReader; +import org.jkiss.dbeaver.model.exec.DBCExecutionContextDefaults; import org.jkiss.dbeaver.model.navigator.*; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.struct.DBSObject; +import org.jkiss.dbeaver.model.struct.DBSObjectContainer; import org.jkiss.dbeaver.model.struct.rdb.DBSCatalog; +import org.jkiss.dbeaver.model.struct.rdb.DBSSchema; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.utils.ArrayUtils; import org.jkiss.utils.CommonUtils; -import java.lang.reflect.InvocationTargetException; import java.util.*; /** @@ -170,32 +169,99 @@ public class WebServiceNavigator implements DBWServiceNavigator { @Override public WebStructContainers getStructContainers(WebConnectionInfo connection, String catalog) throws DBWebException { - DBPDataSource dataSource = connection.getDataSource(); + DBRProgressMonitor monitor = connection.getSession().getProgressMonitor(); DBCExecutionContext executionContext = DBUtils.getDefaultContext(connection.getDataSource(), false); + DBCExecutionContextDefaults contextDefaults = executionContext.getContextDefaults(); - ContextDefaultObjectsReader reader = new ContextDefaultObjectsReader(dataSource, executionContext); - reader.setReadNodes(false); - try { - reader.run(connection.getSession().getProgressMonitor()); - } catch (InvocationTargetException e) { - throw new DBWebException("Error reading context defaults", e.getTargetException()); - } catch (InterruptedException e) { - // ignore - } WebStructContainers structContainers = new WebStructContainers(); - if (!CommonUtils.isEmpty(reader.getObjectList())) { - for (DBSObject node : reader.getObjectList()) { - if (!dataSource.getContainer().getNavigatorSettings().isShowSystemObjects() && DBUtils.isSystemObject(node)) { - continue; + + structContainers.setSupportsCatalogChange(contextDefaults.supportsCatalogChange()); + structContainers.setSupportsSchemaChange(contextDefaults.supportsSchemaChange()); + + List nodes = this.getCatalogs( + monitor, + connection.getDataSourceContainer().getDataSource(), + contextDefaults + ); + + List catalogList = structContainers.getCatalogList(); + List schemaList = structContainers.getSchemaList(); + + for (DBSObject node : nodes) { + if (!dataSource.getContainer().getNavigatorSettings().isShowSystemObjects() && DBUtils.isSystemObject(node)) { + continue; + } + + if(node instanceof DBSCatalog) { + WebNavigatorNodeInfo catalogObjectInfo = this.getNodeFromObject(connection.getSession(), node); + + if (catalogObjectInfo != null) { + WebCatalog webCatalog = new WebCatalog(catalogObjectInfo); + + if (contextDefaults.supportsSchemaChange()) { + try { + List schemasList = webCatalog.getSchemaList(); + Collection objectsCollection = ((DBSObjectContainer) node).getChildren(monitor); + + for (DBSObject schemaObject : objectsCollection) { + if (!dataSource.getContainer().getNavigatorSettings().isShowSystemObjects() && DBUtils.isSystemObject(node)) { + continue; + } + if (schemaObject instanceof DBSSchema) { + WebNavigatorNodeInfo schemaNodeInfo = this.getNodeFromObject(connection.getSession(), schemaObject); + + if(schemaNodeInfo != null){ + schemasList.add(schemaNodeInfo); + } + } + } + } catch (DBException e) { +// throw new DBWebException("Error reading schema list", e); + // TODO: we need to log some message to console + } + } + + catalogList.add(webCatalog); + } + } else if(node instanceof DBSSchema && contextDefaults.supportsSchemaChange()) { + WebNavigatorNodeInfo schemaNodeInfo = this.getNodeFromObject(connection.getSession(), node); + + if(schemaNodeInfo != null){ + schemaList.add(schemaNodeInfo); } - List objectInfos = node instanceof DBSCatalog ? structContainers.getCatalogList() : structContainers.getSchemaList(); - objectInfos.add(new WebDatabaseObjectInfo(connection.getSession(), node)); } } return structContainers; } + protected List getCatalogs(DBRProgressMonitor monitor, DBSObject rootObject, DBCExecutionContextDefaults contextDefaults) throws DBWebException { + if (rootObject instanceof DBSObjectContainer) { + try { + Collection objectsCollection; + if (rootObject instanceof DBSCatalog && contextDefaults != null && !contextDefaults.supportsCatalogChange()) { + objectsCollection = Collections.singletonList(contextDefaults.getDefaultCatalog()); + } else { + objectsCollection = ((DBSObjectContainer) rootObject).getChildren(monitor); + } + return new ArrayList(objectsCollection); + } catch (DBException e) { + throw new DBWebException("Error reading context defaults", e); +// return Collections.emptyList(); + } + } + return Collections.emptyList(); + } + + @Nullable + protected WebNavigatorNodeInfo getNodeFromObject(WebSession session, DBSObject object){ + DBNModel navigatorModel = session.getNavigatorModel(); + DBRProgressMonitor monitor = session.getProgressMonitor(); + DBNNode node = navigatorModel.getNodeByObject(monitor, object, false); + + return node == null ? null : new WebNavigatorNodeInfo(session, node); + } + @Override public String renameNode(@NotNull WebSession session, @NotNull String nodePath, @NotNull String newName) throws DBWebException { try { diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLContextInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLContextInfo.java index 1208e9f7c4..c104f7c3e1 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLContextInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLContextInfo.java @@ -51,8 +51,6 @@ public class WebSQLContextInfo { private final WebSQLProcessor processor; private final String id; - private DBSCatalog defaultCatalog; - private String defaultSchema; private final Map resultInfoMap = new HashMap<>(); private final AtomicInteger resultId = new AtomicInteger(); @@ -70,78 +68,12 @@ public class WebSQLContextInfo { catalogName, null, schemaName); - setContextDefaults(catalogName, schemaName); } catch (DBException e) { log.error("Error settings "); } } } - private void setContextDefaults(String catalogName, String schemaName) throws DBCException { - DBPDataSource dataSource = this.processor.getConnection().getDataSource(); - - DBSObject defaultObject = null; - DBRProgressMonitor monitor = this.processor.getWebSession().getProgressMonitor(); - if (CommonUtils.isEmpty(catalogName) && CommonUtils.isEmpty(schemaName)) { - ContextDefaultObjectsReader defaultObjectsReader = new ContextDefaultObjectsReader( - dataSource, - DBUtils.getOrOpenDefaultContext(dataSource, false) - ); - defaultObjectsReader.setReadNodes(false); - try { - defaultObjectsReader.run(monitor); - } catch (InvocationTargetException e) { - log.error("Error reading context defaults", e.getTargetException()); - } catch (InterruptedException e) { - // ignore - } - - catalogName = defaultObjectsReader.getDefaultCatalogName(); - defaultObject = defaultObjectsReader.getDefaultObject(); - } else { - DBCExecutionContextDefaults contextDefaults = processor.getExecutionContext().getContextDefaults(); - if (contextDefaults != null) { - defaultCatalog = contextDefaults.getDefaultCatalog(); - } - } - - if (defaultObject instanceof DBSCatalog) { - this.defaultCatalog = (DBSCatalog) defaultObject; - } else if (defaultObject instanceof DBSSchema) { - this.defaultCatalog = DBUtils.getParentOfType(DBSCatalog.class, defaultObject); - this.defaultSchema = defaultObject.getName(); - } else { - if (defaultObject == null && (!CommonUtils.isEmpty(catalogName) || !CommonUtils.isEmpty(schemaName))) { - String childObjectName = CommonUtils.toString(catalogName, schemaName); - DBSObjectContainer objectContainer = DBUtils.getAdapter(DBSObjectContainer.class, dataSource); - if (objectContainer != null) { - try { - DBSObject childObject = null; - if (schemaName != null && defaultCatalog != null) { - childObject = defaultCatalog.getChild(monitor, schemaName); - } else { - childObject = objectContainer.getChild(monitor, childObjectName); - } - if (childObject == null) { - log.debug("Can't find child '" + childObjectName + "'"); - } else if (childObject instanceof DBSCatalog) { - defaultCatalog = (DBSCatalog) childObject; - } else if (childObject instanceof DBSSchema) { - this.defaultCatalog = DBUtils.getParentOfType(DBSCatalog.class, childObject); - this.defaultSchema = childObject.getName(); - } - } catch (DBException e) { - log.error("Error reading default object '" + childObjectName + "'", e); - } - } - } - } - - if (defaultSchema == null && schemaName != null) { - defaultSchema = schemaName; - } - } - public WebSQLProcessor getProcessor() { return processor; } @@ -155,18 +87,38 @@ public class WebSQLContextInfo { } public String getDefaultCatalog() { - return defaultCatalog == null ? null : defaultCatalog.getName(); + DBCExecutionContextDefaults contextDefaults = processor.getExecutionContext().getContextDefaults(); + + if(contextDefaults != null) { + DBSCatalog catalog = contextDefaults.getDefaultCatalog(); + + return catalog == null ? null : catalog.getName(); + } + + return null; + } + + @WebAction + public String getDefaultSchema() { + DBCExecutionContextDefaults contextDefaults = processor.getExecutionContext().getContextDefaults(); + + if(contextDefaults != null) { + DBSSchema schema = contextDefaults.getDefaultSchema(); + + return schema == null ? null : schema.getName(); + } + + return null; } public void setDefaults(String catalogName, String schemaName) throws DBWebException, DBCException { - String oldCatalogName = defaultCatalog == null ? null : defaultCatalog.getName(); - setContextDefaults(catalogName, schemaName); + String oldCatalogName = this.getDefaultCatalog(); try { DBExecUtils.setExecutionContextDefaults( processor.getWebSession().getProgressMonitor(), processor.getConnection().getDataSource(), processor.getExecutionContext(), - defaultCatalog == null ? null : defaultCatalog.getName(), + catalogName, oldCatalogName, schemaName); } catch (DBException e) { @@ -174,26 +126,6 @@ public class WebSQLContextInfo { } } - @WebAction - public String getDefaultSchema() { - if (defaultSchema == null) { - try { - DBCExecutionContext defaultContext = DBUtils.getOrOpenDefaultContext( - defaultCatalog != null ? defaultCatalog : processor.getConnection().getDataSource(), false); - DBSObject ao = DBUtils.getActiveInstanceObject(defaultContext); - if (ao instanceof DBSSchema) { - defaultSchema = ao.getName(); - } else { - defaultSchema = ""; - } - } catch (DBCException e) { - log.error(e); - return null; - } - } - return CommonUtils.isEmpty(defaultSchema) ? null : defaultSchema; - } - @NotNull public WebSQLResultsInfo saveResult(@NotNull DBSDataContainer dataContainer, @NotNull DBDAttributeBinding[] attributes) { WebSQLResultsInfo resultInfo = new WebSQLResultsInfo( diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java index 3e859560f1..bbe24fbd4a 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java @@ -64,8 +64,6 @@ public class WebSQLProcessor { private final SQLRuleManager ruleManager; private final Map contexts = new LinkedHashMap<>(); - private AtomicInteger contextId = new AtomicInteger(); - WebSQLProcessor(@NotNull WebSession webSession, @NotNull WebConnectionInfo connection) { this.webSession = webSession; this.connection = connection; @@ -110,10 +108,10 @@ public class WebSQLProcessor { @NotNull public WebSQLContextInfo createContext(String defaultCatalog, String defaultSchema) throws DBCException { - String contextId = String.valueOf(this.contextId.incrementAndGet()); - WebSQLContextInfo contextInfo = new WebSQLContextInfo(this, contextId, defaultCatalog, defaultSchema); + UUID uuid = UUID.randomUUID(); + WebSQLContextInfo contextInfo = new WebSQLContextInfo(this, uuid.toString(), defaultCatalog, defaultSchema); synchronized (contexts) { - contexts.put(contextId, contextInfo); + contexts.put(uuid.toString(), contextInfo); } return contextInfo; } diff --git a/server/product/web-server/CloudbeaverServer.product.launch b/server/product/web-server/CloudbeaverServer.product.launch index bb1cf93eca..a9f494220f 100644 --- a/server/product/web-server/CloudbeaverServer.product.launch +++ b/server/product/web-server/CloudbeaverServer.product.launch @@ -100,7 +100,7 @@ - + diff --git a/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSchemaManagerService.ts b/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSchemaManagerService.ts index 3fbcca17cf..0482ddf7f1 100644 --- a/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSchemaManagerService.ts +++ b/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSchemaManagerService.ts @@ -14,7 +14,7 @@ import { ObjectContainer, DBDriverResource, isConnectionProvider, IConnectionProvider, - isConnectionSetter, IConnectionSetter + isConnectionSetter, IConnectionSetter, IStructContainers } from '@cloudbeaver/core-connections'; import { Bootstrap, injectable } from '@cloudbeaver/core-di'; import { NotificationService } from '@cloudbeaver/core-events'; @@ -90,7 +90,7 @@ export class ConnectionSchemaManagerService extends Bootstrap { ); } - get objectContainerList(): ObjectContainer[] | undefined { + get objectContainerList(): IStructContainers | undefined { if (!this.currentConnectionId) { return; } diff --git a/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSelector/ConnectionSelectorController.ts b/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSelector/ConnectionSelectorController.ts index 1064071aa4..fa3ad1fb7e 100644 --- a/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSelector/ConnectionSelectorController.ts +++ b/webapp/packages/core-app/src/TopNavBar/ConnectionSchemaManager/ConnectionSelector/ConnectionSelectorController.ts @@ -66,6 +66,10 @@ export class ConnectionSelectorController { this.connectionSelectorService.currentObjectSchemaId !== undefined || this.connectionSelectorService.currentObjectCatalogId !== undefined ) + && ( + !!this.connectionSelectorService.objectContainerList?.supportsCatalogChange + || !!this.connectionSelectorService.objectContainerList?.supportsSchemaChange + ) ); } @@ -178,37 +182,62 @@ export class ConnectionSelectorController { return []; } - const list = this.connectionSelectorService.objectContainerList - .filter(item => !!item.name) - .map(item => { - const isCatalog = item.features?.includes(EObjectFeature.catalog); - const catalogName = isCatalog ? item.name : this.connectionSelectorService.currentObjectCatalogId; - const schemaName = !isCatalog ? item.name : this.connectionSelectorService.currentObjectSchemaId; + const items: IMenuItem[] = []; - const title = NodeManagerUtils.concatSchemaAndCatalog( - catalogName, - schemaName - ); + for (const schema of this.connectionSelectorService.objectContainerList.schemaList) { + if (!schema.name) { + continue; + } - const handler = isCatalog - ? () => this.connectionSelectorService.selectCatalog(catalogName!) - : () => this.connectionSelectorService.selectSchema(schemaName!); + const title = schema.name; - let icon = 'database'; + items.push({ + id: title, + title, + icon: 'schema_system', + onClick: async () => { + await this.connectionSelectorService.selectSchema(schema.name!); + }, + }); + } - if (catalogName && schemaName) { - icon = 'schema_system'; + for (const catalogData of this.connectionSelectorService.objectContainerList.catalogList) { + const catalog = catalogData.catalog; + if (!catalog.name) { + continue; + } + + if (catalogData.schemaList.length === 0) { + items.push({ + id: catalog.name, + title: catalog.name, + icon: 'database', + onClick: () => this.connectionSelectorService.selectCatalog(catalog.name!), + }); + } + + for (const schema of catalogData.schemaList) { + if (!schema.name) { + continue; } - const menuItem: IMenuItem = { + const title = NodeManagerUtils.concatSchemaAndCatalog( + catalog.name, + schema.name + ); + + items.push({ id: title, title, - icon, - onClick: handler, - }; - return menuItem; - }); + icon: 'schema_system', + onClick: async () => { + await this.connectionSelectorService.selectCatalog(catalog.name!); + await this.connectionSelectorService.selectSchema(schema.name!); + }, + }); + } + } - return list; + return items; } } diff --git a/webapp/packages/core-connections/src/ConnectionExecutionContext/ConnectionExecutionContextResource.ts b/webapp/packages/core-connections/src/ConnectionExecutionContext/ConnectionExecutionContextResource.ts index 51dc8094cc..c0f9fa9fa9 100644 --- a/webapp/packages/core-connections/src/ConnectionExecutionContext/ConnectionExecutionContextResource.ts +++ b/webapp/packages/core-connections/src/ConnectionExecutionContext/ConnectionExecutionContextResource.ts @@ -56,7 +56,8 @@ export class ConnectionExecutionContextResource extends CachedMapResource context.baseId) + )).map(context => context.id) ) ); } @@ -167,13 +170,13 @@ export class ConnectionExecutionContextResource extends CachedMapResource this.values.filter(context => context.connectionId === connectionId) - )).map(context => context.baseId) + )).map(context => context.id) ) ); } private updateContexts(...contexts: IConnectionExecutionContextInfo[]): ResourceKeyList { - const key = resourceKeyList(contexts.map(context => context.baseId)); + const key = resourceKeyList(contexts.map(context => context.id)); const oldContexts = this.get(key); this.set(key, oldContexts.map((context, i) => ({ ...context, ...contexts[i] }))); @@ -185,7 +188,6 @@ export class ConnectionExecutionContextResource extends CachedMapResource { const context = await this.connectionExecutionContextResource.create(connectionId, defaultCatalog, defaultSchema); - return this.contexts.get(context.baseId); + return this.contexts.get(context.id); } } diff --git a/webapp/packages/core-connections/src/ConnectionExecutionContext/IConnectionExecutionContextInfo.ts b/webapp/packages/core-connections/src/ConnectionExecutionContext/IConnectionExecutionContextInfo.ts index 492e838241..b51bb4d588 100644 --- a/webapp/packages/core-connections/src/ConnectionExecutionContext/IConnectionExecutionContextInfo.ts +++ b/webapp/packages/core-connections/src/ConnectionExecutionContext/IConnectionExecutionContextInfo.ts @@ -9,5 +9,4 @@ import type { SqlContextInfo } from '@cloudbeaver/core-sdk'; export interface IConnectionExecutionContextInfo extends SqlContextInfo { - baseId: string; } diff --git a/webapp/packages/core-connections/src/ConnectionsManagerService.ts b/webapp/packages/core-connections/src/ConnectionsManagerService.ts index 28126a0b03..abced2bedb 100644 --- a/webapp/packages/core-connections/src/ConnectionsManagerService.ts +++ b/webapp/packages/core-connections/src/ConnectionsManagerService.ts @@ -13,7 +13,7 @@ import { NotificationService } from '@cloudbeaver/core-events'; import { Executor, IExecutor } from '@cloudbeaver/core-executor'; import { ConnectionInfoResource, Connection } from './ConnectionInfoResource'; -import { ContainerResource, ObjectContainer } from './ContainerResource'; +import { ContainerResource, IStructContainers, ObjectContainer } from './ContainerResource'; import { EConnectionFeature } from './EConnectionFeature'; @injectable() @@ -25,8 +25,8 @@ export class ConnectionsManagerService { constructor( readonly connectionInfo: ConnectionInfoResource, readonly connectionObjectContainers: ContainerResource, - private notificationService: NotificationService, - private commonDialogService: CommonDialogService + private readonly notificationService: NotificationService, + private readonly commonDialogService: CommonDialogService ) { this.disconnecting = false; this.connectionExecutor = new Executor(null, (active, current) => active === current); @@ -48,11 +48,11 @@ export class ConnectionsManagerService { objectCatalogId: string, objectSchemaId?: string ): ObjectContainer | undefined { - const objectContainers = this.connectionObjectContainers.get({ connectionId, catalogId: objectCatalogId }); + const objectContainers = this.connectionObjectContainers.getCatalogData(connectionId, objectCatalogId); if (!objectContainers) { return; } - return objectContainers.find( + return objectContainers.schemaList.find( objectContainer => objectContainer.name === objectSchemaId || objectContainer.name === objectCatalogId ); } @@ -130,7 +130,7 @@ export class ConnectionsManagerService { } } - async loadObjectContainer(connectionId: string, catalogId?: string): Promise { + async loadObjectContainer(connectionId: string, catalogId?: string): Promise { await this.connectionObjectContainers.load({ connectionId, catalogId }); return this.connectionObjectContainers.get({ connectionId, catalogId })!; } diff --git a/webapp/packages/core-connections/src/ContainerResource.ts b/webapp/packages/core-connections/src/ContainerResource.ts index 7f1d1aa2d4..597f0ff72d 100644 --- a/webapp/packages/core-connections/src/ContainerResource.ts +++ b/webapp/packages/core-connections/src/ContainerResource.ts @@ -12,14 +12,26 @@ import { injectable } from '@cloudbeaver/core-di'; import { GraphQLService, CachedDataResource, - DatabaseObjectInfo, ICachedResourceMetadata, ResourceKeyUtils, CachedMapAllKey + NavNodeInfoFragment, ICachedResourceMetadata, ResourceKeyUtils, CachedMapAllKey } from '@cloudbeaver/core-sdk'; import { MetadataMap } from '@cloudbeaver/core-utils'; import { ConnectionInfoResource } from './ConnectionInfoResource'; -export type ObjectContainer = Pick; -type DataValue = MetadataMap>; +export type ObjectContainer = NavNodeInfoFragment; +export interface ICatalogData { + catalog: ObjectContainer; + schemaList: ObjectContainer[]; +} + +export interface IStructContainers { + catalogList: ICatalogData[]; + schemaList: ObjectContainer[]; + supportsCatalogChange: boolean; + supportsSchemaChange: boolean; +} + +type DataValue = MetadataMap; const defaultCatalog = 'default'; @@ -42,10 +54,15 @@ string metadata: MetadataMap; constructor( - private graphQLService: GraphQLService, - private connectionInfoResource: ConnectionInfoResource + private readonly graphQLService: GraphQLService, + private readonly connectionInfoResource: ConnectionInfoResource ) { - super(new MetadataMap(() => ({ }))); + super(new MetadataMap(() => ({ + catalogList: [], + schemaList: [], + supportsCatalogChange: false, + supportsSchemaChange: false, + }))); this.metadata = new MetadataMap(() => ({ outdated: true, @@ -70,8 +87,17 @@ string ); } - get({ connectionId, catalogId }: ObjectContainerParams): ObjectContainer[] | undefined { - return this.data.get(connectionId)[catalogId ?? defaultCatalog]; + get({ connectionId, catalogId }: ObjectContainerParams): IStructContainers | undefined { + return this.data.get(connectionId); + } + + getCatalogData( + connectionId: string, + catalogId: string + ): ICatalogData | undefined { + const connectionData = this.data.get(connectionId); + + return connectionData.catalogList.find(catalog => catalog.catalog.name === catalogId); } isLoaded({ connectionId, catalogId }: ObjectContainerParams): boolean { @@ -126,9 +152,15 @@ string const { navGetStructContainers } = await this.graphQLService.sdk.navGetStructContainers({ connectionId, catalogId, + withDetails: false, + }); + + this.data.set(connectionId, { + catalogList: navGetStructContainers.catalogList, + schemaList: navGetStructContainers.schemaList, + supportsCatalogChange: navGetStructContainers.supportsCatalogChange, + supportsSchemaChange: navGetStructContainers.supportsSchemaChange, }); - const value = this.data.get(connectionId); - value[catalogId ?? defaultCatalog] = [...navGetStructContainers.schemaList, ...navGetStructContainers.catalogList]; return this.data; } diff --git a/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextCreate.gql b/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextCreate.gql index 203c1afeec..203e2fb25f 100644 --- a/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextCreate.gql +++ b/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextCreate.gql @@ -8,9 +8,6 @@ mutation executionContextCreate( defaultCatalog: $defaultCatalog defaultSchema: $defaultSchema ) { - id - connectionId - defaultCatalog - defaultSchema + ...ExecutionContextInfo } } diff --git a/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextList.gql b/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextList.gql index 45a30c5faa..ee98d2973f 100644 --- a/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextList.gql +++ b/webapp/packages/core-sdk/src/queries/connections/execution-context/executionContextList.gql @@ -6,9 +6,6 @@ query executionContextList( connectionId: $connectionId contextId: $contextId ) { - id - connectionId - defaultCatalog - defaultSchema + ...ExecutionContextInfo } } diff --git a/webapp/packages/core-sdk/src/queries/database/navGetStructContainers.gql b/webapp/packages/core-sdk/src/queries/database/navGetStructContainers.gql index f88cb4ff99..df35653ca3 100644 --- a/webapp/packages/core-sdk/src/queries/database/navGetStructContainers.gql +++ b/webapp/packages/core-sdk/src/queries/database/navGetStructContainers.gql @@ -1,16 +1,17 @@ -query navGetStructContainers($connectionId: ID!, $catalogId: ID) { +query navGetStructContainers($connectionId: ID!, $catalogId: ID, $withDetails: Boolean!) { navGetStructContainers(connectionId: $connectionId, catalog: $catalogId) { catalogList { - name - description - type - features + catalog { + ...NavNodeInfo + } + schemaList { + ...NavNodeInfo + } } schemaList { - name - description - type - features + ...NavNodeInfo } + supportsCatalogChange + supportsSchemaChange } } diff --git a/webapp/packages/core-sdk/src/queries/fragments/ExecutionContextInfo.gql b/webapp/packages/core-sdk/src/queries/fragments/ExecutionContextInfo.gql new file mode 100644 index 0000000000..d83d884e64 --- /dev/null +++ b/webapp/packages/core-sdk/src/queries/fragments/ExecutionContextInfo.gql @@ -0,0 +1,6 @@ +fragment ExecutionContextInfo on SQLContextInfo { + id + connectionId + defaultCatalog + defaultSchema +} \ No newline at end of file diff --git a/webapp/packages/core-sdk/src/sdk.ts b/webapp/packages/core-sdk/src/sdk.ts index 7a14af9343..bbaeff3cc0 100644 --- a/webapp/packages/core-sdk/src/sdk.ts +++ b/webapp/packages/core-sdk/src/sdk.ts @@ -225,6 +225,11 @@ export interface DatabaseAuthModel { properties: Array; } +export interface DatabaseCatalog { + catalog: NavigatorNodeInfo; + schemaList: Array; +} + export interface DatabaseDocument { contentType?: Maybe; data?: Maybe; @@ -252,8 +257,10 @@ export interface DatabaseObjectInfoPropertiesArgs { } export interface DatabaseStructContainers { - catalogList: Array; - schemaList: Array; + catalogList: Array; + schemaList: Array; + supportsCatalogChange: Scalars['Boolean']; + supportsSchemaChange: Scalars['Boolean']; } export interface DriverInfo { @@ -1823,10 +1830,11 @@ export type RemoveDataTransferFileQuery = { result?: boolean }; export type NavGetStructContainersQueryVariables = Exact<{ connectionId: Scalars['ID']; catalogId?: InputMaybe; + withDetails: Scalars['Boolean']; }>; -export type NavGetStructContainersQuery = { navGetStructContainers: { catalogList: Array<{ name?: string; description?: string; type?: string; features?: Array }>; schemaList: Array<{ name?: string; description?: string; type?: string; features?: Array }> } }; +export type NavGetStructContainersQuery = { navGetStructContainers: { supportsCatalogChange: boolean; supportsSchemaChange: boolean; catalogList: Array<{ catalog: { id: string; name?: string; hasChildren?: boolean; nodeType?: string; icon?: string; folder?: boolean; inline?: boolean; navigable?: boolean; features?: Array; object?: { features?: Array }; nodeDetails?: Array<{ id?: string; category?: string; dataType?: string; description?: string; displayName?: string; length: ObjectPropertyLength; features: Array; value?: any; order: number }> }; schemaList: Array<{ id: string; name?: string; hasChildren?: boolean; nodeType?: string; icon?: string; folder?: boolean; inline?: boolean; navigable?: boolean; features?: Array; object?: { features?: Array }; nodeDetails?: Array<{ id?: string; category?: string; dataType?: string; description?: string; displayName?: string; length: ObjectPropertyLength; features: Array; value?: any; order: number }> }> }>; schemaList: Array<{ id: string; name?: string; hasChildren?: boolean; nodeType?: string; icon?: string; folder?: boolean; inline?: boolean; navigable?: boolean; features?: Array; object?: { features?: Array }; nodeDetails?: Array<{ id?: string; category?: string; dataType?: string; description?: string; displayName?: string; length: ObjectPropertyLength; features: Array; value?: any; order: number }> }> } }; export type FormatSqlQueryQueryVariables = Exact<{ connectionId: Scalars['ID']; @@ -1853,6 +1861,8 @@ export type DatabaseConnectionFragment = { id: string; name: string; description export type DatabaseDriverFragment = { id: string; name?: string; icon?: string; description?: string; defaultPort?: string; defaultDatabase?: string; defaultServer?: string; defaultUser?: string; sampleURL?: string; embedded?: boolean; anonymousAccess?: boolean; promotedScore?: number; defaultAuthModel: string; applicableNetworkHandlers: Array; driverParameters?: any; providerProperties?: Array<{ id?: string; displayName?: string; description?: string; category?: string; dataType?: string; defaultValue?: any; validValues?: Array; length: ObjectPropertyLength; features: Array; order: number }>; driverProperties?: Array<{ id?: string; displayName?: string; description?: string; category?: string; dataType?: string; defaultValue?: any; validValues?: Array }> }; +export type ExecutionContextInfoFragment = { id: string; connectionId: string; defaultCatalog?: string; defaultSchema?: string }; + export type NavNodeDbObjectInfoFragment = { id: string; object?: { type?: string; features?: Array; properties?: Array<{ id?: string; category?: string; dataType?: string; description?: string; displayName?: string; length: ObjectPropertyLength; features: Array; value?: any; order: number }> } }; export type NavNodeInfoFragment = { id: string; name?: string; hasChildren?: boolean; nodeType?: string; icon?: string; folder?: boolean; inline?: boolean; navigable?: boolean; features?: Array; object?: { features?: Array }; nodeDetails?: Array<{ id?: string; category?: string; dataType?: string; description?: string; displayName?: string; length: ObjectPropertyLength; features: Array; value?: any; order: number }> }; @@ -2309,6 +2319,14 @@ export const DatabaseDriverFragmentDoc = ` driverParameters @include(if: $includeDriverParameters) } `; +export const ExecutionContextInfoFragmentDoc = ` + fragment ExecutionContextInfo on SQLContextInfo { + id + connectionId + defaultCatalog + defaultSchema +} + `; export const NavNodePropertiesFragmentDoc = ` fragment NavNodeProperties on ObjectPropertyInfo { id @@ -2767,13 +2785,10 @@ export const ExecutionContextCreateDocument = ` defaultCatalog: $defaultCatalog defaultSchema: $defaultSchema ) { - id - connectionId - defaultCatalog - defaultSchema + ...ExecutionContextInfo } } - `; + ${ExecutionContextInfoFragmentDoc}`; export const ExecutionContextDestroyDocument = ` mutation executionContextDestroy($connectionId: ID!, $contextId: ID!) { sqlContextDestroy(connectionId: $connectionId, contextId: $contextId) @@ -2782,13 +2797,10 @@ export const ExecutionContextDestroyDocument = ` export const ExecutionContextListDocument = ` query executionContextList($connectionId: ID, $contextId: ID) { contexts: sqlListContexts(connectionId: $connectionId, contextId: $contextId) { - id - connectionId - defaultCatalog - defaultSchema + ...ExecutionContextInfo } } - `; + ${ExecutionContextInfoFragmentDoc}`; export const ExecutionContextUpdateDocument = ` mutation executionContextUpdate($connectionId: ID!, $contextId: ID!, $defaultCatalog: ID, $defaultSchema: ID) { context: sqlContextSetDefaults( @@ -2947,23 +2959,24 @@ export const RemoveDataTransferFileDocument = ` } `; export const NavGetStructContainersDocument = ` - query navGetStructContainers($connectionId: ID!, $catalogId: ID) { + query navGetStructContainers($connectionId: ID!, $catalogId: ID, $withDetails: Boolean!) { navGetStructContainers(connectionId: $connectionId, catalog: $catalogId) { catalogList { - name - description - type - features + catalog { + ...NavNodeInfo + } + schemaList { + ...NavNodeInfo + } } schemaList { - name - description - type - features + ...NavNodeInfo } + supportsCatalogChange + supportsSchemaChange } } - `; + ${NavNodeInfoFragmentDoc}`; export const FormatSqlQueryDocument = ` query formatSqlQuery($connectionId: ID!, $contextId: ID!, $query: String!) { query: sqlFormatQuery( @@ -3378,293 +3391,293 @@ const defaultWrapper: SdkFunctionWrapper = (action, _operationName) => action(); export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) { return { - asyncTaskCancel(variables: AsyncTaskCancelMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AsyncTaskCancelDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'asyncTaskCancel'); + asyncTaskCancel(variables: AsyncTaskCancelMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AsyncTaskCancelDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'asyncTaskCancel'); }, - createRole(variables: CreateRoleQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateRoleDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createRole'); + createRole(variables: CreateRoleQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateRoleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createRole'); }, - deleteRole(variables: DeleteRoleQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteRoleDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteRole'); + deleteRole(variables: DeleteRoleQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteRoleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteRole'); }, - getRoleGrantedUsers(variables: GetRoleGrantedUsersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetRoleGrantedUsersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getRoleGrantedUsers'); + getRoleGrantedUsers(variables: GetRoleGrantedUsersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetRoleGrantedUsersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getRoleGrantedUsers'); }, - getRolesList(variables?: GetRolesListQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetRolesListDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getRolesList'); + getRolesList(variables?: GetRolesListQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetRolesListDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getRolesList'); }, - updateRole(variables: UpdateRoleQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateRoleDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateRole'); + updateRole(variables: UpdateRoleQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateRoleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateRole'); }, - authChangeLocalPassword(variables: AuthChangeLocalPasswordQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AuthChangeLocalPasswordDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'authChangeLocalPassword'); + authChangeLocalPassword(variables: AuthChangeLocalPasswordQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AuthChangeLocalPasswordDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'authChangeLocalPassword'); }, - authLogin(variables: AuthLoginQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AuthLoginDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'authLogin'); + authLogin(variables: AuthLoginQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AuthLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'authLogin'); }, - authLogout(variables?: AuthLogoutQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AuthLogoutDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'authLogout'); + authLogout(variables?: AuthLogoutQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AuthLogoutDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'authLogout'); }, - deleteAuthProviderConfiguration(variables: DeleteAuthProviderConfigurationQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteAuthProviderConfigurationDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteAuthProviderConfiguration'); + deleteAuthProviderConfiguration(variables: DeleteAuthProviderConfigurationQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteAuthProviderConfigurationDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteAuthProviderConfiguration'); }, - getActiveUser(variables: GetActiveUserQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetActiveUserDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getActiveUser'); + getActiveUser(variables: GetActiveUserQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetActiveUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getActiveUser'); }, - getAuthProviderConfigurationParameters(variables: GetAuthProviderConfigurationParametersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetAuthProviderConfigurationParametersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getAuthProviderConfigurationParameters'); + getAuthProviderConfigurationParameters(variables: GetAuthProviderConfigurationParametersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetAuthProviderConfigurationParametersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getAuthProviderConfigurationParameters'); }, - getAuthProviderConfigurations(variables?: GetAuthProviderConfigurationsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetAuthProviderConfigurationsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getAuthProviderConfigurations'); + getAuthProviderConfigurations(variables?: GetAuthProviderConfigurationsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetAuthProviderConfigurationsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getAuthProviderConfigurations'); }, - getAuthProviders(variables?: GetAuthProvidersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetAuthProvidersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getAuthProviders'); + getAuthProviders(variables?: GetAuthProvidersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetAuthProvidersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getAuthProviders'); }, - getUserProfileProperties(variables?: GetUserProfilePropertiesQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetUserProfilePropertiesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getUserProfileProperties'); + getUserProfileProperties(variables?: GetUserProfilePropertiesQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetUserProfilePropertiesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getUserProfileProperties'); }, - saveAuthProviderConfiguration(variables: SaveAuthProviderConfigurationQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SaveAuthProviderConfigurationDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'saveAuthProviderConfiguration'); + saveAuthProviderConfiguration(variables: SaveAuthProviderConfigurationQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SaveAuthProviderConfigurationDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'saveAuthProviderConfiguration'); }, - saveUserMetaParameters(variables: SaveUserMetaParametersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SaveUserMetaParametersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'saveUserMetaParameters'); + saveUserMetaParameters(variables: SaveUserMetaParametersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SaveUserMetaParametersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'saveUserMetaParameters'); }, - createUser(variables: CreateUserQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateUserDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createUser'); + createUser(variables: CreateUserQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createUser'); }, - deleteUser(variables: DeleteUserQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteUserDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteUser'); + deleteUser(variables: DeleteUserQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteUser'); }, - deleteUserMetaParameter(variables: DeleteUserMetaParameterQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteUserMetaParameterDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteUserMetaParameter'); + deleteUserMetaParameter(variables: DeleteUserMetaParameterQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteUserMetaParameterDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteUserMetaParameter'); }, - getPermissionsList(variables?: GetPermissionsListQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetPermissionsListDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getPermissionsList'); + getPermissionsList(variables?: GetPermissionsListQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetPermissionsListDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getPermissionsList'); }, - getUserGrantedConnections(variables?: GetUserGrantedConnectionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetUserGrantedConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getUserGrantedConnections'); + getUserGrantedConnections(variables?: GetUserGrantedConnectionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetUserGrantedConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getUserGrantedConnections'); }, - getUsersList(variables: GetUsersListQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetUsersListDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getUsersList'); + getUsersList(variables: GetUsersListQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetUsersListDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getUsersList'); }, - grantUserRole(variables: GrantUserRoleQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GrantUserRoleDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'grantUserRole'); + grantUserRole(variables: GrantUserRoleQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GrantUserRoleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'grantUserRole'); }, - revokeUserRole(variables: RevokeUserRoleQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(RevokeUserRoleDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'revokeUserRole'); + revokeUserRole(variables: RevokeUserRoleQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(RevokeUserRoleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'revokeUserRole'); }, - setConnections(variables: SetConnectionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setConnections'); + setConnections(variables: SetConnectionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setConnections'); }, - setUserCredentials(variables: SetUserCredentialsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetUserCredentialsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setUserCredentials'); + setUserCredentials(variables: SetUserCredentialsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetUserCredentialsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setUserCredentials'); }, - setUserMetaParameter(variables: SetUserMetaParameterQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetUserMetaParameterDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setUserMetaParameter'); + setUserMetaParameter(variables: SetUserMetaParameterQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetUserMetaParameterDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setUserMetaParameter'); }, - updateUserProfileProperties(variables: UpdateUserProfilePropertiesQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateUserProfilePropertiesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateUserProfileProperties'); + updateUserProfileProperties(variables: UpdateUserProfilePropertiesQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateUserProfilePropertiesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateUserProfileProperties'); }, - createConnectionConfiguration(variables: CreateConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionConfigurationDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createConnectionConfiguration'); + createConnectionConfiguration(variables: CreateConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionConfigurationDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createConnectionConfiguration'); }, - createConnectionConfigurationFromNode(variables: CreateConnectionConfigurationFromNodeQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionConfigurationFromNodeDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createConnectionConfigurationFromNode'); + createConnectionConfigurationFromNode(variables: CreateConnectionConfigurationFromNodeQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionConfigurationFromNodeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createConnectionConfigurationFromNode'); }, - deleteConnectionConfiguration(variables: DeleteConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteConnectionConfigurationDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteConnectionConfiguration'); + deleteConnectionConfiguration(variables: DeleteConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteConnectionConfigurationDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteConnectionConfiguration'); }, - getConnectionAccess(variables?: GetConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetConnectionAccessDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getConnectionAccess'); + getConnectionAccess(variables?: GetConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetConnectionAccessDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getConnectionAccess'); }, - getConnections(variables: GetConnectionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getConnections'); + getConnections(variables: GetConnectionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getConnections'); }, - getSubjectConnectionAccess(variables?: GetSubjectConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetSubjectConnectionAccessDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getSubjectConnectionAccess'); + getSubjectConnectionAccess(variables?: GetSubjectConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetSubjectConnectionAccessDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getSubjectConnectionAccess'); }, - searchDatabases(variables: SearchDatabasesQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SearchDatabasesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'searchDatabases'); + searchDatabases(variables: SearchDatabasesQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SearchDatabasesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'searchDatabases'); }, - setConnectionAccess(variables: SetConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetConnectionAccessDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setConnectionAccess'); + setConnectionAccess(variables: SetConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetConnectionAccessDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setConnectionAccess'); }, - setSubjectConnectionAccess(variables: SetSubjectConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetSubjectConnectionAccessDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setSubjectConnectionAccess'); + setSubjectConnectionAccess(variables: SetSubjectConnectionAccessQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetSubjectConnectionAccessDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setSubjectConnectionAccess'); }, - updateConnectionConfiguration(variables: UpdateConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateConnectionConfigurationDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateConnectionConfiguration'); + updateConnectionConfiguration(variables: UpdateConnectionConfigurationQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateConnectionConfigurationDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateConnectionConfiguration'); }, - closeConnection(variables: CloseConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CloseConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'closeConnection'); + closeConnection(variables: CloseConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CloseConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'closeConnection'); }, - createConnection(variables: CreateConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createConnection'); + createConnection(variables: CreateConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createConnection'); }, - createConnectionFromNode(variables: CreateConnectionFromNodeMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionFromNodeDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createConnectionFromNode'); + createConnectionFromNode(variables: CreateConnectionFromNodeMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionFromNodeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createConnectionFromNode'); }, - createConnectionFromTemplate(variables: CreateConnectionFromTemplateMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionFromTemplateDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'createConnectionFromTemplate'); + createConnectionFromTemplate(variables: CreateConnectionFromTemplateMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CreateConnectionFromTemplateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'createConnectionFromTemplate'); }, - deleteConnection(variables: DeleteConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DeleteConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'deleteConnection'); + deleteConnection(variables: DeleteConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DeleteConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'deleteConnection'); }, - driverList(variables: DriverListQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(DriverListDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'driverList'); + driverList(variables: DriverListQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(DriverListDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'driverList'); }, - executionContextCreate(variables: ExecutionContextCreateMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextCreateDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'executionContextCreate'); + executionContextCreate(variables: ExecutionContextCreateMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextCreateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'executionContextCreate'); }, - executionContextDestroy(variables: ExecutionContextDestroyMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextDestroyDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'executionContextDestroy'); + executionContextDestroy(variables: ExecutionContextDestroyMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextDestroyDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'executionContextDestroy'); }, - executionContextList(variables?: ExecutionContextListQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextListDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'executionContextList'); + executionContextList(variables?: ExecutionContextListQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextListDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'executionContextList'); }, - executionContextUpdate(variables: ExecutionContextUpdateMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextUpdateDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'executionContextUpdate'); + executionContextUpdate(variables: ExecutionContextUpdateMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExecutionContextUpdateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'executionContextUpdate'); }, - getAuthModels(variables?: GetAuthModelsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetAuthModelsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getAuthModels'); + getAuthModels(variables?: GetAuthModelsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetAuthModelsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getAuthModels'); }, - getTemplateConnections(variables: GetTemplateConnectionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetTemplateConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getTemplateConnections'); + getTemplateConnections(variables: GetTemplateConnectionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetTemplateConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getTemplateConnections'); }, - getUserConnections(variables: GetUserConnectionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetUserConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getUserConnections'); + getUserConnections(variables: GetUserConnectionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetUserConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getUserConnections'); }, - initConnection(variables: InitConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(InitConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'initConnection'); + initConnection(variables: InitConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(InitConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'initConnection'); }, - refreshSessionConnections(variables?: RefreshSessionConnectionsMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(RefreshSessionConnectionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'refreshSessionConnections'); + refreshSessionConnections(variables?: RefreshSessionConnectionsMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(RefreshSessionConnectionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'refreshSessionConnections'); }, - setConnectionNavigatorSettings(variables: SetConnectionNavigatorSettingsMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetConnectionNavigatorSettingsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setConnectionNavigatorSettings'); + setConnectionNavigatorSettings(variables: SetConnectionNavigatorSettingsMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetConnectionNavigatorSettingsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setConnectionNavigatorSettings'); }, - testConnection(variables: TestConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(TestConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'testConnection'); + testConnection(variables: TestConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(TestConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'testConnection'); }, - testNetworkHandler(variables: TestNetworkHandlerMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(TestNetworkHandlerDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'testNetworkHandler'); + testNetworkHandler(variables: TestNetworkHandlerMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(TestNetworkHandlerDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'testNetworkHandler'); }, - updateConnection(variables: UpdateConnectionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateConnectionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateConnection'); + updateConnection(variables: UpdateConnectionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateConnectionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateConnection'); }, - exportDataFromContainer(variables: ExportDataFromContainerQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExportDataFromContainerDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'exportDataFromContainer'); + exportDataFromContainer(variables: ExportDataFromContainerQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExportDataFromContainerDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'exportDataFromContainer'); }, - exportDataFromResults(variables: ExportDataFromResultsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ExportDataFromResultsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'exportDataFromResults'); + exportDataFromResults(variables: ExportDataFromResultsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ExportDataFromResultsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'exportDataFromResults'); }, - getDataTransferProcessors(variables?: GetDataTransferProcessorsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetDataTransferProcessorsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getDataTransferProcessors'); + getDataTransferProcessors(variables?: GetDataTransferProcessorsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetDataTransferProcessorsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getDataTransferProcessors'); }, - removeDataTransferFile(variables: RemoveDataTransferFileQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(RemoveDataTransferFileDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'removeDataTransferFile'); + removeDataTransferFile(variables: RemoveDataTransferFileQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(RemoveDataTransferFileDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'removeDataTransferFile'); }, - navGetStructContainers(variables: NavGetStructContainersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavGetStructContainersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navGetStructContainers'); + navGetStructContainers(variables: NavGetStructContainersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavGetStructContainersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navGetStructContainers'); }, - formatSqlQuery(variables: FormatSqlQueryQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(FormatSqlQueryDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'formatSqlQuery'); + formatSqlQuery(variables: FormatSqlQueryQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(FormatSqlQueryDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'formatSqlQuery'); }, - getAsyncTaskInfo(variables: GetAsyncTaskInfoMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetAsyncTaskInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getAsyncTaskInfo'); + getAsyncTaskInfo(variables: GetAsyncTaskInfoMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetAsyncTaskInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getAsyncTaskInfo'); }, - getNetworkHandlers(variables?: GetNetworkHandlersQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetNetworkHandlersDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getNetworkHandlers'); + getNetworkHandlers(variables?: GetNetworkHandlersQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetNetworkHandlersDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getNetworkHandlers'); }, - asyncReadDataFromContainer(variables: AsyncReadDataFromContainerMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AsyncReadDataFromContainerDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'asyncReadDataFromContainer'); + asyncReadDataFromContainer(variables: AsyncReadDataFromContainerMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AsyncReadDataFromContainerDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'asyncReadDataFromContainer'); }, - asyncSqlExecuteQuery(variables: AsyncSqlExecuteQueryMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AsyncSqlExecuteQueryDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'asyncSqlExecuteQuery'); + asyncSqlExecuteQuery(variables: AsyncSqlExecuteQueryMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AsyncSqlExecuteQueryDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'asyncSqlExecuteQuery'); }, - asyncSqlExplainExecutionPlan(variables: AsyncSqlExplainExecutionPlanMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(AsyncSqlExplainExecutionPlanDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'asyncSqlExplainExecutionPlan'); + asyncSqlExplainExecutionPlan(variables: AsyncSqlExplainExecutionPlanMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(AsyncSqlExplainExecutionPlanDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'asyncSqlExplainExecutionPlan'); }, - closeResult(variables: CloseResultMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(CloseResultDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'closeResult'); + closeResult(variables: CloseResultMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(CloseResultDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'closeResult'); }, - getSqlExecuteTaskResults(variables: GetSqlExecuteTaskResultsMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetSqlExecuteTaskResultsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getSqlExecuteTaskResults'); + getSqlExecuteTaskResults(variables: GetSqlExecuteTaskResultsMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetSqlExecuteTaskResultsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getSqlExecuteTaskResults'); }, - getSqlExecutionPlanResult(variables: GetSqlExecutionPlanResultMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetSqlExecutionPlanResultDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getSqlExecutionPlanResult'); + getSqlExecutionPlanResult(variables: GetSqlExecutionPlanResultMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetSqlExecutionPlanResultDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getSqlExecutionPlanResult'); }, - updateResultsDataBatch(variables: UpdateResultsDataBatchMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateResultsDataBatchDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateResultsDataBatch'); + updateResultsDataBatch(variables: UpdateResultsDataBatchMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateResultsDataBatchDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateResultsDataBatch'); }, - updateResultsDataBatchScript(variables: UpdateResultsDataBatchScriptMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(UpdateResultsDataBatchScriptDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'updateResultsDataBatchScript'); + updateResultsDataBatchScript(variables: UpdateResultsDataBatchScriptMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(UpdateResultsDataBatchScriptDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'updateResultsDataBatchScript'); }, - metadataGetNodeDDL(variables: MetadataGetNodeDdlQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(MetadataGetNodeDdlDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'metadataGetNodeDDL'); + metadataGetNodeDDL(variables: MetadataGetNodeDdlQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(MetadataGetNodeDdlDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'metadataGetNodeDDL'); }, - getChildrenDBObjectInfo(variables: GetChildrenDbObjectInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetChildrenDbObjectInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getChildrenDBObjectInfo'); + getChildrenDBObjectInfo(variables: GetChildrenDbObjectInfoQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetChildrenDbObjectInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getChildrenDBObjectInfo'); }, - getDBObjectInfo(variables: GetDbObjectInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(GetDbObjectInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'getDBObjectInfo'); + getDBObjectInfo(variables: GetDbObjectInfoQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(GetDbObjectInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'getDBObjectInfo'); }, - navDeleteNodes(variables: NavDeleteNodesMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavDeleteNodesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navDeleteNodes'); + navDeleteNodes(variables: NavDeleteNodesMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavDeleteNodesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navDeleteNodes'); }, - navNodeChildren(variables: NavNodeChildrenQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavNodeChildrenDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navNodeChildren'); + navNodeChildren(variables: NavNodeChildrenQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavNodeChildrenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navNodeChildren'); }, - navNodeInfo(variables: NavNodeInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavNodeInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navNodeInfo'); + navNodeInfo(variables: NavNodeInfoQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavNodeInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navNodeInfo'); }, - navRefreshNode(variables: NavRefreshNodeQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavRefreshNodeDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navRefreshNode'); + navRefreshNode(variables: NavRefreshNodeQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavRefreshNodeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navRefreshNode'); }, - navRenameNode(variables: NavRenameNodeMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(NavRenameNodeDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'navRenameNode'); + navRenameNode(variables: NavRenameNodeMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(NavRenameNodeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'navRenameNode'); }, - querySqlCompletionProposals(variables: QuerySqlCompletionProposalsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(QuerySqlCompletionProposalsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'querySqlCompletionProposals'); + querySqlCompletionProposals(variables: QuerySqlCompletionProposalsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(QuerySqlCompletionProposalsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'querySqlCompletionProposals'); }, - querySqlDialectInfo(variables: QuerySqlDialectInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(QuerySqlDialectInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'querySqlDialectInfo'); + querySqlDialectInfo(variables: QuerySqlDialectInfoQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(QuerySqlDialectInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'querySqlDialectInfo'); }, - configureServer(variables: ConfigureServerQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ConfigureServerDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'configureServer'); + configureServer(variables: ConfigureServerQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ConfigureServerDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'configureServer'); }, - listFeatureSets(variables?: ListFeatureSetsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ListFeatureSetsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'listFeatureSets'); + listFeatureSets(variables?: ListFeatureSetsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ListFeatureSetsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'listFeatureSets'); }, - setDefaultNavigatorSettings(variables: SetDefaultNavigatorSettingsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SetDefaultNavigatorSettingsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'setDefaultNavigatorSettings'); + setDefaultNavigatorSettings(variables: SetDefaultNavigatorSettingsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SetDefaultNavigatorSettingsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'setDefaultNavigatorSettings'); }, - changeSessionLanguage(variables: ChangeSessionLanguageMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ChangeSessionLanguageDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'changeSessionLanguage'); + changeSessionLanguage(variables: ChangeSessionLanguageMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ChangeSessionLanguageDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'changeSessionLanguage'); }, - openSession(variables?: OpenSessionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(OpenSessionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'openSession'); + openSession(variables?: OpenSessionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(OpenSessionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'openSession'); }, - readSessionLog(variables: ReadSessionLogQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ReadSessionLogDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'readSessionLog'); + readSessionLog(variables: ReadSessionLogQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ReadSessionLogDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'readSessionLog'); }, - serverConfig(variables?: ServerConfigQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(ServerConfigDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'serverConfig'); + serverConfig(variables?: ServerConfigQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(ServerConfigDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'serverConfig'); }, - sessionPermissions(variables?: SessionPermissionsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SessionPermissionsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'sessionPermissions'); + sessionPermissions(variables?: SessionPermissionsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SessionPermissionsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'sessionPermissions'); }, - sessionState(variables?: SessionStateQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SessionStateDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'sessionState'); + sessionState(variables?: SessionStateQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SessionStateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'sessionState'); }, - touchSession(variables?: TouchSessionMutationVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(TouchSessionDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'touchSession'); + touchSession(variables?: TouchSessionMutationVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(TouchSessionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'touchSession'); }, - sqlEntityQueryGenerators(variables: SqlEntityQueryGeneratorsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SqlEntityQueryGeneratorsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'sqlEntityQueryGenerators'); + sqlEntityQueryGenerators(variables: SqlEntityQueryGeneratorsQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SqlEntityQueryGeneratorsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'sqlEntityQueryGenerators'); }, - sqlGenerateEntityQuery(variables: SqlGenerateEntityQueryQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper(wrappedRequestHeaders => client.request(SqlGenerateEntityQueryDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'sqlGenerateEntityQuery'); + sqlGenerateEntityQuery(variables: SqlGenerateEntityQueryQueryVariables, requestHeaders?: Dom.RequestInit['headers']): Promise { + return withWrapper(wrappedRequestHeaders => client.request(SqlGenerateEntityQueryDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'sqlGenerateEntityQuery'); }, }; } diff --git a/webapp/packages/plugin-sql-editor-navigation-tab/src/SqlEditorTabService.ts b/webapp/packages/plugin-sql-editor-navigation-tab/src/SqlEditorTabService.ts index 30709d72b1..ad34c9e73a 100644 --- a/webapp/packages/plugin-sql-editor-navigation-tab/src/SqlEditorTabService.ts +++ b/webapp/packages/plugin-sql-editor-navigation-tab/src/SqlEditorTabService.ts @@ -103,10 +103,12 @@ export class SqlEditorTabService extends Bootstrap { ); for (const tab of tabs) { - const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext!.baseId); + const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext!.id); - if (!executionContext) { + if (!executionContext?.context) { this.resetConnectionInfo(tab.handlerState); + } else { + tab.handlerState.executionContext = { ...executionContext.context }; } } } @@ -117,7 +119,7 @@ export class SqlEditorTabService extends Bootstrap { ); for (const tab of tabs) { - if (ResourceKeyUtils.includes(key, tab.handlerState.executionContext!.baseId)) { + if (ResourceKeyUtils.includes(key, tab.handlerState.executionContext!.id)) { this.resetConnectionInfo(tab.handlerState); } } @@ -135,7 +137,6 @@ export class SqlEditorTabService extends Bootstrap { || !['undefined', 'object'].includes(typeof tab.handlerState.executionContext) || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.executionContext?.connectionId) || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.executionContext?.id) - || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.executionContext?.baseId) || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.executionContext?.defaultCatalog) || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.executionContext?.defaultSchema) || !['string', 'undefined', 'object'].includes(typeof tab.handlerState.currentTabId) @@ -151,7 +152,7 @@ export class SqlEditorTabService extends Bootstrap { if (tab.handlerState.executionContext) { await this.connectionInfo.load(CachedMapAllKey); await this.connectionExecutionContextResource.loadAll(); - const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.baseId); + const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.id); if (!executionContext) { this.resetConnectionInfo(tab.handlerState); @@ -208,7 +209,7 @@ export class SqlEditorTabService extends Bootstrap { return false; } - const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.baseId); + const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.id); if (!executionContext) { return false; @@ -232,7 +233,7 @@ export class SqlEditorTabService extends Bootstrap { return false; } - const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.baseId); + const executionContext = this.connectionExecutionContextService.get(tab.handlerState.executionContext.id); if (!executionContext) { return false; @@ -264,13 +265,13 @@ export class SqlEditorTabService extends Bootstrap { } private async destroyContext(contextInfo: IConnectionExecutionContextInfo) { - const executionContext = this.connectionExecutionContextService.get(contextInfo.baseId); + const executionContext = this.connectionExecutionContextService.get(contextInfo.id); if (executionContext) { try { await executionContext.destroy(); } catch (exception) { - this.notificationService.logException(exception, `Failed to destroy SQL-context ${executionContext.context?.baseId}`, '', true); + this.notificationService.logException(exception, `Failed to destroy SQL-context ${executionContext.context?.id}`, '', true); } } } diff --git a/webapp/packages/plugin-sql-editor-screen/src/Screen/SqlEditorScreen.tsx b/webapp/packages/plugin-sql-editor-screen/src/Screen/SqlEditorScreen.tsx index 8998fd3873..e27eb77697 100644 --- a/webapp/packages/plugin-sql-editor-screen/src/Screen/SqlEditorScreen.tsx +++ b/webapp/packages/plugin-sql-editor-screen/src/Screen/SqlEditorScreen.tsx @@ -49,7 +49,7 @@ export const SqlEditorScreen: ScreenComponent = observer }, }), { state: observable }, false); - if (context?.context?.baseId !== state.state?.executionContext?.baseId) { + if (context?.context?.id !== state.state?.executionContext?.id) { state.setState(context?.context); } diff --git a/webapp/packages/plugin-sql-editor/src/SqlEditor/SqlEditorController.tsx b/webapp/packages/plugin-sql-editor/src/SqlEditor/SqlEditorController.tsx index 211fcaf0f3..d1bcb4d1a1 100644 --- a/webapp/packages/plugin-sql-editor/src/SqlEditor/SqlEditorController.tsx +++ b/webapp/packages/plugin-sql-editor/src/SqlEditor/SqlEditorController.tsx @@ -61,7 +61,7 @@ export class SqlEditorController implements IInitializableController, IDestructi return true; } - const context = this.connectionExecutionContextService.get(this.state.executionContext.baseId); + const context = this.connectionExecutionContextService.get(this.state.executionContext.id); return context?.executing || false; } diff --git a/webapp/packages/plugin-sql-editor/src/SqlResultTabs/ExecutionPlan/SqlExecutionPlanService.ts b/webapp/packages/plugin-sql-editor/src/SqlResultTabs/ExecutionPlan/SqlExecutionPlanService.ts index 5ae8bf3bda..4992714e84 100644 --- a/webapp/packages/plugin-sql-editor/src/SqlResultTabs/ExecutionPlan/SqlExecutionPlanService.ts +++ b/webapp/packages/plugin-sql-editor/src/SqlResultTabs/ExecutionPlan/SqlExecutionPlanService.ts @@ -45,7 +45,7 @@ export class SqlExecutionPlanService { ): Promise { const contextInfo = editorState.executionContext; - const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.baseId); + const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.id); if (!contextInfo || !executionContext) { console.error('executeExecutionPlan executionContext is not provided'); diff --git a/webapp/packages/plugin-sql-editor/src/SqlResultTabs/SqlQueryService.ts b/webapp/packages/plugin-sql-editor/src/SqlResultTabs/SqlQueryService.ts index 57669a0379..89142366ae 100644 --- a/webapp/packages/plugin-sql-editor/src/SqlResultTabs/SqlQueryService.ts +++ b/webapp/packages/plugin-sql-editor/src/SqlResultTabs/SqlQueryService.ts @@ -62,7 +62,7 @@ export class SqlQueryService { inNewTab: boolean ): Promise { const contextInfo = editorState.executionContext; - const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.baseId); + const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.id); if (!contextInfo || !executionContext) { console.error('executeEditorQuery executionContext is not provided'); @@ -134,7 +134,7 @@ export class SqlQueryService { options?: IQueryExecutionOptions ): Promise { const contextInfo = editorState.executionContext; - const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.baseId); + const executionContext = contextInfo && this.connectionExecutionContextService.get(contextInfo.id); if (!contextInfo || !executionContext) { console.error('executeEditorQuery executionContext is not provided');