Skip to content

Commit f5daa0d

Browse files
authored
Merge branch 'devel' into 7157-external-browser-auth-model
2 parents 092ee9e + 583519d commit f5daa0d

File tree

11 files changed

+278
-97
lines changed

11 files changed

+278
-97
lines changed

server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/test/WebGQLClient.java

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import java.net.http.HttpRequest;
3030
import java.net.http.HttpResponse;
3131
import java.util.LinkedHashMap;
32-
import java.util.List;
3332
import java.util.Map;
3433

3534
/**
@@ -72,7 +71,16 @@ public WebGQLClient(@NotNull HttpClient httpClient, @NotNull String apiUrl) {
7271
*/
7372
@NotNull
7473
public <T> T sendQuery(@NotNull String query, @Nullable Map<String, Object> variables) throws Exception {
75-
return sendQueryWithHeaders(query, variables, List.of());
74+
return sendQueryWithHeaders(query, variables, Map.of());
75+
}
76+
77+
@NotNull
78+
public Map<String, Object> sendQueryAndGetHeaders(
79+
@NotNull String query,
80+
@Nullable Map<String, Object> variables,
81+
@NotNull Map<String, String> requestHeaders
82+
) throws Exception {
83+
return executeGQLRequest(query, variables, requestHeaders);
7684
}
7785

7886
/**
@@ -87,15 +95,26 @@ public <T> T sendQuery(@NotNull String query, @Nullable Map<String, Object> vari
8795
public <T> T sendQueryWithHeaders(
8896
@NotNull String query,
8997
@Nullable Map<String, Object> variables,
90-
@NotNull List<String> headers
98+
@NotNull Map<String, String> headers
99+
) throws Exception {
100+
Map<String, Object> parsed = executeGQLRequest(query, variables, headers);
101+
// graphql response will be in "data" key
102+
return (T) parsed.get("data");
103+
}
104+
105+
@NotNull
106+
private Map<String, Object> executeGQLRequest(
107+
@NotNull String query,
108+
@Nullable Map<String, Object> variables,
109+
@NotNull Map<String, String> requestHeaders
91110
) throws Exception {
92111
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
93112
.uri(URI.create(apiUrl))
94113
.POST(HttpRequest.BodyPublishers.ofString(makeGQLRequest(query, variables)))
95114
.setHeader("TE-Client-Version", GeneralUtils.getMajorVersion())
96115
.header("Content-Type", "application/json");
97-
if (!headers.isEmpty()) {
98-
requestBuilder.headers(headers.toArray(String[]::new));
116+
if (!requestHeaders.isEmpty()) {
117+
requestHeaders.forEach(requestBuilder::header);
99118
}
100119
HttpRequest request = requestBuilder.build();
101120
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
@@ -107,8 +126,10 @@ public <T> T sendQueryWithHeaders(
107126
String message = JSONUtils.getString(JSONUtils.getObjectList(body, "errors").get(0), "message");
108127
throw new DBException(message);
109128
}
110-
// graphql response will be in "data" key
111-
return (T) JSONUtils.getObject(body, "data").get("result");
129+
Map<String, Object> parsed = new LinkedHashMap<>();
130+
parsed.put("data", JSONUtils.getObject(body, "data").get("result"));
131+
parsed.put("headers", response.headers().map());
132+
return parsed;
112133
}
113134

114135
@NotNull

server/bundles/io.cloudbeaver.server.ce/src/io/cloudbeaver/server/CBApplication.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.jkiss.dbeaver.model.connection.DBPDriver;
5050
import org.jkiss.dbeaver.model.data.json.JSONUtils;
5151
import org.jkiss.dbeaver.model.impl.app.BaseApplicationImpl;
52-
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
5352
import org.jkiss.dbeaver.model.security.SMAdminController;
5453
import org.jkiss.dbeaver.model.security.SMConstants;
5554
import org.jkiss.dbeaver.model.security.SMObjectType;
@@ -508,7 +507,7 @@ protected void shutdown() {
508507
}
509508

510509
@Override
511-
public String getInfoDetails(DBRProgressMonitor monitor) {
510+
public String getInfoDetails() {
512511
return "";
513512
}
514513

server/bundles/io.cloudbeaver.server/schema/service.sql.graphqls

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,21 @@ extend type Query {
337337
columnNames: [String!],
338338
functions: [String!],
339339
showDuplicatesOnly: Boolean
340-
): String!
340+
): String! @deprecated (reason: "use sqlGropingResultSet (25.3.1)")
341+
342+
"Creates async task to get grouped SQL results"
343+
sqlGropingResultSet(
344+
projectId: ID,
345+
contextId: ID!,
346+
connectionId: ID!,
347+
resultsId: ID!,
348+
columnNames: [String!],
349+
functions: [String!],
350+
showDuplicatesOnly: Boolean,
351+
filter: SQLDataFilter,
352+
dataFormat: ResultDataFormat,
353+
isInteractive: Boolean
354+
): AsyncTaskInfo! @since(version: "25.3.1")
341355
}
342356

343357
extend type Mutation {

server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/WebProductInfo.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.eclipse.core.runtime.IProduct;
2121
import org.eclipse.core.runtime.Platform;
2222
import org.jkiss.dbeaver.model.meta.Property;
23-
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
2423
import org.jkiss.dbeaver.utils.GeneralUtils;
2524
import org.jkiss.utils.CommonUtils;
2625

@@ -75,7 +74,7 @@ public String getReleaseTime() {
7574
@Property
7675
public String getLicenseInfo() {
7776
return provideSensitiveInformation
78-
? ServletAppUtils.getServletApplication().getInfoDetails(new VoidProgressMonitor())
77+
? ServletAppUtils.getServletApplication().getInfoDetails()
7978
: "";
8079
}
8180

server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/websockets/CBEventsLongPolling.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public long lastPoll() {
5858

5959
public void touch() {
6060
lastPoll = System.currentTimeMillis();
61+
webSession.touchSession();
6162
}
6263

6364
@NotNull

0 commit comments

Comments
 (0)