Skip to content

Commit e0cefb8

Browse files
authored
Revert "Restrict Connector APIs to manage/monitor_connector privileges (#119389)" (#119833)
This reverts commit c88eef3.
1 parent 996a4f8 commit e0cefb8

37 files changed

+230
-230
lines changed

docs/changelog/119389.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.

x-pack/plugin/ent-search/qa/rest/roles.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ admin:
44
- manage_behavioral_analytics
55
- manage
66
- monitor
7-
- manage_connector
87
indices:
98
- names: [
109
# indices and search applications
1110
"test-*",
1211
"another-test-search-application",
12+
".elastic-connectors-v1",
13+
".elastic-connectors-sync-jobs-v1"
1314
]
1415
privileges: [ "manage", "write", "read" ]
1516

@@ -19,15 +20,16 @@ user:
1920
- manage_api_key
2021
- read_connector_secrets
2122
- write_connector_secrets
22-
- monitor_connector
2323
indices:
2424
- names: [
2525
"test-index1",
2626
"test-search-application",
2727
"test-search-application-1",
2828
"test-search-application-with-aggs",
2929
"test-search-application-with-list",
30-
"test-search-application-with-list-invalid"
30+
"test-search-application-with-list-invalid",
31+
".elastic-connectors-v1",
32+
".elastic-connectors-sync-jobs-v1"
3133
]
3234
privileges: [ "read" ]
3335

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/ConnectorIndexService.java

Lines changed: 100 additions & 142 deletions
Large diffs are not rendered by default.

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/ConnectorActionRequest.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,23 @@
99

1010
import org.elasticsearch.action.ActionRequest;
1111
import org.elasticsearch.action.ActionRequestValidationException;
12+
import org.elasticsearch.action.IndicesRequest;
13+
import org.elasticsearch.action.support.IndicesOptions;
1214
import org.elasticsearch.cluster.metadata.MetadataCreateIndexService;
1315
import org.elasticsearch.common.io.stream.StreamInput;
1416
import org.elasticsearch.indices.InvalidIndexNameException;
17+
import org.elasticsearch.xpack.application.connector.ConnectorTemplateRegistry;
1518

1619
import java.io.IOException;
1720

1821
import static org.elasticsearch.action.ValidateActions.addValidationError;
1922
import static org.elasticsearch.xpack.application.connector.ConnectorTemplateRegistry.MANAGED_CONNECTOR_INDEX_PREFIX;
2023

2124
/**
22-
* Abstract base class for action requests targeting the connectors index.
25+
* Abstract base class for action requests targeting the connectors index. Implements {@link org.elasticsearch.action.IndicesRequest}
26+
* to ensure index-level privilege support. This class defines the connectors index as the target for all derived action requests.
2327
*/
24-
public abstract class ConnectorActionRequest extends ActionRequest {
28+
public abstract class ConnectorActionRequest extends ActionRequest implements IndicesRequest {
2529

2630
public ConnectorActionRequest() {
2731
super();
@@ -74,4 +78,14 @@ public ActionRequestValidationException validateManagedConnectorIndexPrefix(
7478
}
7579
return validationException;
7680
}
81+
82+
@Override
83+
public String[] indices() {
84+
return new String[] { ConnectorTemplateRegistry.CONNECTOR_INDEX_NAME_PATTERN };
85+
}
86+
87+
@Override
88+
public IndicesOptions indicesOptions() {
89+
return IndicesOptions.lenientExpandHidden();
90+
}
7791
}

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/DeleteConnectorAction.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.elasticsearch.xcontent.ToXContentObject;
1919
import org.elasticsearch.xcontent.XContentBuilder;
2020
import org.elasticsearch.xcontent.XContentParser;
21+
import org.elasticsearch.xpack.application.connector.ConnectorTemplateRegistry;
2122

2223
import java.io.IOException;
2324
import java.util.Objects;
@@ -27,7 +28,7 @@
2728

2829
public class DeleteConnectorAction {
2930

30-
public static final String NAME = "cluster:admin/xpack/connector/delete";
31+
public static final String NAME = "indices:data/write/xpack/connector/delete";
3132
public static final ActionType<AcknowledgedResponse> INSTANCE = new ActionType<>(NAME);
3233

3334
private DeleteConnectorAction() {/* no instances */}
@@ -70,6 +71,14 @@ public boolean shouldDeleteSyncJobs() {
7071
return deleteSyncJobs;
7172
}
7273

74+
@Override
75+
public String[] indices() {
76+
// When deleting a connector, corresponding sync jobs can also be deleted
77+
return new String[] {
78+
ConnectorTemplateRegistry.CONNECTOR_SYNC_JOBS_INDEX_NAME_PATTERN,
79+
ConnectorTemplateRegistry.CONNECTOR_INDEX_NAME_PATTERN };
80+
}
81+
7382
@Override
7483
public void writeTo(StreamOutput out) throws IOException {
7584
super.writeTo(out);

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/GetConnectorAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
public class GetConnectorAction {
3030

31-
public static final String NAME = "cluster:admin/xpack/connector/get";
31+
public static final String NAME = "indices:data/read/xpack/connector/get";
3232
public static final ActionType<GetConnectorAction.Response> INSTANCE = new ActionType<>(NAME);
3333

3434
private GetConnectorAction() {/* no instances */}

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/ListConnectorAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
public class ListConnectorAction {
3636

37-
public static final String NAME = "cluster:admin/xpack/connector/list";
37+
public static final String NAME = "indices:data/read/xpack/connector/list";
3838
public static final ActionType<ListConnectorAction.Response> INSTANCE = new ActionType<>(NAME);
3939

4040
private ListConnectorAction() {/* no instances */}

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/PostConnectorAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
public class PostConnectorAction {
2727

28-
public static final String NAME = "cluster:admin/xpack/connector/post";
28+
public static final String NAME = "indices:data/write/xpack/connector/post";
2929
public static final ActionType<ConnectorCreateActionResponse> INSTANCE = new ActionType<>(NAME);
3030

3131
private PostConnectorAction() {/* no instances */}

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/PutConnectorAction.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import org.elasticsearch.action.ActionRequestValidationException;
1111
import org.elasticsearch.action.ActionType;
12+
import org.elasticsearch.action.IndicesRequest;
1213
import org.elasticsearch.common.Strings;
1314
import org.elasticsearch.common.io.stream.StreamInput;
1415
import org.elasticsearch.common.io.stream.StreamOutput;
@@ -26,12 +27,12 @@
2627

2728
public class PutConnectorAction {
2829

29-
public static final String NAME = "cluster:admin/xpack/connector/put";
30+
public static final String NAME = "indices:data/write/xpack/connector/put";
3031
public static final ActionType<ConnectorCreateActionResponse> INSTANCE = new ActionType<>(NAME);
3132

3233
private PutConnectorAction() {/* no instances */}
3334

34-
public static class Request extends ConnectorActionRequest implements ToXContentObject {
35+
public static class Request extends ConnectorActionRequest implements IndicesRequest, ToXContentObject {
3536

3637
@Nullable
3738
private final String connectorId;

x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/connector/action/UpdateConnectorActiveFilteringAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
public class UpdateConnectorActiveFilteringAction {
2424

25-
public static final String NAME = "cluster:admin/xpack/connector/update_filtering/activate";
25+
public static final String NAME = "indices:data/write/xpack/connector/update_filtering/activate";
2626
public static final ActionType<ConnectorUpdateActionResponse> INSTANCE = new ActionType<>(NAME);
2727

2828
private UpdateConnectorActiveFilteringAction() {/* no instances */}

0 commit comments

Comments
 (0)