Skip to content

Commit 964e309

Browse files
authored
Adding initial public and internal serverless scopes to Distributed REST handlers (#94034)
#93607 added the ability to run Elasticsearch in "Serverless" mode, where access to REST endpoints could be restricted so that the full Elasticsearch API is not available (since a lot of it does not make sense in Servlerless). By default no endpoints are available, but they can be exposed with `ServerlessScope` annotations. This PR follows up on #93607 by adding PUBLIC and INTERNAL annotations to the rest handlers owned by the Distributed team. There are several rest endpoints still under discussion. This PR does not label those, so they remain unavailable in Serverless mode.
1 parent 04e4394 commit 964e309

File tree

13 files changed

+39
-0
lines changed

13 files changed

+39
-0
lines changed

modules/reindex/src/main/java/org/elasticsearch/reindex/RestDeleteByQueryAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.elasticsearch.index.reindex.DeleteByQueryAction;
1515
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
1616
import org.elasticsearch.rest.RestRequest;
17+
import org.elasticsearch.rest.Scope;
18+
import org.elasticsearch.rest.ServerlessScope;
1719
import org.elasticsearch.rest.action.search.RestSearchAction;
1820

1921
import java.io.IOException;
@@ -24,6 +26,7 @@
2426

2527
import static org.elasticsearch.rest.RestRequest.Method.POST;
2628

29+
@ServerlessScope(Scope.PUBLIC)
2730
public class RestDeleteByQueryAction extends AbstractBulkByQueryRestHandler<DeleteByQueryRequest, DeleteByQueryAction> {
2831

2932
public RestDeleteByQueryAction() {

modules/reindex/src/main/java/org/elasticsearch/reindex/RestUpdateByQueryAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.elasticsearch.index.reindex.UpdateByQueryAction;
1515
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
1616
import org.elasticsearch.rest.RestRequest;
17+
import org.elasticsearch.rest.Scope;
18+
import org.elasticsearch.rest.ServerlessScope;
1719
import org.elasticsearch.rest.action.search.RestSearchAction;
1820
import org.elasticsearch.script.Script;
1921

@@ -25,6 +27,7 @@
2527

2628
import static org.elasticsearch.rest.RestRequest.Method.POST;
2729

30+
@ServerlessScope(Scope.PUBLIC)
2831
public class RestUpdateByQueryAction extends AbstractBulkByQueryRestHandler<UpdateByQueryRequest, UpdateByQueryAction> {
2932

3033
public RestUpdateByQueryAction() {

server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterAllocationExplainAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import org.elasticsearch.rest.RestRequest;
1616
import org.elasticsearch.rest.RestResponse;
1717
import org.elasticsearch.rest.RestStatus;
18+
import org.elasticsearch.rest.Scope;
19+
import org.elasticsearch.rest.ServerlessScope;
1820
import org.elasticsearch.rest.action.RestBuilderListener;
1921
import org.elasticsearch.xcontent.ToXContent;
2022
import org.elasticsearch.xcontent.XContentBuilder;
@@ -29,6 +31,7 @@
2931
/**
3032
* Class handling cluster allocation explanation at the REST level
3133
*/
34+
@ServerlessScope(Scope.INTERNAL)
3235
public class RestClusterAllocationExplainAction extends BaseRestHandler {
3336

3437
@Override

server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterHealthAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import org.elasticsearch.common.Strings;
1919
import org.elasticsearch.rest.BaseRestHandler;
2020
import org.elasticsearch.rest.RestRequest;
21+
import org.elasticsearch.rest.Scope;
22+
import org.elasticsearch.rest.ServerlessScope;
2123
import org.elasticsearch.rest.action.RestStatusToXContentListener;
2224

2325
import java.io.IOException;
@@ -28,6 +30,7 @@
2830

2931
import static org.elasticsearch.rest.RestRequest.Method.GET;
3032

33+
@ServerlessScope(Scope.INTERNAL)
3134
public class RestClusterHealthAction extends BaseRestHandler {
3235

3336
@Override

server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterRerouteAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import org.elasticsearch.common.settings.SettingsFilter;
1818
import org.elasticsearch.rest.BaseRestHandler;
1919
import org.elasticsearch.rest.RestRequest;
20+
import org.elasticsearch.rest.Scope;
21+
import org.elasticsearch.rest.ServerlessScope;
2022
import org.elasticsearch.rest.action.RestChunkedToXContentListener;
2123
import org.elasticsearch.xcontent.ObjectParser;
2224
import org.elasticsearch.xcontent.ObjectParser.ValueType;
@@ -30,6 +32,7 @@
3032
import static org.elasticsearch.common.util.set.Sets.addToCopy;
3133
import static org.elasticsearch.rest.RestRequest.Method.POST;
3234

35+
@ServerlessScope(Scope.INTERNAL)
3336
public class RestClusterRerouteAction extends BaseRestHandler {
3437

3538
private static final Set<String> RESPONSE_PARAMS = addToCopy(Settings.FORMAT_PARAMS, "metric");

server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterStateAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.elasticsearch.common.xcontent.ChunkedToXContentHelper;
2525
import org.elasticsearch.rest.BaseRestHandler;
2626
import org.elasticsearch.rest.RestRequest;
27+
import org.elasticsearch.rest.Scope;
28+
import org.elasticsearch.rest.ServerlessScope;
2729
import org.elasticsearch.rest.action.RestCancellableNodeClient;
2830
import org.elasticsearch.rest.action.RestChunkedToXContentListener;
2931
import org.elasticsearch.threadpool.ThreadPool;
@@ -41,6 +43,7 @@
4143
import static org.elasticsearch.common.util.set.Sets.addToCopy;
4244
import static org.elasticsearch.rest.RestRequest.Method.GET;
4345

46+
@ServerlessScope(Scope.INTERNAL)
4447
public class RestClusterStateAction extends BaseRestHandler {
4548

4649
private static final Set<String> RESPONSE_PARAMS = addToCopy(Settings.FORMAT_PARAMS, "metric");

server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestResolveIndexAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@
1414
import org.elasticsearch.common.Strings;
1515
import org.elasticsearch.rest.BaseRestHandler;
1616
import org.elasticsearch.rest.RestRequest;
17+
import org.elasticsearch.rest.Scope;
18+
import org.elasticsearch.rest.ServerlessScope;
1719
import org.elasticsearch.rest.action.RestToXContentListener;
1820

1921
import java.io.IOException;
2022
import java.util.List;
2123

2224
import static org.elasticsearch.rest.RestRequest.Method.GET;
2325

26+
@ServerlessScope(Scope.PUBLIC)
2427
public class RestResolveIndexAction extends BaseRestHandler {
2528

2629
@Override

server/src/main/java/org/elasticsearch/rest/action/document/RestGetAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import org.elasticsearch.rest.BaseRestHandler;
1818
import org.elasticsearch.rest.RestRequest;
1919
import org.elasticsearch.rest.RestStatus;
20+
import org.elasticsearch.rest.Scope;
21+
import org.elasticsearch.rest.ServerlessScope;
2022
import org.elasticsearch.rest.action.RestActions;
2123
import org.elasticsearch.rest.action.RestToXContentListener;
2224
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
@@ -29,6 +31,7 @@
2931
import static org.elasticsearch.rest.RestStatus.NOT_FOUND;
3032
import static org.elasticsearch.rest.RestStatus.OK;
3133

34+
@ServerlessScope(Scope.PUBLIC)
3235
public class RestGetAction extends BaseRestHandler {
3336
static final String TYPES_DEPRECATION_MESSAGE = "[types removal] Specifying types in "
3437
+ "document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.";

server/src/main/java/org/elasticsearch/rest/action/document/RestGetSourceAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import org.elasticsearch.rest.RestChannel;
2222
import org.elasticsearch.rest.RestRequest;
2323
import org.elasticsearch.rest.RestResponse;
24+
import org.elasticsearch.rest.Scope;
25+
import org.elasticsearch.rest.ServerlessScope;
2426
import org.elasticsearch.rest.action.RestResponseListener;
2527
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
2628
import org.elasticsearch.xcontent.XContentBuilder;
@@ -36,6 +38,7 @@
3638
/**
3739
* The REST handler for get source and head source APIs.
3840
*/
41+
@ServerlessScope(Scope.PUBLIC)
3942
public class RestGetSourceAction extends BaseRestHandler {
4043
private final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestGetSourceAction.class);
4144
static final String TYPES_DEPRECATION_MESSAGE = "[types removal] Specifying types in get_source and exist_source "

server/src/main/java/org/elasticsearch/rest/action/document/RestMultiGetAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import org.elasticsearch.core.RestApiVersion;
1616
import org.elasticsearch.rest.BaseRestHandler;
1717
import org.elasticsearch.rest.RestRequest;
18+
import org.elasticsearch.rest.Scope;
19+
import org.elasticsearch.rest.ServerlessScope;
1820
import org.elasticsearch.rest.action.RestToXContentListener;
1921
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
2022
import org.elasticsearch.xcontent.XContentParser;
@@ -25,6 +27,7 @@
2527
import static org.elasticsearch.rest.RestRequest.Method.GET;
2628
import static org.elasticsearch.rest.RestRequest.Method.POST;
2729

30+
@ServerlessScope(Scope.PUBLIC)
2831
public class RestMultiGetAction extends BaseRestHandler {
2932
public static final String TYPES_DEPRECATION_MESSAGE = "[types removal] Specifying types in multi get requests is deprecated.";
3033

0 commit comments

Comments
 (0)