diff --git a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF
index 026a7cf62c..d9535a322b 100644
--- a/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF
+++ b/server/bundles/io.cloudbeaver.server/META-INF/MANIFEST.MF
@@ -9,11 +9,9 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-Activator: io.cloudbeaver.server.WebPlatformActivator
Bundle-ClassPath: .
-Require-Bundle: org.eclipse.core.runtime,
+Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
org.eclipse.core.expressions,
- org.apache.commons.logging,
- org.eclipse.core.commands,
- org.eclipse.core.resources,
+ org.eclipse.core.resources;visibility:=reexport,
org.apache.commons.jexl,
org.jkiss.utils;visibility:=reexport,
org.jkiss.dbeaver.model;visibility:=reexport,
diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/WebServiceUtils.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/WebServiceUtils.java
index 3b7959dae8..7980fdbfb6 100644
--- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/WebServiceUtils.java
+++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/WebServiceUtils.java
@@ -80,17 +80,4 @@ public class WebServiceUtils {
return WebServiceUtils.class.getClassLoader().getResourceAsStream(path);
}
- public static TypeDefinitionRegistry loadSchemaDefinition(Class theClass, String schemaPath) throws DBWebException {
- try (InputStream schemaStream = theClass.getClassLoader().getResourceAsStream(schemaPath)) {
- if (schemaStream == null) {
- throw new IOException("Schema file '" + schemaPath + "' not found");
- }
- try (Reader schemaReader = new InputStreamReader(schemaStream)) {
- return new SchemaParser().parse(schemaReader);
- }
- } catch (IOException e) {
- throw new RuntimeException("Error reading core schema", e);
- }
- }
-
}
diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/api/WebServiceBase.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/api/WebServiceBase.java
new file mode 100644
index 0000000000..2bd6c0663b
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/api/WebServiceBase.java
@@ -0,0 +1,50 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2020 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.api;
+
+import graphql.schema.DataFetchingEnvironment;
+import graphql.schema.idl.SchemaParser;
+import graphql.schema.idl.TypeDefinitionRegistry;
+import io.cloudbeaver.DBWebException;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+/**
+ * Web service implementation
+ */
+public abstract class WebServiceBase implements DBWServiceGraphQL {
+
+ protected void checkPermission(DBWModel model, DataFetchingEnvironment env, String permission) {
+
+ }
+
+ public static TypeDefinitionRegistry loadSchemaDefinition(Class theClass, String schemaPath) throws DBWebException {
+ try (InputStream schemaStream = theClass.getClassLoader().getResourceAsStream(schemaPath)) {
+ if (schemaStream == null) {
+ throw new IOException("Schema file '" + schemaPath + "' not found");
+ }
+ try (Reader schemaReader = new InputStreamReader(schemaStream)) {
+ return new SchemaParser().parse(schemaReader);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error reading core schema", e);
+ }
+ }
+}
diff --git a/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..2244f50fd4
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: io.cloudbeaver.service.admin;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Release-Date: 20200504
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Require-Bundle: io.cloudbeaver.server
+Bundle-Localization: OSGI-INF/l10n/bundle
+Automatic-Module-Name: io.cloudbeaver.service.admin
diff --git a/server/bundles/io.cloudbeaver.service.admin/OSGI-INF/l10n/bundle.properties b/server/bundles/io.cloudbeaver.service.admin/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000000..d87bca20aa
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,2 @@
+Bundle-Vendor = DBeaver Corp
+Bundle-Name = Cloudbeaver Web Service - Metadata
diff --git a/server/bundles/io.cloudbeaver.service.admin/build.properties b/server/bundles/io.cloudbeaver.service.admin/build.properties
new file mode 100644
index 0000000000..91bb65c8b8
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = .,\
+ META-INF/,\
+ OSGI-INF/,\
+ schema/,\
+ plugin.xml
diff --git a/server/bundles/io.cloudbeaver.service.admin/plugin.xml b/server/bundles/io.cloudbeaver.service.admin/plugin.xml
new file mode 100644
index 0000000000..4154c83660
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/plugin.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/server/bundles/io.cloudbeaver.service.admin/pom.xml b/server/bundles/io.cloudbeaver.service.admin/pom.xml
new file mode 100644
index 0000000000..ced79749fc
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+
+ io.cloudbeaver
+ bundles
+ 1.0.0-SNAPSHOT
+ ../
+
+ io.cloudbeaver.service.admin
+ 1.0.0-SNAPSHOT
+ eclipse-plugin
+
+
diff --git a/server/bundles/io.cloudbeaver.service.admin/schema/service.admin.graphqls b/server/bundles/io.cloudbeaver.service.admin/schema/service.admin.graphqls
new file mode 100644
index 0000000000..6d3028957a
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/schema/service.admin.graphqls
@@ -0,0 +1,40 @@
+
+type AdminUserInfo {
+ userName: ID!
+
+ grantedRoles: [ID]!
+}
+
+type AdminRoleInfo {
+ roleName: ID!
+
+ rolePermissions: [ID]!
+}
+
+type AdminPermissionInfo {
+ id: ID!
+
+ label: [String]
+ description: [String]
+ category: String
+}
+
+extend type Query {
+
+ listUsers(userName: ID): [AdminUserInfo]!
+ listRoles(roleName: ID): [AdminRoleInfo]!
+ listPermissions(permissionId: ID): [AdminPermissionInfo]
+
+ createUser(userName: ID!): AdminUserInfo!
+ deleteUser(userName: ID!): Boolean
+
+ getUserAdminCredentials(userName: ID!): Object
+
+ setUserAdminCredentials(userName: ID!, credentials: Object): Boolean
+
+ grantUserRole(user: ID!, role: ID!): Boolean
+ revokeUserRole(user: ID!, role: ID!): Boolean
+
+ setRolePermissions(roleID: ID!, permissions: [ID]!): Boolean
+
+}
diff --git a/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/AdminPermissions.java b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/AdminPermissions.java
new file mode 100644
index 0000000000..421cf175e9
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/AdminPermissions.java
@@ -0,0 +1,26 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2020 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.admin;
+
+/**
+ * Web service implementation
+ */
+public class AdminPermissions {
+
+ public static final String PERMISSION_ADMIN = "admin";
+
+}
diff --git a/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/WebServiceAdmin.java b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/WebServiceAdmin.java
new file mode 100644
index 0000000000..cd84a2f1d0
--- /dev/null
+++ b/server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/WebServiceAdmin.java
@@ -0,0 +1,48 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2020 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.admin;
+
+import graphql.schema.DataFetchingEnvironment;
+import graphql.schema.idl.TypeDefinitionRegistry;
+import io.cloudbeaver.DBWebException;
+import io.cloudbeaver.api.DBWModel;
+import io.cloudbeaver.api.DBWServiceGraphQL;
+import io.cloudbeaver.api.WebServiceBase;
+import org.osgi.framework.AdminPermission;
+
+/**
+ * Web service implementation
+ */
+public class WebServiceAdmin extends WebServiceBase {
+
+ private static final String SCHEMA_FILE_NAME = "schema/service.admin.graphqls";
+
+ @Override
+ public TypeDefinitionRegistry getTypeDefinition() throws DBWebException {
+ return loadSchemaDefinition(getClass(), SCHEMA_FILE_NAME);
+ }
+
+ @Override
+ public void bindWiring(DBWModel model) throws DBWebException {
+ model.getQueryType().dataFetcher("listUsers", env -> {
+ checkPermission(model, env, AdminPermissions.PERMISSION_ADMIN);
+ throw new DBWebException("Not implemented");
+ });
+
+ }
+
+}
diff --git a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF
index b1e39539c2..c305bfbc5f 100644
--- a/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF
+++ b/server/bundles/io.cloudbeaver.service.auth/META-INF/MANIFEST.MF
@@ -8,13 +8,6 @@ Bundle-Release-Date: 20200504
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.expressions,
- org.apache.commons.logging,
- org.eclipse.core.commands,
- org.eclipse.core.resources,
- io.cloudbeaver.server,
- org.jkiss.dbeaver.model,
- org.jkiss.dbeaver.model.sql
+Require-Bundle: io.cloudbeaver.server
Bundle-Localization: OSGI-INF/l10n/bundle
Automatic-Module-Name: io.cloudbeaver.service.auth
diff --git a/server/bundles/io.cloudbeaver.service.auth/plugin.xml b/server/bundles/io.cloudbeaver.service.auth/plugin.xml
index e0b61a223e..c714ef8ae6 100644
--- a/server/bundles/io.cloudbeaver.service.auth/plugin.xml
+++ b/server/bundles/io.cloudbeaver.service.auth/plugin.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/server/bundles/io.cloudbeaver.service.auth/pom.xml b/server/bundles/io.cloudbeaver.service.auth/pom.xml
index c836eeeb6b..604f19b40a 100644
--- a/server/bundles/io.cloudbeaver.service.auth/pom.xml
+++ b/server/bundles/io.cloudbeaver.service.auth/pom.xml
@@ -9,7 +9,7 @@
1.0.0-SNAPSHOT
../
- io.cloudbeaver.service.metadata
+ io.cloudbeaver.service.auth
1.0.0-SNAPSHOT
eclipse-plugin
diff --git a/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls b/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls
index b2915780d7..fef0a1ee47 100644
--- a/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls
+++ b/server/bundles/io.cloudbeaver.service.auth/schema/service.auth.graphqls
@@ -1,35 +1,3 @@
-
-type UserInfo {
- userName: ID!
-}
-
-type RoleInfo {
- roleName: ID!
-
- permissions: [ID]!
-}
-
-type PermissionInfo {
- id: ID!
-
- label: [String]
- description: [String]
-}
-
-type Admin {
- users: [UserInfo]
- roles: [RoleInfo]
- permissions: [PermissionInfo]
-
- createUser(userName: ID!): UserInfo!
- deleteUser(userName: ID!): Boolean
-
- setUserAuthCredentials(userName: ID!, model: ID!, credentials: Object): Boolean
-
- grantUserRole(user: ID!, role: ID!): Boolean
- revokeUserRole(user: ID!, role: ID!): Boolean
-}
-
type AuthCredentialInfo {
id: ID!
label: String!
@@ -62,9 +30,9 @@ type UserAuthInfo {
extend type Query {
- login(model: ID!, credentials: Object!): UserAuthInfo
+ authLogin(model: ID!, credentials: Object!): UserAuthInfo
- logout: Boolean
+ authLogout: Boolean
sessionUser: UserAuthInfo
diff --git a/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/metadata/WebServiceAuth.java b/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/WebServiceAuth.java
similarity index 63%
rename from server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/metadata/WebServiceAuth.java
rename to server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/WebServiceAuth.java
index 660a9779db..6e899c7d8e 100644
--- a/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/metadata/WebServiceAuth.java
+++ b/server/bundles/io.cloudbeaver.service.auth/src/io/cloudbeaver/service/auth/WebServiceAuth.java
@@ -14,39 +14,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package io.cloudbeaver.service.metadata;
+package io.cloudbeaver.service.auth;
import graphql.schema.idl.TypeDefinitionRegistry;
import io.cloudbeaver.DBWebException;
-import io.cloudbeaver.WebServiceUtils;
import io.cloudbeaver.api.DBWModel;
import io.cloudbeaver.api.DBWServiceGraphQL;
-import io.cloudbeaver.api.DBWUtils;
-import io.cloudbeaver.server.model.WebNavigatorNodeInfo;
-import io.cloudbeaver.server.model.session.WebSession;
-import org.jkiss.dbeaver.model.DBPScriptObject;
-import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
-import org.jkiss.dbeaver.model.navigator.DBNNode;
-import org.jkiss.dbeaver.model.struct.DBSObject;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
+import io.cloudbeaver.api.WebServiceBase;
/**
* Web service implementation
*/
-public class WebServiceAuth implements DBWServiceGraphQL {
+public class WebServiceAuth extends WebServiceBase {
private static final String SCHEMA_FILE_NAME = "schema/service.auth.graphqls";
@Override
public TypeDefinitionRegistry getTypeDefinition() throws DBWebException {
- return WebServiceUtils.loadSchemaDefinition(getClass(), SCHEMA_FILE_NAME);
+ return loadSchemaDefinition(getClass(), SCHEMA_FILE_NAME);
}
@Override
public void bindWiring(DBWModel model) throws DBWebException {
- model.getQueryType().dataFetcher("login", env -> {
+ model.getQueryType().dataFetcher("authLogin", env -> {
+ Object context = env.getContext();
throw new DBWebException("Not implemented");
});
diff --git a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF
index 1f7dda6247..1f70148940 100644
--- a/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF
+++ b/server/bundles/io.cloudbeaver.service.data.transfer/META-INF/MANIFEST.MF
@@ -8,14 +8,8 @@ Bundle-Release-Date: 20200504
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.expressions,
- org.apache.commons.logging,
- org.eclipse.core.commands,
- org.eclipse.core.resources,
- io.cloudbeaver.server,
+Require-Bundle: io.cloudbeaver.server,
org.jkiss.dbeaver.data.transfer,
- org.jkiss.dbeaver.model.sql,
org.jkiss.dbeaver.registry
Bundle-Localization: OSGI-INF/l10n/bundle
Automatic-Module-Name: io.cloudbeaver.service.data.transfer
diff --git a/server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/WebServiceDataTransfer.java b/server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/WebServiceDataTransfer.java
index e29ae2d076..c477dcc3b0 100644
--- a/server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/WebServiceDataTransfer.java
+++ b/server/bundles/io.cloudbeaver.service.data.transfer/src/io/cloudbeaver/service/data/transfer/WebServiceDataTransfer.java
@@ -19,11 +19,7 @@ package io.cloudbeaver.service.data.transfer;
import graphql.schema.DataFetchingEnvironment;
import graphql.schema.idl.TypeDefinitionRegistry;
import io.cloudbeaver.DBWebException;
-import io.cloudbeaver.WebServiceUtils;
-import io.cloudbeaver.api.DBWModel;
-import io.cloudbeaver.api.DBWServiceGraphQL;
-import io.cloudbeaver.api.DBWServiceServlet;
-import io.cloudbeaver.api.DBWUtils;
+import io.cloudbeaver.api.*;
import io.cloudbeaver.server.CloudbeaverApplication;
import io.cloudbeaver.server.model.session.WebSession;
import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -32,7 +28,7 @@ import org.eclipse.jetty.servlet.ServletHolder;
/**
* Web service implementation
*/
-public class WebServiceDataTransfer implements DBWServiceGraphQL, DBWServiceServlet {
+public class WebServiceDataTransfer extends WebServiceBase implements DBWServiceServlet {
private static final String DT_SCHEMA_FILE_NAME = "schema/service.data.transfer.graphqls";
@@ -45,7 +41,7 @@ public class WebServiceDataTransfer implements DBWServiceGraphQL, DBWServiceServ
@Override
public TypeDefinitionRegistry getTypeDefinition() throws DBWebException {
- return WebServiceUtils.loadSchemaDefinition(getClass(), DT_SCHEMA_FILE_NAME);
+ return loadSchemaDefinition(getClass(), DT_SCHEMA_FILE_NAME);
}
@Override
diff --git a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF
index 3640939625..847a24eec2 100644
--- a/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF
+++ b/server/bundles/io.cloudbeaver.service.metadata/META-INF/MANIFEST.MF
@@ -8,12 +8,6 @@ Bundle-Release-Date: 20200504
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.expressions,
- org.apache.commons.logging,
- org.eclipse.core.commands,
- org.eclipse.core.resources,
- io.cloudbeaver.server,
- org.jkiss.dbeaver.model.sql
+Require-Bundle: io.cloudbeaver.server
Bundle-Localization: OSGI-INF/l10n/bundle
Automatic-Module-Name: io.cloudbeaver.service.metadata
diff --git a/server/bundles/io.cloudbeaver.service.metadata/src/io/cloudbeaver/service/metadata/WebServiceMetadata.java b/server/bundles/io.cloudbeaver.service.metadata/src/io/cloudbeaver/service/metadata/WebServiceMetadata.java
index 2aad4bc572..0596965058 100644
--- a/server/bundles/io.cloudbeaver.service.metadata/src/io/cloudbeaver/service/metadata/WebServiceMetadata.java
+++ b/server/bundles/io.cloudbeaver.service.metadata/src/io/cloudbeaver/service/metadata/WebServiceMetadata.java
@@ -18,10 +18,9 @@ package io.cloudbeaver.service.metadata;
import graphql.schema.idl.TypeDefinitionRegistry;
import io.cloudbeaver.DBWebException;
-import io.cloudbeaver.WebServiceUtils;
import io.cloudbeaver.api.DBWModel;
-import io.cloudbeaver.api.DBWServiceGraphQL;
import io.cloudbeaver.api.DBWUtils;
+import io.cloudbeaver.api.WebServiceBase;
import io.cloudbeaver.server.model.WebNavigatorNodeInfo;
import io.cloudbeaver.server.model.session.WebSession;
import org.jkiss.dbeaver.model.DBPScriptObject;
@@ -35,13 +34,13 @@ import java.util.Map;
/**
* Web service implementation
*/
-public class WebServiceMetadata implements DBWServiceGraphQL {
+public class WebServiceMetadata extends WebServiceBase {
- private static final String METADATA_SCHEMA_FILE_NAME = "schema/service.metadata.graphqls";
+ private static final String SCHEMA_FILE_NAME = "schema/service.metadata.graphqls";
@Override
public TypeDefinitionRegistry getTypeDefinition() throws DBWebException {
- return WebServiceUtils.loadSchemaDefinition(getClass(), METADATA_SCHEMA_FILE_NAME);
+ return loadSchemaDefinition(getClass(), SCHEMA_FILE_NAME);
}
@Override
diff --git a/server/bundles/pom.xml b/server/bundles/pom.xml
index ad3b1c25de..90fe380014 100644
--- a/server/bundles/pom.xml
+++ b/server/bundles/pom.xml
@@ -14,6 +14,8 @@
io.cloudbeaver.server
+ io.cloudbeaver.service.admin
+ io.cloudbeaver.service.auth
io.cloudbeaver.service.metadata
io.cloudbeaver.service.data.transfer
diff --git a/server/features/io.cloudbeaver.server.feature/feature.xml b/server/features/io.cloudbeaver.server.feature/feature.xml
index 939b9e76c3..d9ae9392e9 100644
--- a/server/features/io.cloudbeaver.server.feature/feature.xml
+++ b/server/features/io.cloudbeaver.server.feature/feature.xml
@@ -32,6 +32,8 @@
+
+
diff --git a/server/product/web-server/CloudbeaverServer.product.launch b/server/product/web-server/CloudbeaverServer.product.launch
index 4e764d7bdd..e90dba9c53 100644
--- a/server/product/web-server/CloudbeaverServer.product.launch
+++ b/server/product/web-server/CloudbeaverServer.product.launch
@@ -31,7 +31,7 @@
-
+