Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import java.util.Map;
import java.util.Optional;
import java.util.Set;

/**
* The base class for MCP tools.
Expand Down Expand Up @@ -110,6 +111,8 @@ protected ObjectMapper getObjectMapper() {
return objectMapper;
}

public abstract Set<String> checkedPermissions();

@JsonProperty
public String name() {
return name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ You can scope the search to streams (by passing their IDs) or stream categories,
this.scriptingApiService = scriptingApiService;
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public TabularResponse apply(PermissionHelper permissionHelper, AggregateMessagesTool.Parameters parameters) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;

import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

/**
Expand Down Expand Up @@ -60,6 +62,11 @@ public CurrentTimeTool(final CustomizationConfig customizationConfig,
);
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public String apply(PermissionHelper permissionHelper, CurrentTimeTool.Parameters unused) {
return Tools.getISO8601String(DateTime.now(DateTimeZone.UTC));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ Fields can have different meanings in different streams (and also per source), s
this.mappedFieldTypesService = mappedFieldTypesService;
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public Result apply(final PermissionHelper permissionHelper, final ListFieldsTool.Parameters parameters) {
final Set<String> messageStreamIds = permissionHelper.getSearchUser().streams().loadAllMessageStreams();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Comparator;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand Down Expand Up @@ -69,6 +70,11 @@ retention settings (how long data is kept), index prefix patterns, and current s
this.customizationConfig = customizationConfig;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.INDEXSETS_READ);
}

@Override
public String apply(PermissionHelper permissionHelper, ListIndexSetsTool.Parameters unused) {
// TODO: find a better way to do this. This is all from org.graylog2.rest.resources.system.indexer.IndexSetsResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
import jakarta.inject.Inject;
import org.graylog.mcp.server.SchemaGeneratorProvider;
import org.graylog.mcp.server.Tool;
import org.graylog2.indexer.indexset.IndexSet;
import org.graylog2.indexer.indexset.registry.IndexSetRegistry;
import org.graylog2.indexer.NodeInfoCache;
import org.graylog2.indexer.indexset.IndexSet;
import org.graylog2.indexer.indexset.index.IndexPattern;
import org.graylog2.indexer.indexset.registry.IndexSetRegistry;
import org.graylog2.indexer.indices.Indices;
import org.graylog2.indexer.indices.stats.IndexStatistics;
import org.graylog2.indexer.indices.util.NumberBasedIndexNameComparator;
Expand Down Expand Up @@ -85,6 +85,11 @@ public ListIndicesTool(Indices indices,
this.indexSetRegistry = indexSetRegistry;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.INDICES_READ);
}

@Override
public String apply(PermissionHelper permissionHelper, ListIndicesTool.Parameters unused) {
final var all = AllIndices.create(closed(permissionHelper), reopened(permissionHelper), open(permissionHelper));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand Down Expand Up @@ -74,6 +75,11 @@ public ListInputsTool(InputService inputService,
this.customizationConfig = customizationConfig;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.INPUTS_READ);
}

@Override
public String apply(PermissionHelper permissionHelper, ListInputsTool.Parameters unused) {
StringWriter sw = new StringWriter();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand All @@ -57,6 +58,11 @@ public ListResourceTool(ObjectMapper objectMapper,
this.resourceProviders = resourceProviders;
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public ListResourceTool.Result apply(PermissionHelper permissionHelper, ListResourceTool.Parameters parameters) {
GRNType grnType = switch (parameters.type.toLowerCase(Locale.US).replace(' ', '_')) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

import java.util.Map;
import java.util.Objects;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand Down Expand Up @@ -57,6 +58,11 @@ public ListStreamsTool(StreamService streamService,
this.streamService = streamService;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.STREAMS_READ);
}

@Override
public String apply(PermissionHelper permissionHelper, ListStreamsTool.Parameters unused) {
try (var dtos = streamService.streamAllDTOs()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Map;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand All @@ -56,6 +57,11 @@ public ReadResourceTool(ObjectMapper objectMapper,
this.resourceProviders = resourceProviders;
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public String apply(PermissionHelper permissionHelper, ReadResourceTool.Parameters parameters) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ You can scope the search to streams (by passing their IDs) or stream categories,
this.scriptingApiService = scriptingApiService;
}

@Override
public Set<String> checkedPermissions() {
return Set.of();
}

@Override
public TabularResponse apply(PermissionHelper permissionHelper, SearchMessagesTool.Parameters parameters) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import java.util.List;
import java.util.Locale;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand Down Expand Up @@ -63,6 +64,11 @@ public SystemInfoFormattedTool(ObjectMapper objectMapper,
this.leaderElectionService = leaderElectionService;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.SYSTEM_READ);
}

@Override
public String apply(PermissionHelper permissionHelper, SystemInfoFormattedTool.Parameters unused) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.graylog2.web.customization.CustomizationConfig;

import java.util.Locale;
import java.util.Set;

import static org.graylog2.shared.utilities.StringUtils.f;

Expand Down Expand Up @@ -66,6 +67,11 @@ public SystemInfoTool(ServerStatus serverStatus,
this.customizationConfig = customizationConfig;
}

@Override
public Set<String> checkedPermissions() {
return Set.of(RestPermissions.SYSTEM_READ);
}

@Override
public SystemOverviewResponse apply(PermissionHelper permissionHelper, SystemInfoTool.Parameters unused) {
try {
Expand Down
Loading