CB-686 Network handlers web API

This commit is contained in:
Serge Rider
2021-01-28 15:40:20 +03:00
parent 0962005026
commit 8977a05cbd
3 changed files with 50 additions and 5 deletions
@@ -162,6 +162,8 @@ type DriverInfo {
anonymousAccess: Boolean
defaultAuthModel: ID!
applicableAuthModel: [ID!]!
applicableNetworkHandlers: [ID]!
}
enum ResultDataFormat {
@@ -171,6 +173,32 @@ enum ResultDataFormat {
timeseries
}
## Network handler config
enum NetworkHandlerType {
TUNNEL,
PROXY,
CONFIG
}
type NetworkHandlerDescriptor {
id: ID!
codeName: String!
label: String
description: String
secured: Boolean
type: NetworkHandlerType
}
type NetworkHandlerConfig {
id: ID!
enabled: Boolean
userName: String
password: String
savePassword: Boolean
properties: Object
}
# Connection instance
type ConnectionInfo {
id: ID!
@@ -204,6 +232,8 @@ type ConnectionInfo {
authModel: ID
authProperties: [ObjectPropertyInfo!]!
networkHandlersConfig: [NetworkHandlerConfig!]!
# Supported features (provided etc)
features: [ String! ]!
navigatorSettings: NavigatorSettings!
@@ -252,14 +282,18 @@ input ConnectionConfig {
authModelId: ID
credentials: Object
# Networki handlers
networkHandlersConfig: [Object!]!
#### deprecated fields
# ID of predefined datasource
dataSourceId: ID
dataSourceId: ID @deprecated
# Direct user credentials
userName: String # @deprecated
userPassword: String # deprecated
userName: String @deprecated
userPassword: String @deprecated
}
type NavigatorSettings {
@@ -305,12 +339,12 @@ extend type Query {
# Get driver info
driverList( id: ID ): [ DriverInfo! ]!
authModels: [DatabaseAuthModel!]!
networkHandlers: [NetworkHandlerDescriptor!]!
# List of template connections.
templateConnections: [ ConnectionInfo! ]!
authModels: [DatabaseAuthModel!]!
# Return connection state
connectionState( id: ID! ): ConnectionInfo! @deprecated
@@ -23,6 +23,7 @@ import io.cloudbeaver.model.*;
import io.cloudbeaver.model.session.WebSession;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.navigator.DBNBrowseSettings;
import org.jkiss.dbeaver.model.net.DBWHandlerDescriptor;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@@ -42,6 +43,9 @@ public interface DBWServiceCore extends DBWService {
@WebAction
List<WebDatabaseAuthModel> getAuthModels(WebSession webSession);
@WebAction
List<? extends DBWHandlerDescriptor> getNetworkHandlers(WebSession webSession);
@Deprecated
@WebAction
List<WebDataSourceConfig> getTemplateDataSources() throws DBWebException;
@@ -38,8 +38,10 @@ import org.jkiss.dbeaver.model.navigator.DBNBrowseSettings;
import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNModel;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.net.DBWHandlerDescriptor;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceProviderRegistry;
import org.jkiss.dbeaver.registry.network.NetworkHandlerRegistry;
import org.jkiss.dbeaver.runtime.jobs.ConnectionTestJob;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
@@ -79,6 +81,11 @@ public class WebServiceCore implements DBWServiceCore {
.map(am -> new WebDatabaseAuthModel(webSession, am)).collect(Collectors.toList());
}
@Override
public List<? extends DBWHandlerDescriptor> getNetworkHandlers(WebSession webSession) {
return NetworkHandlerRegistry.getInstance().getDescriptors();
}
@Deprecated
@Override
public List<WebDataSourceConfig> getTemplateDataSources() throws DBWebException {